public ListDialogField createListContents() { Label label = new Label(parent, SWT.WRAP); label.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false)); label.setText("Groovy Script Folders:"); label.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DIALOG_FONT)); Composite inner = new Composite(parent, SWT.BORDER); inner.setFont(parent.getFont()); GridLayout layout = new GridLayout(); layout.marginHeight = 3; layout.marginWidth = 3; layout.numColumns = 1; inner.setLayout(layout); inner.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); disableButton = new BooleanFieldEditor( Activator.GROOVY_SCRIPT_FILTERS_ENABLED, "Enable script folder support", BooleanFieldEditor.DEFAULT, inner); disableButton.setPreferenceStore(store); disableButton.load(); // inner composite contains the dialog itself final Composite innerInner = new Composite(inner, SWT.NONE); innerInner.setFont(parent.getFont()); layout = new GridLayout(); layout.marginHeight = 3; layout.marginWidth = 3; layout.numColumns = 3; innerInner.setLayout(layout); innerInner.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); innerInner.setToolTipText( "CHECKED boxes are COPIED to output folder.\nUNCHECKED boxes are NOT copied."); boolean enabled = disableButton.getBooleanValue(); innerInner.setEnabled(enabled); // enable/disable pattern list based disableButton.setPropertyChangeListener( new IPropertyChangeListener() { public void propertyChange(PropertyChangeEvent event) { if (event.getProperty() == FieldEditor.VALUE) { Object o = event.getNewValue(); if (o instanceof Boolean) { boolean enabled = ((Boolean) o); innerInner.setEnabled(enabled); for (Control c : innerInner.getChildren()) { c.setEnabled(enabled); } } } hasChanges = true; } }); ScriptPatternAdapter adapter = new ScriptPatternAdapter(); patternList = new CheckedListDialogField(adapter, buttonLabels, new ScriptLabelProvider(DESCRIPTOR)); patternList.setDialogFieldListener(adapter); patternList.setLabelText( "Groovy files that match these patterns are treated as scripts. " + "They will not be compiled and will be copied as-is to the output folder.\n\n" + "CHECKED boxes will be COPIED to the output folder. UNCHECKED boxes are NOT copied to the output folder."); patternList.setRemoveButtonIndex(IDX_REMOVE); patternList.enableButton(IDX_EDIT, false); patternList.setCheckAllButtonIndex(IDX_CHECKALL); patternList.setUncheckAllButtonIndex(IDX_UNCHECKALL); patternList.doFillIntoGrid(innerInner, 3); Label l = patternList.getLabelControl(innerInner); GridData gd = new GridData(SWT.FILL, SWT.TOP, true, false); gd.widthHint = 200; l.setLayoutData(gd); resetElements(); patternList.enableButton(IDX_ADD, true); patternList.setViewerComparator(new ViewerComparator()); // finally force greying out of tree if required innerInner.setEnabled(enabled); for (Control c : innerInner.getChildren()) { c.setEnabled(enabled); } return patternList; }