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:at.bestsolution.e4.addressbook.ui.swt.AddressForm.java

License:Open Source License

public void init(AddressBook book) {
    {//ww w .ja  va 2s.  com
        IEMFListProperty mProp = EMFProperties.list(AddressbookPackage.Literals.ADDRESS_BOOK__COUNTRIES);
        IValueProperty props = EMFProperties.value(AddressbookPackage.Literals.COUNTRY__NAME);

        v_country = new ComboViewer(w_country);
        ObservableListContentProvider cp = new ObservableListContentProvider();
        v_country.setContentProvider(cp);
        v_country.setLabelProvider(new ObservableMapLabelProvider(props.observeDetail(cp.getKnownElements())));
        v_country.setInput(mProp.observe(book));
    }

    {
        IObservableValue value = ViewerProperties.singleSelection().observe(v_country);
        IEMFListProperty mProp = EMFProperties.list(AddressbookPackage.Literals.COUNTRY__FEDERAL_STATES);
        IValueProperty props = EMFProperties.value(AddressbookPackage.Literals.FEDERAL_STATE__NAME);

        value.addValueChangeListener(new IValueChangeListener() {

            @Override
            public void handleValueChange(ValueChangeEvent event) {
                if (stateBinding != null) {
                    stateBinding.dispose();
                    stateBinding = null;
                }
            }
        });

        v_state = new ComboViewer(w_state);
        ObservableListContentProvider cp = new ObservableListContentProvider();
        v_state.setContentProvider(cp);
        v_state.setLabelProvider(new ObservableMapLabelProvider(props.observeDetail(cp.getKnownElements())));
        v_state.setInput(mProp.observeDetail(value));

        value.addValueChangeListener(new IValueChangeListener() {

            @Override
            public void handleValueChange(ValueChangeEvent event) {
                if (stateBinding == null && dbc != null && master != null) {
                    bindState();
                }
            }
        });
    }
}

From source file:at.bestsolution.e4.addressbook.ui.swt.AddressForm.java

License:Open Source License

public void bindControls(DataBindingContext dbc, IObservableValue master) {
    this.dbc = dbc;
    this.master = master;

    IWidgetValueProperty tProp = WidgetProperties.text(SWT.Modify);
    IViewerValueProperty sProp = ViewerProperties.singleSelection();

    {/*from  w  w w  .  ja  va2 s  . co m*/
        IEMFValueProperty mProp = EMFProperties.value(AddressbookPackage.Literals.ADDRESS__STREET);
        dbc.bindValue(tProp.observe(w_street), mProp.observeDetail(master));
    }

    {
        IEMFValueProperty mProp = EMFProperties.value(AddressbookPackage.Literals.ADDRESS__ZIP);
        dbc.bindValue(tProp.observe(w_zip), mProp.observeDetail(master));
    }

    {
        IEMFValueProperty mProp = EMFProperties.value(AddressbookPackage.Literals.ADDRESS__CITY);
        dbc.bindValue(tProp.observe(w_city), mProp.observeDetail(master));
    }

    {
        IEMFValueProperty mProp = EMFProperties
                .value(FeaturePath.fromList(AddressbookPackage.Literals.ADDRESS__COUNTRY));
        dbc.bindValue(sProp.observe(v_country), mProp.observeDetail(master));
    }

    bindState();

    IWidgetValueProperty eProp = WidgetProperties.enabled();

    for (Control c : getChildren()) {
        EMFUpdateValueStrategy modelToTarget = new EMFUpdateValueStrategy();
        modelToTarget.setConverter(new Converter(Address.class, boolean.class) {

            @Override
            public Object convert(Object fromObject) {
                return fromObject != null;
            }
        });

        final Binding b = dbc.bindValue(eProp.observe(c), master,
                new EMFUpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), modelToTarget);
        master.addValueChangeListener(new IValueChangeListener() {

            @Override
            public void handleValueChange(ValueChangeEvent event) {
                if (event.diff.getNewValue() == null)
                    b.updateModelToTarget();
            }
        });
    }
}

From source file:at.bestsolution.e4.addressbook.ui.swt.AddressForm.java

License:Open Source License

public void bindControls(EditingDomain editingDomain, DataBindingContext dbc, IObservableValue master) {
    this.dbc = dbc;
    this.master = master;
    this.editingDomain = editingDomain;

    IWidgetValueProperty tProp = WidgetProperties.text(SWT.Modify);
    IViewerValueProperty sProp = ViewerProperties.singleSelection();

    {//  w w w.j  av  a2 s.c  om
        IEMFValueProperty mProp = EMFEditProperties.value(editingDomain,
                AddressbookPackage.Literals.ADDRESS__STREET);
        dbc.bindValue(tProp.observeDelayed(PersonForm.DELAY, w_street), mProp.observeDetail(master));
    }

    {
        IEMFValueProperty mProp = EMFEditProperties.value(editingDomain,
                AddressbookPackage.Literals.ADDRESS__ZIP);
        dbc.bindValue(tProp.observeDelayed(PersonForm.DELAY, w_zip), mProp.observeDetail(master));
    }

    {
        IEMFValueProperty mProp = EMFEditProperties.value(editingDomain,
                AddressbookPackage.Literals.ADDRESS__CITY);
        dbc.bindValue(tProp.observeDelayed(PersonForm.DELAY, w_city), mProp.observeDetail(master));
    }

    {
        IEMFValueProperty mProp = EMFEditProperties.value(editingDomain,
                FeaturePath.fromList(AddressbookPackage.Literals.ADDRESS__COUNTRY));
        dbc.bindValue(sProp.observe(v_country), mProp.observeDetail(master));
    }

    bindState();

    IWidgetValueProperty eProp = WidgetProperties.enabled();

    for (Control c : getChildren()) {
        EMFUpdateValueStrategy modelToTarget = new EMFUpdateValueStrategy();
        modelToTarget.setConverter(new Converter(Address.class, boolean.class) {

            @Override
            public Object convert(Object fromObject) {
                return fromObject != null;
            }
        });

        final Binding b = dbc.bindValue(eProp.observe(c), master,
                new EMFUpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), modelToTarget);
        master.addValueChangeListener(new IValueChangeListener() {

            @Override
            public void handleValueChange(ValueChangeEvent event) {
                if (event.diff.getNewValue() == null)
                    b.updateModelToTarget();
            }
        });
    }
}

From source file:at.bestsolution.e4.addressbook.ui.swt.AddressForm.java

License:Open Source License

private void bindState() {
    IViewerValueProperty sProp = ViewerProperties.singleSelection();
    IEMFValueProperty prop;// www. ja  v a 2 s  . c om

    if (editingDomain == null) {
        prop = EMFProperties.value(AddressbookPackage.Literals.ADDRESS__FEDERAL_STATE);
    } else {
        prop = EMFEditProperties.value(editingDomain, AddressbookPackage.Literals.ADDRESS__FEDERAL_STATE);
    }
    stateBinding = dbc.bindValue(sProp.observe(v_state), prop.observeDetail(master));
}

From source file:at.bestsolution.e4.addressbook.ui.swt.PersonList.java

License:Open Source License

@PostConstruct
void init(AddressBook book, final PersonSelectionPublisher personService) {
    {/*from ww  w.  j  a va  2s  .  c  o m*/
        IEMFListProperty mProp = EMFProperties.list(AddressbookPackage.Literals.ADDRESS_BOOK__PERSONS);

        final TableViewer viewer = new TableViewer(w_list);
        ObservableListContentProvider cp = new ObservableListContentProvider();
        viewer.setContentProvider(cp);

        IObservableMap[] map = {
                EMFProperties.value(AddressbookPackage.Literals.PERSON__FIRSTNAME)
                        .observeDetail(cp.getKnownElements()),
                EMFProperties.value(AddressbookPackage.Literals.PERSON__LASTNAME)
                        .observeDetail(cp.getKnownElements()) };

        viewer.setLabelProvider(new ObservableMapLabelProvider(map) {
            @Override
            public String getColumnText(Object element, int columnIndex) {
                Person object = (Person) element;
                return object == null ? "" : object.getFirstname() + " " + object.getLastname();
            }
        });

        final IObservableList list = mProp.observe(book);
        viewer.setInput(list);

        list.addListChangeListener(new IListChangeListener() {

            @Override
            public void handleListChange(ListChangeEvent event) {
                event.diff.accept(new ListDiffVisitor() {

                    @Override
                    public void handleRemove(int index, Object element) {
                        if (list.size() == 0) {
                            return;
                        }
                        if (list.size() > index - 1 && viewer.getSelection().isEmpty()) {
                            if (index - 1 >= 0) {
                                index--;
                            } else {
                                index = 0;
                            }
                            viewer.setSelection(new StructuredSelection(list.get(index)));
                        }
                    }

                    @Override
                    public void handleAdd(int index, Object element) {
                        viewer.setSelection(new StructuredSelection(element));
                    }
                });
            }
        });

        ViewerProperties.singleSelection().observe(viewer).addValueChangeListener(new IValueChangeListener() {

            @Override
            public void handleValueChange(ValueChangeEvent event) {
                personService.setPerson((Person) event.diff.getNewValue());
            }
        });
        if (list.size() > 0) {
            viewer.setSelection(new StructuredSelection(list.get(0)));
        }
    }
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.wizards.FXGraphWizardPage.java

License:Open Source License

@Override
protected void createFields(Composite parent, DataBindingContext dbc) {
    {//from w ww. j  av a 2s . c  o m
        Label l = new Label(parent, SWT.NONE);
        l.setText("Root Element");

        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();
            }
        });
        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("Browse ...");
        button.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                IType type = findContainerType();
                if (type != null) {
                    customSelection = type;
                    viewer.setInput(getTypes());
                    viewer.setSelection(new StructuredSelection(type));
                }
            }
        });

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

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

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

    {
        Label l = new Label(parent, SWT.NONE);
        l.setText("Dynamic Root (fx:root)");

        Button b = new Button(parent, SWT.CHECK);
        dbc.bindValue(WidgetProperties.selection().observe(b),
                BeanProperties.value("dynamic").observe(getClazz()));
    }
}

From source file:at.bestsolution.efxclipse.tooling.fxml.wizards.FXMLWizardPage.java

License:Open Source License

@Override
protected void createFields(Composite parent, DataBindingContext dbc) {
    {//from ww  w  .ja v a  2  s. co m
        Label l = new Label(parent, SWT.NONE);
        l.setText("Root Element");

        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();
            }
        });
        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("Browse ...");
        button.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                IType type = findContainerType();
                if (type != null) {
                    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())) {
                    viewer.setInput(getTypes());
                }
            }
        });
        dbc.bindValue(ViewerProperties.singleSelection().observe(viewer),
                BeanProperties.value("rootElement").observe(getClazz()));

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

    {
        Label l = new Label(parent, SWT.NONE);
        l.setText("Dynamic Root (fx:root)");

        Button b = new Button(parent, SWT.CHECK);
        dbc.bindValue(WidgetProperties.selection().observe(b),
                BeanProperties.value("fxRoot").observe(getClazz()));
    }
}

From source file:at.bestsolution.efxclipse.tooling.jdt.ui.internal.editors.AddIconDialog.java

License:Open Source License

@Override
protected Control createDialogContent(final Composite parent) {
    o = ParametersFactory.eINSTANCE.createIcon();
    Composite area = new Composite(parent, SWT.NONE);
    area.setLayout(new GridLayout(1, false));
    area.setLayoutData(new GridData(GridData.FILL_BOTH));

    getShell().setText("Add icon");
    setTitle("Add icon");
    setMessage("Enter informations about the icon to add");

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

    IViewerValueProperty selProp = ViewerProperties.singleSelection();
    IWidgetValueProperty tProp = WidgetProperties.text(SWT.Modify);

    {/*from  ww w.  j av  a2s.  c  o  m*/
        Label l = new Label(container, SWT.NONE);
        l.setText("Kind:");

        ComboViewer v = new ComboViewer(container, SWT.READ_ONLY);
        v.setLabelProvider(new LabelProvider());
        v.setContentProvider(ArrayContentProvider.getInstance());
        v.setInput(IconType.VALUES);
        IEMFValueProperty prop = EMFEditProperties.value(editingDomain, ICON__KIND);
        dbContext.bindValue(selProp.observe(v), prop.observe(o),
                new EMFUpdateValueStrategy(EMFUpdateValueStrategy.POLICY_ON_REQUEST),
                new EMFUpdateValueStrategy());
    }

    {
        Label l = new Label(container, SWT.NONE);
        l.setText("URL*:");

        tUrl = new Text(container, SWT.BORDER);
        tUrl.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        IEMFValueProperty prop = EMFEditProperties.value(editingDomain, ICON__HREF);
        dbContext.bindValue(tProp.observeDelayed(DELAY, tUrl), prop.observe(o),
                new EMFUpdateValueStrategy(EMFUpdateValueStrategy.POLICY_ON_REQUEST),
                new EMFUpdateValueStrategy());
    }

    {
        Label l = new Label(container, SWT.NONE);
        l.setText("Depth:");

        ComboViewer v = new ComboViewer(container, SWT.READ_ONLY);
        v.setLabelProvider(new LabelProvider());
        v.setContentProvider(ArrayContentProvider.getInstance());
        // TODO not hard coded here
        v.setInput(new String[] { "8", "24", "32" });
        IEMFValueProperty prop = EMFEditProperties.value(editingDomain, ICON__DEPTH);
        dbContext.bindValue(selProp.observe(v), prop.observe(o),
                new EMFUpdateValueStrategy(EMFUpdateValueStrategy.POLICY_ON_REQUEST),
                new EMFUpdateValueStrategy());
    }

    {
        Label l = new Label(container, SWT.NONE);
        l.setText("Width:");

        tWidth = new Text(container, SWT.BORDER);
        tWidth.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        IEMFValueProperty prop = EMFEditProperties.value(editingDomain, ICON__WIDTH);
        dbContext.bindValue(tProp.observeDelayed(DELAY, tWidth), prop.observe(o),
                new EMFUpdateValueStrategy(EMFUpdateValueStrategy.POLICY_ON_REQUEST),
                new EMFUpdateValueStrategy());
    }

    {
        Label l = new Label(container, SWT.NONE);
        l.setText("Height:");

        tHeight = new Text(container, SWT.BORDER);
        tHeight.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        IEMFValueProperty prop = EMFEditProperties.value(editingDomain, ICON__HEIGHT);
        dbContext.bindValue(tProp.observeDelayed(DELAY, tHeight), prop.observe(o),
                new EMFUpdateValueStrategy(EMFUpdateValueStrategy.POLICY_ON_REQUEST),
                new EMFUpdateValueStrategy());
    }

    return area;
}

From source file:at.bestsolution.efxclipse.tooling.jdt.ui.internal.editors.AddSplashDialog.java

License:Open Source License

@Override
protected Control createDialogContent(final Composite parent) {
    o = ParametersFactory.eINSTANCE.createSplash();
    Composite area = new Composite(parent, SWT.NONE);
    area.setLayout(new GridLayout(1, false));
    area.setLayoutData(new GridData(GridData.FILL_BOTH));

    getShell().setText("Add splash icon");
    setTitle("Add splash");
    setMessage("Enter informations about the splash to add");

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

    IViewerValueProperty selProp = ViewerProperties.singleSelection();
    IWidgetValueProperty tProp = WidgetProperties.text(SWT.Modify);

    {/*from w  ww  . j  a v  a 2s.  c om*/
        Label l = new Label(container, SWT.NONE);
        l.setText("Mode*:");

        ComboViewer v = new ComboViewer(container, SWT.READ_ONLY);
        v.setLabelProvider(new LabelProvider());
        v.setContentProvider(ArrayContentProvider.getInstance());
        v.setInput(SplashMode.values());
        IEMFValueProperty prop = EMFEditProperties.value(editingDomain, SPLASH__MODE);
        dbContext.bindValue(selProp.observe(v), prop.observe(o),
                new EMFUpdateValueStrategy(EMFUpdateValueStrategy.POLICY_ON_REQUEST),
                new EMFUpdateValueStrategy());
    }

    {
        Label l = new Label(container, SWT.NONE);
        l.setText("URL*:");

        tUrl = new Text(container, SWT.BORDER);
        tUrl.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        IEMFValueProperty prop = EMFEditProperties.value(editingDomain, SPLASH__HREF);
        dbContext.bindValue(tProp.observeDelayed(DELAY, tUrl), prop.observe(o),
                new EMFUpdateValueStrategy(EMFUpdateValueStrategy.POLICY_ON_REQUEST),
                new EMFUpdateValueStrategy());
    }
    return area;
}

From source file:at.bestsolution.translate.view.TranslatorComponent.java

License:Open Source License

private void createUI(Composite parent) {
    GridLayout layout = new GridLayout(2, false);
    parent.setLayout(layout);// w  ww  .ja  v  a2s  .  c o  m

    Label l = new Label(parent, SWT.NONE);
    l.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, true, false, 2, 1));
    l.setText("Translator");

    l = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
    l.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, true, false, 2, 1));

    l = new Label(parent, SWT.NONE);
    l.setText("Term");

    term = new Text(parent, SWT.BORDER);
    term.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    l = new Label(parent, SWT.NONE);
    l.setText("Translator");

    translator = new ComboViewer(parent);
    translator.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    translator.setContentProvider(new ObservableListContentProvider());
    translator.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            return ((ITranslator) element).getName();
        }
    });

    l = new Label(parent, SWT.NONE);
    l.setText("Source-Language");

    final ComboViewer sourceLanguage = new ComboViewer(parent);
    sourceLanguage.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    sourceLanguage.setContentProvider(new ObservableListContentProvider());
    sourceLanguage.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            return ((TranslationLanguage) element).name;
        }
    });

    IListProperty fromProp = PojoProperties.list("languages");
    IValueProperty selectionProp = ViewerProperties.singleSelection();

    IObservableList input = fromProp.observeDetail(selectionProp.observe(translator));
    sourceLanguage.setInput(input);

    l = new Label(parent, SWT.NONE);
    l.setText("Target-Language");

    final ComboViewer targetLanguage = new ComboViewer(parent);
    targetLanguage.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    targetLanguage.setContentProvider(new ObservableListContentProvider());
    targetLanguage.setLabelProvider(new LabelProvider());

    IListProperty targetsProp = PojoProperties.list("targets");

    input = targetsProp.observeDetail(selectionProp.observe(sourceLanguage));
    targetLanguage.setInput(input);

    Button b = new Button(parent, SWT.PUSH);
    b.setText("Translate");
    b.setLayoutData(new GridData(GridData.END, GridData.CENTER, false, false, 2, 1));

    l = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
    l.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1));

    l = new Label(parent, SWT.NONE);
    l.setText("Translation");

    final Label translation = new Label(parent, SWT.NONE);
    translation.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    b.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection transSelection = (IStructuredSelection) translator.getSelection();
            IStructuredSelection sourceSelection = (IStructuredSelection) sourceLanguage.getSelection();
            IStructuredSelection targetSelection = (IStructuredSelection) targetLanguage.getSelection();

            if (!transSelection.isEmpty() && !sourceSelection.isEmpty()) {
                try {
                    String trans = ((ITranslator) transSelection.getFirstElement()).translate(
                            ((TranslationLanguage) sourceSelection.getFirstElement()).name,
                            (String) targetSelection.getFirstElement(), term.getText());
                    translation.setText(trans);
                } catch (InvocationTargetException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        }
    });
}