public ProjectAndPreferencesBlock( IProject project, IProjectPreference<Boolean> useProjectSettingsPref) { super(); this.project = project; this.useProjectSettingsPref = useProjectSettingsPref; this.projectSettingsBlock = init_createProjectSettingsBlock2(); useProjectSettingsField.registerListener( () -> projectSettingsBlock.setEnabled(useProjectSettingsField.getFieldValue())); bindToPreference(useProjectSettingsField, useProjectSettingsPref); addPrefElement(projectSettingsBlock); validation.addValidatableField(true, projectSettingsBlock.getStatusField()); }
@Override protected void createContents(Composite topControl) { useProjectSettingsField.createComponent(topControl, GridDataFactory.fillDefaults().create()); String prefPageId = getWorkspacePrefPageId(); Link link = createOpenPreferencesDialogLink( topControl, prefPageId, LABEL_ConfigureWorkspaceSettings, null); GridDataFactory.swtDefaults().align(SWT.END, SWT.CENTER).applyTo(link); SWTFactoryUtil.createLabel( topControl, SWT.SEPARATOR | SWT.HORIZONTAL, "", GridDataFactory.fillDefaults().span(2, 1).create()); projectSettingsBlock.createComponent( topControl, gdFillDefaults().span(2, 1).grab(true, false).create()); // Update projectSettingsBlock setEnabled status - because setEnabled only works after the // control is created. useProjectSettingsField.fireFieldValueChanged(); }