Example usage for org.eclipse.jface.databinding.swt SWTObservables observeEnabled

List of usage examples for org.eclipse.jface.databinding.swt SWTObservables observeEnabled

Introduction

In this page you can find the example usage for org.eclipse.jface.databinding.swt SWTObservables observeEnabled.

Prototype

@Deprecated
public static ISWTObservableValue observeEnabled(Control control) 

Source Link

Document

Returns an observable value tracking the enabled state of the given control

Usage

From source file:org.eclipse.pde.emfforms.editor.EmfMasterDetailBlock.java

License:Open Source License

@Override
protected void createMasterPart(final IManagedForm managedForm, Composite parent) {
    FormToolkit toolkit = parentEditor.getToolkit();

    section = toolkit.createSection(parent, getSectionOptions());
    section.setText(title);/* w w  w  .  j a va2s.co  m*/
    section.setDescription("Edit " + title); //$NON-NLS-1$
    section.marginWidth = 5;
    section.setLayout(new FillLayout());
    section.marginHeight = 5;

    Composite client = toolkit.createComposite(section, SWT.WRAP);
    GridLayoutFactory.fillDefaults().numColumns(showPushButtons() ? 2 : 1).applyTo(client);

    // deliberate use of the 3.4 API
    // TODO try to use the new look using a 3.5 fragment
    FilteredTree ft = new FilteredTree(client, getViewerOptions(), new PatternFilter());
    treeViewer = ft.getViewer();

    // Prevent scrollbars to be managed by the editor's root composite
    GridDataFactory.fillDefaults().grab(true, true).hint(50, 50).applyTo(treeViewer.getTree());

    //Buttons
    if (showPushButtons()) {
        Composite buttonComposite = new Composite(client, SWT.NONE);
        GridLayoutFactory.fillDefaults().numColumns(1).applyTo(buttonComposite);

        if (showGenericPushButtons())
            addButton = createButton(buttonComposite, "Add"); //$NON-NLS-1$
        if (showCustomPushButtons())
            createCustomButtons(buttonComposite);
        if (showGenericPushButtons())
            removeButton = createButton(buttonComposite, "Remove"); //$NON-NLS-1$

        GridDataFactory.fillDefaults().grab(false, false).applyTo(buttonComposite);
    }

    //SectionToolBar
    removeAction = createCustomToolbarRemoveAction();

    if (showToolbarButtons()) {
        toolBarManager = PDEFormToolkit.createSectionToolBarManager(section);
        Action addAction = createCustomToolbarAddAction();
        if (addAction != null) {
            toolBarManager.add(addAction);
        }

        if (removeAction != null) {
            toolBarManager.add(removeAction);
        }

        if (showExpandCollapseButtons()) {
            toolBarManager.add(new Separator());

            toolBarManager
                    .add(new Action("Expand All", Activator.getImageDescriptor("icons/obj16/expand.gif")) { //$NON-NLS-1$ //$NON-NLS-2$
                        @Override
                        public void run() {
                            treeViewer.getTree().setRedraw(false);
                            treeViewer.expandAll();
                            treeViewer.getTree().setRedraw(true);
                        }
                    });
            toolBarManager
                    .add(new Action("Collapse All", Activator.getImageDescriptor("icons/obj16/collapse.gif")) { //$NON-NLS-1$ //$NON-NLS-2$
                        @Override
                        public void run() {
                            treeViewer.getTree().setRedraw(false);
                            treeViewer.collapseAll();
                            treeViewer.getTree().setRedraw(true);
                        }
                    });
        }
        toolBarManager.update(true);
        section.setTextClient(toolBarManager.getControl());
    }

    treeViewer.setContentProvider(new AdapterFactoryContentProvider(parentEditor.getAdapterFactory()));
    treeViewer.setLabelProvider(
            new DecoratingLabelProvider(new AdapterFactoryLabelProvider(parentEditor.getAdapterFactory()),
                    PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
    treeViewer.addFilter(getTreeFilter());

    int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
    Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
    treeViewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(treeViewer));
    treeViewer.addDropSupport(dndOperations, transfers,
            new EditingDomainViewerDropAdapter(parentEditor.getEditingDomain(), treeViewer));

    final SectionPart spart = new SectionPart(section);
    managedForm.addPart(spart);

    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            managedForm.fireSelectionChanged(spart, event.getSelection());
        }
    });

    treeViewer.addOpenListener(new IOpenListener() {
        public void open(OpenEvent event) {
            detailsPart.setFocus();
        }
    });

    // Add listeners to manage activation/deactivation of the treeViewer's
    // ActionBarContributor's global handlers
    configureActionBarManagement();

    if (getRemoveButton() != null) {

        DataBindingContext bindingContext = new DataBindingContext();

        IValueProperty p = JFaceProperties.value(IAction.class, IAction.ENABLED, IAction.ENABLED);
        bindingContext.bindValue(SWTObservables.observeEnabled(getRemoveButton()), p.observe(removeAction));

        //Generic action for remove button
        getRemoveButton().addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                if (removeAction != null)
                    removeAction.run();
            }
        });
    }

    createContextMenuFor(treeViewer);

    //update Editor selection
    getEditor().addViewerToListenTo(getTreeViewer());

    section.setClient(client);
}

From source file:org.eclipse.rcptt.ctx.debug.ui.DebugContextEditor.java

License:Open Source License

public Control create(Composite parent, FormToolkit toolkit, IWorkbenchSite site, EditorHeader header) {
    Section section = new SectionWithComposite("Options",
            Section.TITLE_BAR | Section.TWISTIE | Section.EXPANDED).grabVertical(false).create(parent, toolkit);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(section);

    Composite composite = (Composite) section.getClient();
    GridLayoutFactory.fillDefaults().numColumns(1).applyTo(composite);
    Button noLaunches = toolkit.createButton(composite, "Terminate existing launches", SWT.CHECK);
    dbc.bindValue(SWTObservables.observeSelection(noLaunches),
            EMFObservables.observeValue(getContextElement(), DebugPackage.Literals.DEBUG_CONTEXT__NO_LAUNCHES));

    toolkit.createLabel(composite, "Do not terminate launches of following configurations:");
    Text exceptions = toolkit.createText(composite, "", SWT.BORDER);

    GridDataFactory.fillDefaults().hint(300, SWT.DEFAULT).applyTo(exceptions);
    dbc.bindValue(SWTObservables.observeText(exceptions, SWT.Modify), EMFObservables
            .observeValue(getContextElement(), DebugPackage.Literals.DEBUG_CONTEXT__LAUNCH_EXCEPTIONS));
    dbc.bindValue(SWTObservables.observeEnabled(exceptions), SWTObservables.observeSelection(noLaunches));

    Button noLaunchShortcuts = toolkit.createButton(composite, "Clear launch configurations", SWT.CHECK);

    dbc.bindValue(SWTObservables.observeSelection(noLaunchShortcuts), EMFObservables
            .observeValue(getContextElement(), DebugPackage.Literals.DEBUG_CONTEXT__NO_LAUNCH_SHORTCUTS));

    GridDataFactory.fillDefaults().grab(true, false).applyTo(composite);
    toolkit.createLabel(composite, "Do not delete following configurations:");
    exceptions = toolkit.createText(composite, "", SWT.BORDER);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(exceptions);
    dbc.bindValue(SWTObservables.observeText(exceptions, SWT.Modify), EMFObservables.observeValue(
            getContextElement(), DebugPackage.Literals.DEBUG_CONTEXT__LAUNCH_SHORTCUT_EXCEPTIONS));
    dbc.bindValue(SWTObservables.observeEnabled(exceptions),
            SWTObservables.observeSelection(noLaunchShortcuts));
    Button noBreakpoints = toolkit.createButton(composite, "Clear breakpoints", SWT.CHECK);
    GridDataFactory.fillDefaults().span(2, 1).applyTo(noBreakpoints);

    dbc.bindValue(SWTObservables.observeSelection(noBreakpoints), EMFObservables
            .observeValue(getContextElement(), DebugPackage.Literals.DEBUG_CONTEXT__NO_BREAKPOINTS));
    Section section5 = new SectionWithToolbar(new EditableTree("Launch configurations", new ContentProvider()),
            Section.TITLE_BAR | Section.TWISTIE | Section.EXPANDED).create(parent, toolkit);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(section5);
    return section;
}

From source file:org.eclipse.rcptt.ctx.parameters.ui.ParametersContextEditor.java

License:Open Source License

private void createPanel(Composite parent, FormToolkit toolkit) {
    Composite panel = toolkit.createComposite(parent);
    GridLayoutFactory.fillDefaults().applyTo(panel);
    GridDataFactory.fillDefaults().grab(false, true).applyTo(panel);

    Button addButton = toolkit.createButton(panel, "Add", SWT.PUSH);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(addButton);
    addButton.setImage(Images.getImageDescriptor(ISharedImages.IMG_OBJ_ADD).createImage());
    addButton.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            addNew();/*www  .  ja va  2  s. co  m*/
        }
    });

    Button removeButton = toolkit.createButton(panel, "Remove", SWT.PUSH);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(removeButton);
    removeButton.setImage(Images.getImageDescriptor(ISharedImages.IMG_ETOOL_DELETE).createImage());
    dbc.bindValue(SWTObservables.observeEnabled(removeButton), new ComputedValue() {

        protected Object calculate() {
            IViewerObservableList selection = ViewersObservables.observeMultiSelection(viewer);
            if (selection.size() == 1 && selection.get(0) == newParameterItem)
                return false;
            else
                return !selection.isEmpty();
        }
    });
    removeButton.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            removeSelected();
        }
    });
}

From source file:org.eclipse.rcptt.ctx.preferences.ui.PreferencesContextEditor.java

License:Open Source License

private Composite createPanel(Composite parent, FormToolkit toolkit) {
    Composite panel = toolkit.createComposite(parent);
    GridLayoutFactory.fillDefaults().applyTo(panel);

    Button importButton = toolkit.createButton(panel, "Import Preferences...", SWT.PUSH);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(importButton);
    importButton.setImage(Images.getImageDescriptor(Images.PREFERENCES_IMPORT).createImage());

    importButton.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            PreferencesImportWizard wizard = new PreferencesImportWizard(PreferencesContextEditor.this);
            WizardDialog dialog = new WizardDialog(WorkbenchUtils.getShell(), wizard);
            dialog.open();//from  ww w .  j a  va  2  s  . c  o  m
        }
    });

    Button addButton = toolkit.createButton(panel, "Add...", SWT.PUSH);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(addButton);
    addButton.setImage(Images.getImageDescriptor(Images.PREFERENCES_IMPORT).createImage());

    addButton.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            PreferencesAddWizard wizard = new PreferencesAddWizard(PreferencesContextEditor.this);
            WizardDialog dialog = new WizardDialog(WorkbenchUtils.getShell(), wizard);
            dialog.open();
        }
    });

    Button removeButton = toolkit.createButton(panel, "Remove", SWT.PUSH);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(removeButton);
    removeButton.setImage(PlatformUI.getWorkbench().getSharedImages()
            .getImageDescriptor(ISharedImages.IMG_ETOOL_DELETE).createImage());
    dbc.bindValue(SWTObservables.observeEnabled(removeButton), new ComputedValue() {

        protected Object calculate() {
            IViewerObservableList selection = ViewersObservables.observeMultiSelection(viewer);
            return !selection.isEmpty();
        }
    });
    removeButton.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            removeSelected();
        }
    });
    return panel;
}

From source file:org.eclipse.rcptt.ctx.workbench.ui.views.SelectViewDialog.java

License:Open Source License

@Override
protected Control createButtonBar(Composite parent) {
    Control retVal = super.createButtonBar(parent);
    dbc.bindValue(SWTObservables.observeEnabled(getButton(OK)), selectedView,
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER),
            new UpdateValueStrategy().setConverter(new Converter(ViewInfo.class, Boolean.class) {
                public Boolean convert(Object fromObject) {
                    ViewInfo s = (ViewInfo) fromObject;
                    return s != null;
                }//from www  . j a  v  a  2 s  .co m
            }));
    return retVal;
}

From source file:org.eclipse.rcptt.internal.launching.ext.ui.wizards.NewAUTPage.java

License:Open Source License

private void createControlArch(final Composite parent) {
    Label archLabel = new Label(parent, SWT.NONE);
    archLabel.setText("Architecture:");

    Composite archGroup = new Composite(parent, SWT.NONE);
    GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(true).applyTo(archGroup);
    GridDataFactory.fillDefaults().span(1, 1).grab(true, false).applyTo(archGroup);
    Button b32 = new Button(archGroup, SWT.RADIO);
    Button b64 = new Button(archGroup, SWT.RADIO);
    b32.setText("32bit");
    b64.setText("64bit");

    dbc.bindValue(SWTObservables.observeEnabled(b32), archEnabled);
    dbc.bindValue(SWTObservables.observeEnabled(b64), archEnabled);
    dbc.bindValue(SWTObservables.observeSelection(b64), platformArchitecture64);
    dbc.bindValue(SWTObservables.observeSelection(b32), platformArchitecture32);

    final Link archLink = new Link(parent, SWT.UNDERLINE_LINK);
    archLink.setText("There is no appropriate JVM configured. <a>Configure JVM...</a>");
    GridDataFactory.fillDefaults().span(3, 1).grab(true, false).applyTo(archLink);
    archLink.addSelectionListener(new SelectionAdapter() {
        @Override//  www  .  jav a 2 s . c o  m
        public void widgetSelected(SelectionEvent e) {
            PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(shell, JREsPreferencePage.ID,
                    new String[] { JREsPreferencePage.ID }, null);
            if (dialog.open() == PreferenceDialog.OK) {
                validatePlatform();
            }
        }
    });

    ISWTObservableValue archLinkObservable = SWTObservables.observeVisible(archLink);
    archLinkObservable.addChangeListener(new IChangeListener() {
        public void handleChange(ChangeEvent event) {
            // Hides container as well (like "display: none")
            GridData data = (GridData) archLink.getLayoutData();
            data.exclude = !archLink.getVisible();
            parent.layout(false);
        }
    });
    dbc.bindValue(archLinkObservable, architectureError);
}

From source file:org.eclipse.rcptt.ui.controls.AbstractEmbeddedComposite.java

License:Open Source License

public void createToolBar(Composite parent) {
    final ToolBarManager manager = new ToolBarManager(SWT.FLAT | SWT.HORIZONTAL);
    fillActions(manager);/*w  ww  .  j  a  v a 2s . c o m*/
    toolBar = manager.createControl(parent);
    toolBar.moveAbove(null);
    if (disableToolBarOnHide()) {
        dbc.bindValue(SWTObservables.observeEnabled(toolBar), visible);
    }
}

From source file:org.eclipse.rcptt.ui.panels.assertion.AssertionPanelWindow.java

License:Open Source License

protected Control createTreeViewer(Composite parent) {
    treeViewerComposite = new Composite(parent, SWT.NONE);
    treeViewerComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    treeViewerComposite.setLayout(new GridLayout());

    final Composite filterComposite = createFilterComposite(treeViewerComposite);
    filterComposite.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));

    final Composite treeComposite = new Composite(treeViewerComposite, SWT.NONE);
    final TreeColumnLayout layout = new TreeColumnLayout();
    treeComposite.setLayout(layout);/*from  w  ww  .  java 2 s .  c o m*/
    treeComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    final Tree tree = new Tree(treeComposite, SWT.BORDER | SWT.CHECK | SWT.FULL_SELECTION);
    tree.setHeaderVisible(true);

    dbc.bindValue(SWTObservables.observeEnabled(tree), hasAssert);

    viewer = new CheckboxTreeViewer(tree);
    createColumnViewers(layout);
    viewer.setContentProvider(new AssertContentProvider(getAut()));
    viewer.setUseHashlookup(true);
    viewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            processCheck(event.getElement(), event.getChecked());
        }
    });
    viewer.addFilter(new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (filterValue.isEmpty()) {
                return true;
            }
            if (filterCombo.getSelectionIndex() == 0) {
                return select((CheckboxTreeViewer) viewer, element, new ITreeViewerFilter() {
                    @Override
                    public boolean isVisible(AssertImpl object) {
                        final String[] attributes = object.getAttribute().split("\\.");
                        final String name = attributes[attributes.length - 1];
                        return name.toLowerCase().contains(filterValue);
                    }
                });
            }
            if (filterCombo.getSelectionIndex() == 1) {
                return select((CheckboxTreeViewer) viewer, element, new ITreeViewerFilter() {
                    @Override
                    public boolean isVisible(AssertImpl object) {
                        return object.getValue().toLowerCase().contains(filterValue);
                    }
                });
            }
            return true;
        }

        private boolean select(CheckboxTreeViewer viewer, Object element, ITreeViewerFilter filter) {
            if (element instanceof AssertGroup) {
                AssertGroup group = (AssertGroup) element;
                for (final Object child : group.getAsserts()) {
                    if (select(viewer, child, filter)) {
                        return true;
                    }
                }
            } else if (element instanceof AssertImpl) {
                final AssertImpl assertElement = (AssertImpl) element;
                if (filter.isVisible(assertElement)) {
                    return true;
                }
            } else {
                return true;
            }
            return false;
        }
    });
    viewer.getTree().addListener(SWT.EraseItem, new Listener() {
        public void handleEvent(Event event) {
            if (filterValue.isEmpty() || (event.detail & SWT.SELECTED) != 0) {
                return;
            }
            if (((TreeItem) event.item).getData() instanceof AssertImpl) {
                final GC gc = event.gc;
                gc.setBackground(new org.eclipse.swt.graphics.Color(viewer.getControl().getDisplay(),
                        new RGB(168, 182, 223)));
                gc.fillRectangle(0, event.y, viewer.getTree().getClientArea().width, event.height);
            }
        }
    });

    return treeViewerComposite;
}

From source file:org.eclipse.rcptt.ui.panels.assertion.AssertionPanelWindow.java

License:Open Source License

protected Control createButtonPanel(Composite parent) {
    final Composite composite = new Composite(parent, SWT.NONE);
    GridLayoutFactory.fillDefaults().numColumns(3).applyTo(composite);

    final Button widgetInfo = new Button(composite, SWT.NONE);
    GridDataFactory.swtDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(widgetInfo);
    widgetInfo.setText("Widget details...");
    widgetInfo.setImage(Images.getImageDescriptor(Images.PANEL_NEW_IMAGE_WIDGET_DETAILS).createImage());

    widgetInfo.addSelectionListener(new SelectionAdapter() {
        @Override//w ww. j a  v  a 2s  . c  o m
        public void widgetSelected(SelectionEvent e) {
            GetWidgetDetails getDetails = TeslaFactory.eINSTANCE.createGetWidgetDetails();
            getDetails.setElement(EcoreUtil.copy(commands.getElement()));
            Object result = null;
            try {
                result = getAut().execute(getDetails);
            } catch (Exception eeee) {
                Q7UIPlugin.log(eeee);
            }
            if (result != null && result instanceof BoxedValue) {
                String msg = BoxedValues.toString((BoxedValue) result);
                widgetDetailsDialog = new WidgetDetailsDialog(widgetInfo.getShell(), msg);
                widgetDetailsDialog.open();
            }
        }
    });

    // createVerificationsButton(composite);

    appendButton = new Button(composite, SWT.NONE);

    GridDataFactory.swtDefaults().align(SWT.RIGHT, SWT.CENTER).grab(true, false).hint(120, SWT.DEFAULT)
            .applyTo(appendButton);

    appendButton.setImage(PlatformUI.getWorkbench().getSharedImages()
            .getImageDescriptor(ISharedImages.IMG_OBJ_ADD).createImage());
    appendButton.setText(Messages.AssertionPanelWindow_AddAssertButton);
    appendButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            addButtonPressed();
            close();
        }
    });

    checkedObservable = ViewersObservables.observeCheckedElements(viewer, null);
    ComputedValue computed = new ComputedValue(Boolean.TYPE) {
        @Override
        protected Object calculate() {
            if (!(Boolean) hasAssert.getValue()) {
                return false;
            }
            return !checkedObservable.isEmpty();
        }
    };
    dbc.bindValue(SWTObservables.observeEnabled(appendButton), computed);
    return composite;
}

From source file:org.eclipse.rcptt.ui.report.ReportMainPage.java

License:Open Source License

private void createGenerateToFilesystem(Composite panel) {
    Button generateToFilesystem = new Button(panel, SWT.RADIO);
    generateToFilesystem.setText(Messages.ReportMainPage_GenerateInFileSystemButton);
    GridDataFactory.swtDefaults().span(2, 1).applyTo(generateToFilesystem);

    Composite sPanelFileSystem = new Composite(panel, SWT.NONE);
    GridLayoutFactory.fillDefaults().numColumns(3).extendedMargins(20, 0, 0, 0).applyTo(sPanelFileSystem);
    GridDataFactory.fillDefaults().span(2, 1).applyTo(sPanelFileSystem);

    Label sFileSystemLabel = new Label(sPanelFileSystem, SWT.NONE);
    sFileSystemLabel.setText(Messages.ReportMainPage_LocationLabel);
    Text filesystemLocation = new Text(sPanelFileSystem, SWT.BORDER);

    final ControlDecoration controlDecoration = new ControlDecoration(filesystemLocation, SWT.LEFT | SWT.TOP);
    controlDecoration.setDescriptionText(""); //$NON-NLS-1$
    FieldDecoration fieldDecoration = FieldDecorationRegistry.getDefault()
            .getFieldDecoration(FieldDecorationRegistry.DEC_ERROR);
    controlDecoration.setImage(fieldDecoration.getImage());
    controlDecoration.hide();/*from   ww w  .j  av  a  2  s .co m*/

    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(filesystemLocation);
    Button browseFilesystem = new Button(sPanelFileSystem, SWT.PUSH);
    browseFilesystem.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            DirectoryDialog dialog = new DirectoryDialog(getShell());
            dialog.setMessage(Messages.ReportMainPage_SelectLocationDialogText);
            dialog.setFilterPath(
                    ResourcesPlugin.getWorkspace().getRoot().getLocation().removeFirstSegments(1).toString());
            dialog.setText(Messages.ReportMainPage_SelectLocationDialogText);
            String location = dialog.open();
            if (location != null) {
                ReportMainPage.this.filesystemLocation.setValue(location);
            }
        }
    });
    browseFilesystem.setText(Messages.ReportMainPage_BrowseButton);
    setButtonLayoutData(browseFilesystem);

    dbc.bindValue(SWTObservables.observeEnabled(browseFilesystem), this.generateToWorkspace,
            new UpdateValueStrategy(), new InverseBooleanConverter());
    dbc.bindValue(SWTObservables.observeEnabled(filesystemLocation), this.generateToWorkspace,
            new UpdateValueStrategy(), new InverseBooleanConverter());

    dbc.bindValue(SWTObservables.observeEnabled(sFileSystemLabel), this.generateToWorkspace,
            new UpdateValueStrategy(), new InverseBooleanConverter());

    dbc.bindValue(SWTObservables.observeText(filesystemLocation, SWT.Modify), this.filesystemLocation);

    this.filesystemLocation.addValueChangeListener(new IValueChangeListener() {
        public void handleValueChange(ValueChangeEvent event) {
            if (!isValidFileLocation()) {
                controlDecoration.show();
                controlDecoration.showHoverText(Messages.ReportMainPage_NoOutputLocationMsg);
                validate();
                return;
            }
            controlDecoration.hide();
            validate();
        }
    });
}