in plugin/src/software/aws/toolkits/eclipse/amazonq/util/PersistentToolkitNotification.java [32:83]
protected void createContentArea(final Composite parent) {
super.createContentArea(parent);
Composite container = (Composite) parent.getChildren()[0];
// create checkbox
Button doNotShowCheckbox = new Button(container, SWT.CHECK);
GridData checkboxGridData = new GridData(SWT.BEGINNING, SWT.CENTER, false, false);
doNotShowCheckbox.setLayoutData(checkboxGridData);
// create checkbox button text
Label checkboxLabel = new Label(container, SWT.NONE);
checkboxLabel.setText("Don't show this message again");
checkboxLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
// style button text
Color grayColor = new Color(parent.getDisplay(), 128, 128, 128);
checkboxLabel.setForeground(grayColor);
Font originalFont = checkboxLabel.getFont();
FontData[] fontData = originalFont.getFontData();
for (FontData fd : fontData) {
fd.setHeight(fd.getHeight() - 1);
}
Font smallerFont = new Font(parent.getDisplay(), fontData);
checkboxLabel.setFont(smallerFont);
checkboxLabel.addDisposeListener(e -> {
smallerFont.dispose();
grayColor.dispose();
});
// make button text clickable
checkboxLabel.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(final MouseEvent e) {
doNotShowCheckbox.setSelection(!doNotShowCheckbox.getSelection());
if (checkboxCallback != null) {
checkboxCallback.accept(doNotShowCheckbox.getSelection());
}
}
});
doNotShowCheckbox.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent e) {
if (checkboxCallback != null) {
checkboxCallback.accept(doNotShowCheckbox.getSelection());
}
}
});
}