Example usage for org.eclipse.jface.databinding.viewers ViewerProperties singleSelection

List of usage examples for org.eclipse.jface.databinding.viewers ViewerProperties singleSelection

Introduction

In this page you can find the example usage for org.eclipse.jface.databinding.viewers ViewerProperties singleSelection.

Prototype

public static IViewerValueProperty singleSelection() 

Source Link

Document

Returns a value property for observing the single selection of a ISelectionProvider .

Usage

From source file:org.eclipse.emf.example.databinding.project.ui.rcp.views.ProjectExplorerPart.java

License:Open Source License

private TreeViewer init(Composite parent, Foundation foundation) {
    TreeViewer viewer = new TreeViewer(parent);

    ObservableListTreeContentProvider cp = new ObservableListTreeContentProvider(new TreeFactoryImpl(),
            new TreeStructureAdvisorImpl());
    viewer.setContentProvider(cp);/*w  w  w  .  ja v  a 2s  .  co m*/

    IObservableSet set = cp.getKnownElements();

    IObservableMap[] map = new IObservableMap[4];
    map[0] = EMFProperties.value(ProjectPackage.Literals.PROJECT__SHORTNAME).observeDetail(set);
    map[1] = EMFProperties.value(ProjectPackage.Literals.PROJECT__COMMITTERS).observeDetail(set);
    map[2] = EMFProperties.value(FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP__PERSON,
            ProjectPackage.Literals.PERSON__FIRSTNAME)).observeDetail(set);
    map[3] = EMFProperties.value(FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP__PERSON,
            ProjectPackage.Literals.PERSON__LASTNAME)).observeDetail(set);

    viewer.setLabelProvider(new TreeLabelProviderImpl(map));

    IEMFListProperty projects = EMFProperties.list(ProjectPackage.Literals.FOUNDATION__PROJECTS);
    viewer.setInput(projects.observe(foundation));

    MenuManager mgr = new MenuManager();
    mgr.add(new GroupMarker("additions"));
    viewer.getControl().setMenu(mgr.createContextMenu(viewer.getControl()));

    site.registerContextMenu(Activator.PLUGIN_ID + ".projectexp", mgr, viewer);
    site.setSelectionProvider(viewer);

    ColumnViewerToolTipSupportImpl.enableFor(viewer, toolkit);

    IObservableValue treeObs = ViewerProperties.singleSelection().observe(viewer);
    treeObs.addValueChangeListener(new IValueChangeListener() {

        public void handleValueChange(ValueChangeEvent event) {
            ISourceProviderService s = (ISourceProviderService) site.getService(ISourceProviderService.class);
            ResourceProvider p = (ResourceProvider) s.getSourceProvider(ResourceProvider.MODEL_RESOURCE_NAME);

            if (event.diff.getNewValue() instanceof Project) {
                Project pr = (Project) event.diff.getNewValue();
                master.setValue(pr);
                p.setCommitter(null);
                p.setProject(pr);
            } else if (event.diff.getNewValue() != null) {
                CommitterShip cm = (CommitterShip) event.diff.getNewValue();
                master.setValue(cm.getProject());
                p.setCommitter(cm);
                p.setProject(cm.getProject());
            } else {
                p.setCommitter(null);
                p.setProject(null);
            }
        }
    });

    return viewer;
}

From source file:org.eclipse.emf.examples.library.databinding.editor.LibraryEditor.java

License:Open Source License

private void createDetailArea(SashForm sashform, IFocusService focusService) {
    FormToolkit toolkit = new FormToolkit(sashform.getDisplay());

    final DataBindingContext dbc = new DataBindingContext();
    IValueProperty viewerProp = ViewerProperties.singleSelection();
    IValueProperty textProp = WidgetProperties.text(SWT.Modify);
    IValueProperty formTextProp = FormProperties.text();

    Composite comp = new Composite(sashform, SWT.NONE);
    comp.setLayout(new FillLayout());

    Form form = toolkit.createForm(comp);
    toolkit.decorateFormHeading(form);/* ww w.  ja  v  a2  s . com*/
    form.setText("");

    form.getBody().setLayout(new GridLayout(2, false));
    toolkit.createLabel(form.getBody(), "Name");

    Text t = toolkit.createText(form.getBody(), "");
    t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    focusService.addFocusTracker(t, LIBRARY_NAME);

    final IObservableValue viewerSelection = viewerProp.observe(viewer);

    IEMFEditValueProperty prop = EMFEditProperties.value(p.getEditingDomain(),
            EXTLibraryPackage.Literals.LIBRARY__NAME);

    IObservableValue uObs = prop.observeDetail(viewerSelection);

    dbc.bindValue(SWTObservables.observeDelayedValue(400, (ISWTObservableValue) textProp.observe(t)), uObs);
    dbc.bindValue(formTextProp.observe(form), uObs, new UpdateValueStrategy(),
            new UpdateValueStrategy().setConverter(new NullConverter()));

    GridData gd = new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false);
    gd.verticalIndent = 10;
    toolkit.createLabel(form.getBody(), "Address").setLayoutData(gd);
    t = toolkit.createText(form.getBody(), "", SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.heightHint = t.getLineHeight() * 7;
    t.setLayoutData(gd);
    focusService.addFocusTracker(t, LIBRARY_ADDRESS);

    prop = EMFEditProperties.value(p.getEditingDomain(), EXTLibraryPackage.Literals.ADDRESSABLE__ADDRESS);
    dbc.bindValue(SWTObservables.observeDelayedValue(400, (ISWTObservableValue) textProp.observe(t)),
            prop.observeDetail(viewerSelection));

    subfolder = new TabFolder(form.getBody(), SWT.NONE);
    subfolder.addSelectionListener(new SelectionListener() {

        public void widgetSelected(SelectionEvent e) {
            for (AbstractForm f : subforms) {
                if (e.item == f.getItem()) {
                    f.activate();
                } else {
                    f.deactivate();
                }
            }

        }

        public void widgetDefaultSelected(SelectionEvent e) {
            widgetSelected(e);
        }
    });
    gd = new GridData(GridData.FILL_BOTH);
    gd.horizontalSpan = 2;
    subfolder.setLayoutData(gd);

    int i = 0;
    for (FormDescriptor desc : Activator.getDefault().getFormDescriptors()) {
        try {
            createForm(i++, desc, dbc, viewerSelection);
        } catch (CoreException e) {
            ErrorDialog.openError(viewer.getControl().getShell(), "Error loading forms", e.getMessage(),
                    e.getStatus());
            Activator.getDefault().getLog().log(e.getStatus());
        }
    }

    if (subfolder.getItemCount() > 0) {
        subfolder.setSelection(0);
        subforms.get(0).activate();
    } else {
        subfolder.setVisible(false);
    }

    Activator.getDefault().getFormHandler().addModificationListener(new IModificationListener() {

        public void formAdd(final int index, final FormDescriptor descriptor) {

            if (!viewer.getControl().isDisposed()) {
                viewer.getControl().getDisplay().syncExec(new Runnable() {

                    public void run() {
                        try {
                            createForm(index, descriptor, dbc, viewerSelection);
                        } catch (CoreException e) {
                            ErrorDialog.openError(viewer.getControl().getShell(), "Error loading forms",
                                    e.getMessage(), e.getStatus());
                            Activator.getDefault().getLog().log(e.getStatus());
                        }
                    }

                });
            }

        }

        public void formRemoved(FormDescriptor descriptor) {
            String id = descriptor.getId();
            Iterator<AbstractForm> it = subforms.iterator();
            while (it.hasNext()) {
                final AbstractForm form = it.next();
                if (form.getId().equals(id)) {
                    if (!viewer.getControl().isDisposed()) {
                        viewer.getControl().getDisplay().syncExec(new Runnable() {

                            public void run() {
                                form.dispose();
                            }

                        });
                        it.remove();
                    }

                }
            }
        }

    });
}

From source file:org.eclipse.emf.examples.library.databinding.stock.dialog.BookDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite container = (Composite) super.createDialogArea(parent);

    getShell().setText("Edit Book");
    setTitle("Edit the book");
    setMessage(/* ww w.j ava2  s.  co m*/
            "Edit the data of the book with the form below and press ok when done or cancel to undo all modifications.");

    Composite comp = new Composite(container, SWT.NONE);
    comp.setLayoutData(new GridData(GridData.FILL_BOTH));
    comp.setLayout(new GridLayout(2, false));

    DataBindingContext dbc = new DataBindingContext();

    /*
     * Title
     */
    Label l = new Label(comp, SWT.NONE);
    l.setText("Title");

    Text t = new Text(comp, SWT.BORDER);
    t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    IValueProperty uProp = WidgetProperties.text(SWT.Modify);
    IEMFEditValueProperty mProp = EMFEditProperties.value(domain, EXTLibraryPackage.Literals.BOOK__TITLE);
    dbc.bindValue(SWTObservables.observeDelayedValue(400, (ISWTObservableValue) uProp.observe(t)),
            mProp.observe(book));

    /*
     * Publication Date
     */
    l = new Label(comp, SWT.NONE);
    l.setText("Publication Date");

    t = new Text(comp, SWT.BORDER);
    t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    mProp = EMFEditProperties.value(domain, EXTLibraryPackage.Literals.ITEM__PUBLICATION_DATE);
    dbc.bindValue(SWTObservables.observeDelayedValue(400, (ISWTObservableValue) uProp.observe(t)),
            mProp.observe(book), new UpdateValueStrategy(),
            new UpdateValueStrategy().setConverter(new DateToStringConverter()));

    /*
     * Copies
     */
    l = new Label(comp, SWT.NONE);
    l.setText("Copies");

    t = new Text(comp, SWT.BORDER);
    t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    mProp = EMFEditProperties.value(domain, EXTLibraryPackage.Literals.LENDABLE__COPIES);
    dbc.bindValue(SWTObservables.observeDelayedValue(400, (ISWTObservableValue) uProp.observe(t)),
            mProp.observe(book));

    /*
     * Pages
     */
    l = new Label(comp, SWT.NONE);
    l.setText("Pages");

    t = new Text(comp, SWT.BORDER);
    t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    mProp = EMFEditProperties.value(domain, EXTLibraryPackage.Literals.BOOK__PAGES);
    dbc.bindValue(SWTObservables.observeDelayedValue(400, (ISWTObservableValue) uProp.observe(t)),
            mProp.observe(book));

    /*
     * Category
     */
    l = new Label(comp, SWT.NONE);
    l.setText("Category");

    ComboViewer categoryViewer = new ComboViewer(comp, SWT.BORDER);
    categoryViewer.setContentProvider(new ArrayContentProvider());
    categoryViewer.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            switch ((BookCategory) element) {
            case BIOGRAPHY_LITERAL:
                return "Biographie";
            case MYSTERY_LITERAL:
                return "Mystery";
            case SCIENCE_FICTION_LITERAL:
                return "Science Fiction";
            default:
                return "";
            }
        }
    });
    categoryViewer.getCombo().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    categoryViewer.setInput(new BookCategory[] { BookCategory.BIOGRAPHY_LITERAL, BookCategory.MYSTERY_LITERAL,
            BookCategory.SCIENCE_FICTION_LITERAL });
    IValueProperty selectionProp = ViewerProperties.singleSelection();
    mProp = EMFEditProperties.value(domain, EXTLibraryPackage.Literals.BOOK__CATEGORY);
    dbc.bindValue(selectionProp.observe(categoryViewer), mProp.observe(book));

    /*
     * Author
     */
    l = new Label(comp, SWT.NONE);
    l.setText("Author");

    TokenViewer authorViewer = new TokenViewer(comp);
    authorViewer.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    authorViewer.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            Writer w = (Writer) element;
            return w.getLastName() + ", " + w.getFirstName();
        }
    });
    authorViewer.setContentProvider(new ArrayContentProvider());
    authorViewer.setInput(EMFEditObservables.observeList(Realm.getDefault(), domain, library,
            EXTLibraryPackage.Literals.LIBRARY__WRITERS));

    mProp = EMFEditProperties.value(domain, EXTLibraryPackage.Literals.BOOK__AUTHOR);
    dbc.bindValue(selectionProp.observe(authorViewer), mProp.observe(book));

    return container;
}

From source file:org.eclipse.emf.examples.library.databinding.stock.dialog.BookOnTapeDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    getShell().setText("Edit Book On Tape");
    setTitle("Edit the book on tape");
    setMessage(//  ww  w. j a  va  2s .c  o m
            "Edit the data of the book on tape with the form below and press ok when done or cancel to undo all modifications.");

    Composite container = (Composite) super.createDialogArea(parent);

    Composite comp = new Composite(container, SWT.NONE);
    comp.setLayoutData(new GridData(GridData.FILL_BOTH));
    comp.setLayout(new GridLayout(2, false));

    DataBindingContext dbc = new DataBindingContext();

    /*
     * Title
     */
    Label l = new Label(comp, SWT.NONE);
    l.setText("Title");

    Text t = new Text(comp, SWT.BORDER);
    t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    IValueProperty uProp = WidgetProperties.text(SWT.Modify);
    IEMFEditValueProperty mProp = EMFEditProperties.value(domain,
            EXTLibraryPackage.Literals.AUDIO_VISUAL_ITEM__TITLE);
    dbc.bindValue(SWTObservables.observeDelayedValue(400, (ISWTObservableValue) uProp.observe(t)),
            mProp.observe(bookOnTape));

    /*
     * Publication Date
     */
    l = new Label(comp, SWT.NONE);
    l.setText("Publication Date");

    t = new Text(comp, SWT.BORDER);
    t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    mProp = EMFEditProperties.value(domain, EXTLibraryPackage.Literals.ITEM__PUBLICATION_DATE);
    dbc.bindValue(SWTObservables.observeDelayedValue(400, (ISWTObservableValue) uProp.observe(t)),
            mProp.observe(bookOnTape), new UpdateValueStrategy(),
            new UpdateValueStrategy().setConverter(new DateToStringConverter()));

    /*
     * Copies
     */
    l = new Label(comp, SWT.NONE);
    l.setText("Copies");

    t = new Text(comp, SWT.BORDER);
    t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    mProp = EMFEditProperties.value(domain, EXTLibraryPackage.Literals.LENDABLE__COPIES);
    dbc.bindValue(SWTObservables.observeDelayedValue(400, (ISWTObservableValue) uProp.observe(t)),
            mProp.observe(bookOnTape));

    /*
     * Length
     */
    l = new Label(comp, SWT.NONE);
    l.setText("Length (minutes)");

    t = new Text(comp, SWT.BORDER);
    t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    mProp = EMFEditProperties.value(domain, EXTLibraryPackage.Literals.AUDIO_VISUAL_ITEM__MINUTES_LENGTH);
    dbc.bindValue(SWTObservables.observeDelayedValue(400, (ISWTObservableValue) uProp.observe(t)),
            mProp.observe(bookOnTape));

    /*
     * Author
     */
    l = new Label(comp, SWT.NONE);
    l.setText("Author");
    {
        TokenViewer authorViewer = new TokenViewer(comp);
        authorViewer.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        authorViewer.setLabelProvider(new LabelProvider() {
            @Override
            public String getText(Object element) {
                Writer w = (Writer) element;
                return w.getLastName() + ", " + w.getFirstName();
            }
        });
        authorViewer.setContentProvider(new ArrayContentProvider());
        authorViewer.setInput(EMFEditObservables.observeList(Realm.getDefault(), domain, library,
                EXTLibraryPackage.Literals.LIBRARY__WRITERS));

        mProp = EMFEditProperties.value(domain, EXTLibraryPackage.Literals.BOOK_ON_TAPE__AUTHOR);
        IValueProperty selectionProp = ViewerProperties.singleSelection();
        dbc.bindValue(selectionProp.observe(authorViewer), mProp.observe(bookOnTape));
    }

    /*
     * Reader
     */
    l = new Label(comp, SWT.NONE);
    l.setText("Reader");
    {
        TokenViewer readerViewer = new TokenViewer(comp);
        readerViewer.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        readerViewer.setLabelProvider(new LabelProvider() {
            @Override
            public String getText(Object element) {
                Writer w = (Writer) element;
                return w.getLastName() + ", " + w.getFirstName();
            }
        });

        readerViewer.setContentProvider(new ArrayContentProvider());
        readerViewer.setInput(EMFEditObservables.observeList(Realm.getDefault(), domain, library,
                EXTLibraryPackage.Literals.LIBRARY__READERS));

        mProp = EMFEditProperties.value(domain, EXTLibraryPackage.Literals.BOOK_ON_TAPE__READER);
        IValueProperty selectionProp = ViewerProperties.singleSelection();
        dbc.bindValue(selectionProp.observe(readerViewer), mProp.observe(bookOnTape));
    }

    return comp;
}

From source file:org.eclipse.fx.ide.fxml.wizards.FXMLWizardPage.java

License:Open Source License

@Override
protected void createFields(Composite parent, DataBindingContext dbc) {
    {//from  www  . java  2s.  c o  m
        Label l = new Label(parent, SWT.NONE);
        l.setText(Messages.FXMLWizardPage_4);

        final ComboViewer viewer = new ComboViewer(parent);
        viewer.setLabelProvider(new LabelProvider() {
            @Override
            public String getText(Object element) {
                IType t = (IType) element;
                return t.getElementName() + " - " + t.getPackageFragment().getElementName(); //$NON-NLS-1$
            }
        });
        viewer.setContentProvider(new ArrayContentProvider());
        List<IType> types = getTypes();
        viewer.setInput(types);
        viewer.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        Button button = new Button(parent, SWT.PUSH);
        button.setText(Messages.FXMLWizardPage_6);
        button.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                IType type = findContainerType();
                if (type != null) {
                    FXMLWizardPage.this.customSelection = type;
                    viewer.setInput(getTypes());
                    viewer.setSelection(new StructuredSelection(type));
                }
            }
        });

        FXMLElement element = getClazz();
        element.addPropertyChangeListener(new PropertyChangeListener() {

            @Override
            public void propertyChange(PropertyChangeEvent evt) {
                if ("fragmentRoot".equals(evt.getPropertyName())) { //$NON-NLS-1$
                    viewer.setInput(getTypes());
                }
            }
        });
        dbc.bindValue(ViewerProperties.singleSelection().observe(viewer),
                BeanProperties.value("rootElement").observe(getClazz())); //$NON-NLS-1$

        if (types.size() > 0) {
            viewer.setSelection(new StructuredSelection(types.get(0)));
        }
    }

    {
        Label l = new Label(parent, SWT.NONE);
        l.setText(Messages.FXMLWizardPage_9);

        Button b = new Button(parent, SWT.CHECK);
        dbc.bindValue(WidgetProperties.selection().observe(b),
                BeanProperties.value("fxRoot").observe(getClazz())); //$NON-NLS-1$
    }
}

From source file:org.eclipse.linuxtools.internal.docker.ui.wizards.ImagePullPushPage.java

License:Open Source License

@SuppressWarnings("unchecked")
IObservableValue<IRegistry> createRegistrySelectionControls(Composite parent) {
    // registry selection
    final Label accountLabel = new Label(parent, SWT.NULL);
    accountLabel.setText(WizardMessages.getString("ImagePullPushPage.registry.account.label")); //$NON-NLS-1$
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(false, false).applyTo(accountLabel);
    final Combo registryAccountCombo = new Combo(parent, SWT.DROP_DOWN | SWT.READ_ONLY);
    registryAccountCombo.setToolTipText(WizardMessages.getString("ImagePullPushPage.registry.account.desc")); //$NON-NLS-1$
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(registryAccountCombo);
    final ComboViewer registryAccountComboViewer = new ComboViewer(registryAccountCombo);
    registryAccountComboViewer.setContentProvider(ArrayContentProvider.getInstance());
    registryAccountComboViewer.setLabelProvider(new RegistryAccountLabelProvider());
    final List<IRegistry> allRegistryAccounts = getRegistryAccounts();
    registryAccountComboViewer.setInput(allRegistryAccounts);
    if (!allRegistryAccounts.isEmpty()) {
        getModel().setSelectedRegistry(allRegistryAccounts.get(0));
    }//ww  w  . j  a va  2s.c om
    final IObservableValue<IRegistry> registryAccountObservable = BeanProperties
            .value(ImagePushPageModel.class, ImagePullPushPageModel.SELECTED_REGISTRY).observe(model);
    dbc.bindValue(ViewerProperties.singleSelection().observe(registryAccountComboViewer),
            registryAccountObservable);
    // link to add registries and accounts
    final Link addRegistryLink = new Link(parent, SWT.NONE);
    addRegistryLink.setText(WizardMessages.getString("ImagePullPushPage.add.link")); //$NON-NLS-1$
    GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).grab(true, false).applyTo(addRegistryLink);
    addRegistryLink.addSelectionListener(onAddRegistry(registryAccountComboViewer));
    return registryAccountObservable;
}

From source file:org.eclipse.linuxtools.internal.docker.ui.wizards.ImageSearchPage.java

License:Open Source License

@Override
public void createControl(final Composite parent) {
    final int COLUMNS = 3;
    final Composite container = new Composite(parent, SWT.NONE);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).span(1, 1).grab(true, false).applyTo(container);
    GridLayoutFactory.fillDefaults().numColumns(COLUMNS).margins(6, 6).spacing(10, 2).applyTo(container);
    // search text
    final Label searchImageLabel = new Label(container, SWT.NONE);
    searchImageLabel.setText(WizardMessages.getString("ImageSearchPage.imageLabel")); //$NON-NLS-1$
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(false, false).applyTo(searchImageLabel);
    final Text searchImageText = new Text(container,
            SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH | SWT.ICON_CANCEL);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(searchImageText);
    searchImageText.addKeyListener(onKeyPressed());
    searchImageText.addTraverseListener(onSearchImageTextTraverse());
    final Button searchImageButton = new Button(container, SWT.NONE);
    searchImageButton.setText(WizardMessages.getString("ImageSearchPage.search")); //$NON-NLS-1$
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(false, false).applyTo(searchImageButton);
    searchImageButton.addSelectionListener(onSearchImageButtonSelected());
    // result table
    final Label searchResultLabel = new Label(container, SWT.NONE);
    searchResultLabel.setText(WizardMessages.getString("ImageSearchPage.searchResultLabel")); //$NON-NLS-1$
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(COLUMNS, 1)
            .applyTo(searchResultLabel);
    final Table table = new Table(container, SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL);
    final TableViewer searchResultTableViewer = new TableViewer(table);
    table.setHeaderVisible(true);// w  w  w .  j ava  2 s .c  om
    table.setLinesVisible(true);
    addTableViewerColum(searchResultTableViewer, WizardMessages.getString("ImageSearchPage.nameColumn"), //$NON-NLS-1$
            SWT.NONE, SWT.RIGHT, 290, new ImageNameColumnLabelProvider());
    addTableViewerColum(searchResultTableViewer, WizardMessages.getString("ImageSearchPage.starsColumn"), //$NON-NLS-1$
            SWT.NONE, SWT.RIGHT, 70, new ImageStarsColumnLabelProvider());
    addTableViewerColum(searchResultTableViewer, WizardMessages.getString("ImageSearchPage.officialColumn"), //$NON-NLS-1$
            SWT.NONE, SWT.CENTER, 70, new ImageOfficialColumnLabelProvider());
    addTableViewerColum(searchResultTableViewer, WizardMessages.getString("ImageSearchPage.automatedColumn"), //$NON-NLS-1$
            SWT.NONE, SWT.CENTER, 70, new ImageAutomatedColumnLabelProvider());
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).span(COLUMNS, 1).hint(200, 100)
            .applyTo(table);
    // description text area
    final Group selectedImageDescriptionGroup = new Group(container, SWT.BORDER);
    selectedImageDescriptionGroup.setText(WizardMessages.getString("ImageSearchPage.descriptionGroup")); //$NON-NLS-1$
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, true).span(COLUMNS, 1)
            .applyTo(selectedImageDescriptionGroup);
    GridLayoutFactory.fillDefaults().margins(6, 6).spacing(10, 2).applyTo(selectedImageDescriptionGroup);
    final Label selectedImageDescription = new Label(selectedImageDescriptionGroup, SWT.WRAP);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, true).hint(200, 100)
            .applyTo(selectedImageDescription);
    // bind the search term
    final IObservableValue observableTermModel = BeanProperties
            .value(ImageSearchModel.class, ImageSearchModel.TERM).observe(model);
    final ISWTObservableValue imageSearchTextObservable = WidgetProperties.text(SWT.Modify)
            .observe(searchImageText);
    ctx.bindValue(imageSearchTextObservable, observableTermModel,
            new UpdateValueStrategy().setBeforeSetValidator(new SearchTermValidator(searchImageButton)), null);
    // observe the viewer content
    searchResultTableViewer.setContentProvider(new ObservableListContentProvider());
    // observe the viewer content
    final IObservableList observableSearchResultModel = BeanProperties
            .list(ImageSearchModel.class, ImageSearchModel.IMAGE_SEARCH_RESULT).observe(model);
    searchResultTableViewer.setInput(observableSearchResultModel);

    // observe the viewer selection
    ctx.bindValue(ViewerProperties.singleSelection().observe(searchResultTableViewer),
            BeanProperties.value(ImageSearchModel.SELECTED_IMAGE).observe(model));
    // observe the viewer selection to update the description label
    final IObservableValue observableSelectedImageDescription = PojoProperties
            .value("description", String.class) // $NON-NLS-1$
            .observeDetail(ViewerProperties.singleSelection().observe(searchResultTableViewer));
    ctx.bindValue(WidgetProperties.text().observe(selectedImageDescription),
            observableSelectedImageDescription);
    searchImageText.setFocus();
    // attach the Databinding context status to this wizard page.
    WizardPageSupport.create(this, this.ctx);
    setControl(container);
    // trigger a search if an image name was provided
    if (model.getTerm() != null && !model.getTerm().isEmpty()) {
        searchImages();
    }
}

From source file:org.eclipse.linuxtools.internal.docker.ui.wizards.ImageTagSelectionPage.java

License:Open Source License

@Override
public void createControl(final Composite parent) {
    final int COLUMNS = 1;
    final Composite container = new Composite(parent, SWT.NONE);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).span(1, 1).grab(true, false).applyTo(container);
    GridLayoutFactory.fillDefaults().numColumns(COLUMNS).margins(6, 6).spacing(10, 2).applyTo(container);

    // tags/layers table
    final Table table = new Table(container, SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).span(COLUMNS, 1).hint(200, 200)
            .applyTo(table);//from ww w . java2 s. c  o m
    final TableViewer tableViewer = new TableViewer(table);
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    addTableViewerColum(tableViewer, WizardMessages.getString("ImageTagSelectionPage.column.tag"), //$NON-NLS-1$
            SWT.NONE, SWT.LEFT, 200, new RepositoryTagColumnLabelProvider());
    addTableViewerColum(tableViewer, WizardMessages.getString("ImageTagSelectionPage.column.layer"), //$NON-NLS-1$
            SWT.NONE, SWT.LEFT, 200, new RepositoryLayerColumnLabelProvider());
    addTableViewerColum(tableViewer, WizardMessages.getString("ImageTagSelectionPage.column.localcopy"), //$NON-NLS-1$
            SWT.NONE, SWT.LEFT, 75, new ImagePulledColumnLabelProvider());
    tableViewer.setContentProvider(new ObservableListContentProvider());
    // observe the viewer content
    final IObservableList observableSearchResultModel = BeanProperties
            .list(ImageSearchModel.class, ImageSearchModel.IMAGE_TAG_SEARCH_RESULT).observe(model);
    tableViewer.setInput(observableSearchResultModel);
    // observe the viewer selection
    ctx.bindValue(ViewerProperties.singleSelection().observe(tableViewer),
            BeanProperties.value(ImageSearchModel.SELECTED_IMAGE_TAG).observe(model));
    setControl(container);
}

From source file:org.eclipse.papyrus.infra.widgets.editors.BooleanCombo.java

License:Open Source License

/**
 * /*w  w w . j ava2s  . co m*/
 * Constructor.
 * 
 * @param parent
 *        The Composite widget in which this editor will be displayed
 * @param style
 *        The style of this editor's CCombo
 * @param label
 *        This editor's label
 */
public BooleanCombo(Composite parent, int style, String label) {
    super(parent, style, label);
    CCombo combo = factory.createCCombo(this, style | SWT.BORDER);
    combo.setBackground(new Color(combo.getDisplay(), 255, 255, 255));
    combo.setLayoutData(getDefaultLayoutData());
    combo.setEditable(false);
    viewer = createComboViewer(combo);

    viewer.setContentProvider(new EncapsulatedContentProvider(new AbstractStaticContentProvider() {

        public Object[] getElements() {
            return new Boolean[] { Boolean.TRUE, Boolean.FALSE };
        }
    }));

    viewer.setInput(""); //$NON-NLS-1$

    setWidgetObservable(ViewerProperties.singleSelection().observe(viewer));

    setCommitOnFocusLost(combo);
}

From source file:org.eclipse.papyrus.widgets.editors.BooleanCombo.java

License:Open Source License

/**
 * //from   www .  j  a  v a2 s . co  m
 * Constructor.
 * 
 * @param parent
 *        The Composite widget in which this editor will be displayed
 * @param style
 *        The style of this editor's CCombo
 * @param label
 *        This editor's label
 */
public BooleanCombo(Composite parent, int style, String label) {
    super(parent, style, label);
    CCombo combo = factory.createCCombo(this, style);
    combo.setLayoutData(getDefaultLayoutData());
    combo.setEditable(false);
    viewer = new ComboViewer(combo);

    viewer.setContentProvider(new EncapsulatedContentProvider(new AbstractStaticContentProvider() {

        public Object[] getElements() {
            return new Boolean[] { Boolean.TRUE, Boolean.FALSE };
        }
    }));

    viewer.setInput(""); //$NON-NLS-1$

    setWidgetObservable(ViewerProperties.singleSelection().observe(viewer));

    setCommitOnFocusLost(combo);
}