Example usage for org.eclipse.jface.databinding.viewers ViewersObservables observeCheckedElements

List of usage examples for org.eclipse.jface.databinding.viewers ViewersObservables observeCheckedElements

Introduction

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

Prototype

@Deprecated
public static IViewerObservableSet observeCheckedElements(CheckboxTreeViewer viewer, Object elementType) 

Source Link

Document

Returns an observable set that tracks the checked elements of the given viewer.

Usage

From source file:ccw.preferences.HoverPreferencePage.java

License:Open Source License

protected DataBindingContext initDataBindings() {

    final DataBindingContext context = new DataBindingContext();

    // Page Support
    PreferencePageSupport.create(this, context);

    // ///////////////////////////
    // Label/Content providers \\
    // ///////////////////////////

    ObservableListContentProvider contentProvider = new ObservableListContentProvider();

    IObservableMap[] columnsObservables = Properties.observeEach(contentProvider.getKnownElements(),
            HoverViewModel.hoverDisplayDomain);

    ObservableMapLabelProvider labelProvider = new ObservableMapLabelProvider(columnsObservables);

    fHoverTableViewer.setLabelProvider(labelProvider);
    fHoverTableViewer.setContentProvider(contentProvider);
    fHoverTableViewer.setInput(fViewModel.hoverObservableList);

    //////////////////////////
    // Selected hover logic \\
    //////////////////////////

    final IObservableValue selectedHover = ViewersObservables.observeSingleSelection(fHoverTableViewer);

    final IObservableValue isHoverSelected = new ComputedValue(Boolean.TYPE) {
        @Override/*from   www  .ja  v a2s.c  om*/
        protected Object calculate() {
            return Boolean.valueOf(selectedHover.getValue() != null);
        }
    };

    context.bindValue(WidgetProperties.enabled().observe(fGrpSummary), isHoverSelected);
    context.bindValue(WidgetProperties.enabled().observe(fSummaryHoverModifierStringText), isHoverSelected);

    final IObservableValue stateMaskOfSelected = HoverViewModel.hoverStateMask.observeDetail(selectedHover);
    final IObservableValue modifierStringOfSelected = HoverViewModel.hoverModifierString
            .observeDetail(selectedHover);

    final UpdateValueStrategy modifierStringStrategyConvert = new UpdateValueStrategy(
            UpdateValueStrategy.POLICY_CONVERT);
    modifierStringStrategyConvert.setConverter(new HoverViewModel.StateMaskToModifierConverter());

    final Binding stateMaskToModifierBinding = context.bindValue(modifierStringOfSelected, stateMaskOfSelected,
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), modifierStringStrategyConvert);

    if (!fViewModel.hoverObservableList.isEmpty()) {
        selectedHover.setValue(fViewModel.hoverObservableList.get(0));
    }

    //////////////////////
    // Validation logic \\
    //////////////////////

    MultiValidator validator = new MultiValidator() {

        @Override
        protected IStatus validate() {
            IStatus status = ValidationStatus.ok();

            if (isHoverSelected.getValue() == Boolean.TRUE) {
                status = fViewModel.stateMaskValidator.validate(stateMaskOfSelected.getValue());
            }

            if (status.isOK()) {
                Iterator<HoverDescriptor> it = fViewModel.checkedSet.iterator();
                while (it.hasNext()) {
                    int stateMask = it.next().getStateMask();
                    if (!fViewModel.isStateMaskUnique(stateMask)) {
                        status = fViewModel.stateMaskError(stateMask);
                    }
                }
            }
            return status;
        }
    };

    context.addValidationStatusProvider(validator);

    //////////////////////////
    // Checked hovers logic \\
    //////////////////////////

    // AR - because of some ordering issue problem, I am disabling the automatic
    // update from model to target of the checked hovers and...
    final UpdateSetStrategy checkedModelToTargetStrategy = new UpdateSetStrategy(
            UpdateValueStrategy.POLICY_ON_REQUEST);

    // AR - ... add an explicit binding that will be needed...
    final Binding checkedBindSet = context.bindSet(
            ViewersObservables.observeCheckedElements(fHoverTableViewer, HoverDescriptor.class),
            fViewModel.checkedSet, null, checkedModelToTargetStrategy);

    // AR - ...to manually trigger the update when new elements are added to the provider...
    IObservableSet realizedElements = contentProvider.getRealizedElements();
    realizedElements.addChangeListener(new IChangeListener() {
        @Override
        public void handleChange(ChangeEvent event) {
            checkedBindSet.updateModelToTarget();
        }
    });

    /////////////////
    // UI Bindings \\
    /////////////////

    EditingSupport modifierEditorSupport = ObservableValueEditingSupport.create(fHoverTableViewer, context,
            fHoverModifierStringTextCellEditor,
            CellEditorProperties.control().value(WidgetProperties.text(SWT.Modify)),
            HoverViewModel.hoverModifierString);

    fModifierTableViewerColumn.setEditingSupport(modifierEditorSupport);

    final UpdateValueStrategy statusMaskToModifierStrategy = new UpdateValueStrategy();
    statusMaskToModifierStrategy.setConverter(new HoverViewModel.StateMaskToModifierConverter());

    final UpdateValueStrategy modifierToStatusMaskStrategy = new UpdateValueStrategy();
    modifierToStatusMaskStrategy.setConverter(new HoverViewModel.ModifierToStateMaskConverter());

    context.bindValue(WidgetProperties.text().observe(fSummaryHoverNameLabel),
            HoverViewModel.hoverLabel.observeDetail(selectedHover));

    context.bindValue(WidgetProperties.text().observe(fSummaryHoverDescriptionLabel),
            HoverViewModel.hoverDescription.observeDetail(selectedHover));

    context.bindValue(WidgetProperties.text().observe(fSummaryHoverModifierStringText),
            HoverViewModel.hoverStateMask.observeDetail(selectedHover), modifierToStatusMaskStrategy,
            statusMaskToModifierStrategy);

    KeyListener stateMaskKeyListener = new KeyListener() {
        public void keyPressed(KeyEvent e) {

            boolean isPressedKeyModifier = e.keyCode > 0 && e.character == 0
                    && (e.keyCode & SWT.MODIFIER_MASK) != 0;
            boolean isStateKeyModifier = e.stateMask > 0 && (e.stateMask & SWT.MODIFIER_MASK) != 0;

            int mask = SWT.NONE;
            if (isPressedKeyModifier) {
                mask = e.keyCode;

                if (isStateKeyModifier) {
                    mask |= e.stateMask;
                }

                stateMaskOfSelected.setValue(mask);
                stateMaskToModifierBinding.updateModelToTarget();
            }
        }

        public void keyReleased(KeyEvent e) {
            if (e.keyCode == SWT.BS || e.keyCode == SWT.DEL) {
                stateMaskOfSelected.setValue(SWT.NONE);
                stateMaskToModifierBinding.updateModelToTarget();
            }
        }
    };

    fHoverModifierStringTextCellEditor.getControl().addKeyListener(stateMaskKeyListener);
    fSummaryHoverModifierStringText.addKeyListener(stateMaskKeyListener);

    return context;
}

From source file:ch.acanda.eclipse.pmd.properties.RuleSetConfigurationTable.java

License:Open Source License

private void initDataBindings() {
    final DataBindingContext bindingContext = new DataBindingContext();
    ////from   w w w  .  j av a2  s  . com
    final ObservableListContentProvider listContentProvider = new ObservableListContentProvider();
    tableViewer.setContentProvider(listContentProvider);
    //
    final IObservableList ruleSetsObserveList = BeansObservables.observeList(Realm.getDefault(), model,
            "ruleSets");
    tableViewer.setInput(ruleSetsObserveList);
    //
    final IObservableValue tableObserveEnabledObserveWidget = SWTObservables.observeEnabled(table);
    final IObservableValue modelPMDEnabledObserveValue = BeansObservables.observeValue(model, "PMDEnabled");
    bindingContext.bindValue(tableObserveEnabledObserveWidget, modelPMDEnabledObserveValue, null, null);
    //
    final IObservableList tableViewerObserveMultiSelection = ViewersObservables
            .observeMultiSelection(tableViewer);
    final IObservableList selectedRuleSetsObserveList = BeansObservables.observeList(Realm.getDefault(), model,
            "selectedRuleSets");
    bindingContext.bindList(tableViewerObserveMultiSelection, selectedRuleSetsObserveList, null, null);
    //
    final IObservableSet tableViewerObserveCheckedElements = ViewersObservables
            .observeCheckedElements(tableViewer, RuleSetViewModel.class);
    final IObservableSet activeConfigurationsObserveSet = BeansObservables.observeSet(Realm.getDefault(), model,
            "activeRuleSets");
    bindingContext.bindSet(tableViewerObserveCheckedElements, activeConfigurationsObserveSet, null, null);
}

From source file:com.htmlhifive.tools.jslint.view.TargetStructureComposite.java

License:Apache License

/**
 * ???.//  w w w .  jav  a  2s .  c  o m
 */
private void initialDataBinding() {

    context = new DataBindingContext();

    // ?????.
    IObservableSet obsCheckedElemInternalLibTableViewer = ViewersObservables
            .observeCheckedElements(tableViewerInternalLib, String.class);
    IObservableSet obsCheckedInternalLibElemModel = BeansObservables.observeSet(model,
            "checkedInternalLibElement");
    context.bindSet(obsCheckedElemInternalLibTableViewer, obsCheckedInternalLibElemModel, null, null);

    // ?????.
    IObservableSet obsCheckedElemExternalLibTableViewer = ViewersObservables
            .observeCheckedElements(tableViewerExternalLib, String.class);
    IObservableSet obsCheckedExternalLibElemModel = BeansObservables.observeSet(model,
            "checkedExternalLibElement");
    context.bindSet(obsCheckedElemExternalLibTableViewer, obsCheckedExternalLibElemModel, null, null);

}

From source file:de.walware.ecommons.ui.dialogs.AbstractCheckboxSelectionDialog.java

License:Open Source License

@Override
protected void addBindings(final DataBindingSupport db) {
    db.getContext().bindSet(ViewersObservables.observeCheckedElements(fViewer, null), fCheckedValue);
}

From source file:de.walware.statet.r.internal.console.ui.launching.RConsoleOptionsTab.java

License:Open Source License

@Override
protected void addBindings(final DataBindingContext dbc, final Realm realm) {
    fPinValue = new WritableValue(realm, Boolean.class);
    dbc.bindValue(SWTObservables.observeSelection(fPinControl), fPinValue, null, null);

    fTrackingList = new WritableList(realm, new ArrayList<Object>(), TrackingConfiguration.class);
    fTrackingTable.setContentProvider(new ObservableListContentProvider());
    fTrackingTable.setInput(fTrackingList);

    fStartupSnippetValue = new WritableValue(realm, String.class);
    dbc.bindValue(new SnippetEditorObservable(realm, fStartupSnippetEditor, SWT.Modify), fStartupSnippetValue,
            null, null);/*w  ww . j a  va  2 s . co  m*/

    fRHelpByStatetValue = new WritableValue(realm, Boolean.class);
    fRGraphicsByStatetValue = new WritableValue(realm, Boolean.class);
    fRDbgExtValue = new WritableValue(realm, Boolean.class);
    dbc.bindValue(SWTObservables.observeSelection(fRHelpByStatetControl), fRHelpByStatetValue, null, null);
    dbc.bindValue(SWTObservables.observeSelection(fRGraphicsByStatetControl), fRGraphicsByStatetValue, null,
            null);
    dbc.bindValue(SWTObservables.observeSelection(fRDbgExtControl), fRDbgExtValue, null, null);

    fObjectDBEnabledValue = new WritableValue(realm, Boolean.class);
    fObjectDBAutoEnabledValue = new WritableValue(realm, Boolean.class);
    fObjectDBListsChildrenValue = new WritableValue(realm, Integer.class);
    fObjectDBEnvsChildrenValue = new WritableValue(realm, Integer.class);
    final ISWTObservableValue dbObs = SWTObservables.observeSelection(fObjectDBEnabledControl);
    dbc.bindValue(dbObs, fObjectDBEnabledValue, null, null);
    dbc.bindValue(SWTObservables.observeSelection(fObjectDBAutoEnabledControl), fObjectDBAutoEnabledValue, null,
            null);
    dbc.bindValue(SWTObservables.observeText(fObjectDBListsChildrenControl, SWT.Modify),
            fObjectDBListsChildrenValue,
            new UpdateValueStrategy().setAfterGetValidator(new IntegerValidator(100, Integer.MAX_VALUE,
                    "Invalid max value for length of R lists to fetch (100-).")),
            null);
    dbc.bindValue(SWTObservables.observeText(fObjectDBEnvsChildrenControl, SWT.Modify),
            fObjectDBEnvsChildrenValue, new UpdateValueStrategy().setAfterGetValidator(new IntegerValidator(100,
                    Integer.MAX_VALUE, "Invalid max value for length of R environments to fetch (100-).")),
            null);

    dbc.bindValue(new SWTMultiEnabledObservable(realm, new Control[] { fObjectDBAutoEnabledControl,
            fObjectDBEnvsChildrenControl, fObjectDBListsChildrenControl, }, null), dbObs, null, null);

    fTrackingButtons.connectTo(fTrackingTable,
            new DataAdapter.ListAdapter<TrackingConfiguration>(fTrackingList, null) {
                @Override
                public boolean isDeleteAllowed(final Object element) {
                    return (super.isDeleteAllowed(element)
                            && ((TrackingConfiguration) element).getId().startsWith(CUSTOM_TRACKING_ID_PREFIX));
                }
            });

    fTrackingEnabledSet = new WritableSet(realm, new HashSet<Object>(), TrackingConfiguration.class);
    fTrackingButtons.setCheckedModel(fTrackingEnabledSet);
    dbc.bindSet(ViewersObservables.observeCheckedElements(fTrackingTable, TrackingConfiguration.class),
            fTrackingEnabledSet);
}

From source file:de.walware.statet.r.internal.ui.datafilterview.LevelClient.java

License:Open Source License

@Override
protected void addBindings(final DataBindingSupport db) {
    db.getContext().bindSet(ViewersObservables.observeCheckedElements(fValueListViewer, Object.class),
            fSelectedValues, new UpdateSetStrategy().setConverter(UI2RStoreConverter.INSTANCE),
            new UpdateSetStrategy().setConverter(RStore2UIConverter.INSTANCE));
}

From source file:de.walware.statet.r.internal.ui.datafilterview.TextClient.java

License:Open Source License

@Override
protected void addBindings(final DataBindingSupport db) {
    db.getContext().bindSet(ViewersObservables.observeCheckedElements(fValueListViewer, Object.class),
            fSelectedValueSet, new UpdateSetStrategy().setConverter(UI2RStoreConverter.INSTANCE),
            new UpdateSetStrategy().setConverter(RStore2UIConverter.INSTANCE));
}

From source file:de.walware.statet.r.internal.ui.pkgmanager.PkgTab.java

License:Open Source License

void addBinding(final DataBindingSupport db) {
    fFilterPrioritySet = new WritableSet(db.getRealm(), Collections.EMPTY_SET, String.class);
    db.getContext().bindSet(ViewersObservables.observeCheckedElements(fFilterPriorityTable, String.class),
            fFilterPrioritySet);/* ww  w  .j  a  v a2 s.c o  m*/
    new AutoCheckController(fFilterPriorityTable, fFilterPrioritySet);

    fFilterRViewsSet = new WritableSet(db.getRealm(), Collections.EMPTY_SET, IRView.class);
    db.getContext().bindSet(ViewersObservables.observeCheckedElements(fFilterRViewsTable, IRView.class),
            fFilterRViewsSet);
    new AutoCheckController(fFilterRViewsTable, fFilterRViewsSet);

    fFilterController = new TableFilterController(fPkgTable.viewer);

    fFilterController.addFilter(new InstalledFilter());
    { // Priority
        final SetElementFilter filter = new SetElementFilter() {
            @Override
            protected boolean select(final Collection<?> set, final Object element) {
                final String name = (String) element;
                if (Util.hasPkgPriority(fPkgSet.getAvailable(), name, set)) {
                    return true;
                }
                if (Util.hasPkgPriority(fPkgSet.getInstalled(), name, set)) {
                    return true;
                }
                return false;
            }
        };
        fFilterController.addFilter(filter);
        new ObservableSetBinding(fFilterController, fFilterPrioritySet, filter) {
            @Override
            protected java.util.Collection<?> getAll() {
                return fPkgSet.getPriorities();
            }
        };
    }
    { // Task Views
        final SetElementFilter filter = new SetElementFilter();
        fFilterController.addFilter(filter);
        new ObservableSetBinding(fFilterController, fFilterRViewsSet, filter) {
            @Override
            protected Collection<?> createFilterSet(final Collection<?> set) {
                final Set<String> pkgNames = new HashSet<String>(set.size() * 50);
                for (final IRView view : (Collection<? extends IRView>) set) {
                    pkgNames.addAll(view.getPkgList());
                }
                return pkgNames;
            }
        };
    }
    {
        final TextElementFilter filter = new TextElementFilter();
        fFilterController.addFilter(filter);
        new SearchTextBinding(fFilterText, fFilterController, filter);
    }

    fFilterController.addListener(new TableFilterController.Listener() {
        @Override
        public void inputUpdated(final boolean newInput) {
            if (newInput) {
                fSelectedPkgVersion = null;
                updateDetail();
            }
        }
    });

    fPkgTable.viewer.addPostSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            final List<?> list = ((IStructuredSelection) event.getSelection()).toList();
            doUpdateDetail(list.toArray(new String[list.size()]));
        }
    });

    fDetailTable.viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            final ITreeSelection treeSelection = (ITreeSelection) event.getSelection();
            final Object element = treeSelection.getFirstElement();
            updateDetailDetail((element instanceof IRPkgData) ? treeSelection.getPaths()[0] : null);
        }
    });
}

From source file:de.walware.statet.r.internal.ui.pkgmanager.RepoTab.java

License:Open Source License

void addBindings(final DataBindingSupport db) {
    fSelectedRepos = new WritableSet(db.getRealm(), Collections.EMPTY_SET, RRepo.class);
    fSelectedCRAN = new WritableValue(db.getRealm(), null, RRepo.class);
    fSelectedBioC = new WritableValue(db.getRealm(), null, RRepo.class);

    db.getContext().bindSet(ViewersObservables.observeCheckedElements(fRepoTable, RRepo.class), fSelectedRepos);
    db.getContext().bindValue(ViewersObservables.observeSingleSelection(fCRANTable), fSelectedCRAN);
    db.getContext().bindValue(ViewersObservables.observeSingleSelection(fBioCTable), fSelectedBioC);

    fSelectedRepos.addChangeListener(fDialog);
    fSelectedCRAN.addChangeListener(fDialog);
    fSelectedBioC.addChangeListener(fDialog);
}

From source file:gov.redhawk.ide.codegen.frontend.ui.wizard.SelectFrontEndTunerPropsDialog.java

License:Open Source License

private void createTable(Composite client) {
    theTableViewer = FrontEndDeviceUIUtils.INSTANCE.getCheckboxTableViewer(client);
    theTableViewer.setInput(this.input);
    context.bindSet(ViewersObservables.observeCheckedElements(theTableViewer, FrontEndProp.class), this.output);
}