public void createClient(Section section, FormToolkit toolkit) { section.setLayout(FormLayoutFactory.createClearGridLayout(false, 1)); GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING); section.setLayoutData(data); Composite container = toolkit.createComposite(section); container.setLayout(FormLayoutFactory.createSectionClientTableWrapLayout(false, 2)); fNameText = new FormEntry( container, toolkit, MDEUIMessages.SiteEditor_IncludedFeaturesDetailsSection_featureLabel, null, false); fNameText.setFormEntryListener( new FormEntryAdapter(this) { public void textValueChanged(FormEntry text) { if (fInput != null) try { fInput.setName(text.getValue()); } catch (CoreException e) { MDEPlugin.logException(e); } } }); fNameText.setEditable(isEditable()); fVersionText = new FormEntry( container, toolkit, MDEUIMessages.FeatureEditor_SpecSection_version, null, false); fVersionText.setFormEntryListener( new FormEntryAdapter(this) { public void textValueChanged(FormEntry text) { if (fInput != null) try { fInput.setVersion(text.getValue()); } catch (CoreException e) { MDEPlugin.logException(e); } } }); fVersionText.setEditable(isEditable()); fOptionalButton = toolkit.createButton( container, MDEUIMessages.SiteEditor_IncludedFeaturesDetailsSection_optional, SWT.CHECK); TableWrapData gd = new TableWrapData(TableWrapData.FILL); gd.colspan = 2; fOptionalButton.setLayoutData(gd); fOptionalButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if (!fBlockNotification) { try { fInput.setOptional(fOptionalButton.getSelection()); } catch (CoreException ce) { } } } }); Label fSearchLocationDescLabel = toolkit.createLabel( container, MDEUIMessages.SiteEditor_IncludedFeaturesDetailsSection_searchLocation, SWT.WRAP); gd = new TableWrapData(TableWrapData.FILL); gd.colspan = 2; fSearchLocationDescLabel.setLayoutData(gd); fSearchRootButton = toolkit.createButton( container, MDEUIMessages.SiteEditor_IncludedFeaturesDetailsSection_root, SWT.RADIO); fSearchRootButton.setSelection(true); gd = new TableWrapData(TableWrapData.FILL); gd.colspan = 2; gd.indent = 5; fSearchRootButton.setLayoutData(gd); fSearchRootButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if (!fBlockNotification) { try { if (fSearchRootButton.getSelection()) fInput.setSearchLocation(IFeatureChild.ROOT); } catch (CoreException ce) { } } } }); fSearchSelfButton = toolkit.createButton( container, MDEUIMessages.SiteEditor_IncludedFeaturesDetailsSection_self, SWT.RADIO); fSearchSelfButton.setSelection(true); gd = new TableWrapData(TableWrapData.FILL); gd.colspan = 2; gd.indent = 5; fSearchSelfButton.setLayoutData(gd); fSearchSelfButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if (!fBlockNotification) { try { if (fSearchSelfButton.getSelection()) fInput.setSearchLocation(IFeatureChild.SELF); } catch (CoreException ce) { } } } }); fSearchBothButton = toolkit.createButton( container, MDEUIMessages.SiteEditor_IncludedFeaturesDetailsSection_both, SWT.RADIO); fSearchBothButton.setSelection(true); gd = new TableWrapData(TableWrapData.FILL); gd.colspan = 2; gd.indent = 5; fSearchBothButton.setLayoutData(gd); fSearchBothButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if (!fBlockNotification) { try { if (fSearchBothButton.getSelection()) fInput.setSearchLocation(IFeatureChild.BOTH); } catch (CoreException ce) { } } } }); toolkit.paintBordersFor(container); section.setClient(container); }
private void update() { fBlockNotification = true; if (fInput != null) { fNameText.setValue(fInput.getName(), true); fVersionText.setValue(fInput.getVersion(), true); fOptionalButton.setSelection(fInput.isOptional()); int searchLocation = fInput.getSearchLocation(); fSearchRootButton.setSelection(searchLocation == IFeatureChild.ROOT); fSearchSelfButton.setSelection(searchLocation == IFeatureChild.SELF); fSearchBothButton.setSelection(searchLocation == IFeatureChild.BOTH); } else { fNameText.setValue(null, true); fVersionText.setValue(null, true); fOptionalButton.setSelection(false); fSearchRootButton.setSelection(true); fSearchSelfButton.setSelection(false); fSearchBothButton.setSelection(false); } boolean editable = fInput != null && isEditable(); fNameText.setEditable(editable); fVersionText.setEditable(editable); fOptionalButton.setEnabled(editable); fSearchRootButton.setEnabled(editable); fSearchSelfButton.setEnabled(editable); fSearchBothButton.setEnabled(editable); fBlockNotification = false; }