Example usage for org.eclipse.jface.databinding.viewers ObservableListContentProvider getRealizedElements

List of usage examples for org.eclipse.jface.databinding.viewers ObservableListContentProvider getRealizedElements

Introduction

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

Prototype

public IObservableSet<E> getRealizedElements() 

Source Link

Document

Returns the set of known elements which have been realized in the 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 ww  w  .j av a2 s.c o  m*/
        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:org.eclipse.scada.ui.chart.view.ChartControllerView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    this.dbc = new DataBindingContext();

    parent.setLayout(new FillLayout());

    final Composite wrapper = new Composite(parent, SWT.NONE);
    wrapper.setLayout(new FillLayout());

    this.viewer = new TableViewer(wrapper, SWT.FULL_SELECTION);
    this.viewer.getTable().setHeaderVisible(true);

    final TableLayout layout = new TableLayout();
    this.viewer.getTable().setLayout(layout);

    final ObservableListContentProvider provider = new ObservableListContentProvider();
    this.viewer.setContentProvider(provider);

    {/*from w ww. j  av a  2 s  . co  m*/
        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("Input");
        layout.addColumnData(new ColumnWeightData(100));
        col.setLabelProvider(new ObservableMapCellLabelProvider(
                BeansObservables.observeMap(provider.getRealizedElements(), SeriesInformation.PROP_LABEL)) {

            @Override
            public void update(final ViewerCell cell) {
                cell.setText(((ChartInput) cell.getElement()).getLabel());
            }
        });
    }
    {
        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("Preview");
        col.getColumn().setAlignment(SWT.CENTER);
        layout.addColumnData(new ColumnPixelData(50));
        col.setLabelProvider(new ObservableMapCellLabelProvider(
                BeansObservables.observeMap(provider.getRealizedElements(), ChartInput.PROP_PREVIEW)) {

            @Override
            public void update(final ViewerCell cell) {
                final Rectangle rect = cell.getImageBounds();

                if (rect != null && rect.width > 0 && rect.height > 0) {
                    cell.setImage(((ChartInput) cell.getElement()).getPreview(rect.width, rect.height));
                } else {
                    cell.setImage(((ChartInput) cell.getElement()).getPreview(50, 20));
                }
            }
        });
    }
    {
        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("State");
        layout.addColumnData(new ColumnWeightData(100));
        col.setLabelProvider(new ObservableMapCellLabelProvider(
                BeansObservables.observeMap(provider.getRealizedElements(), ChartInput.PROP_STATE)) {

            @Override
            public void update(final ViewerCell cell) {
                cell.setText(((ChartInput) cell.getElement()).getState());
            }
        });
    }
    {
        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("Selected Timestamp");
        layout.addColumnData(new ColumnWeightData(100));
        col.setLabelProvider(new ObservableMapCellLabelProvider(BeansObservables
                .observeMap(provider.getRealizedElements(), SeriesInformation.PROP_SELECTED_TIMESTAMP)) {

            @Override
            public void update(final ViewerCell cell) {
                final Calendar timestamp = ((ChartInput) cell.getElement()).getSelectedTimestamp();
                cell.setText(timestamp == null ? null
                        : DateFormat.getDateTimeInstance().format(timestamp.getTime()));
            }
        });
    }
    {
        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("Selected Value");
        layout.addColumnData(new ColumnWeightData(100));
        col.setLabelProvider(new ObservableMapCellLabelProvider(BeansObservables
                .observeMap(provider.getRealizedElements(), SeriesInformation.PROP_SELECTED_VALUE)) {

            @Override
            public void update(final ViewerCell cell) {
                final Double value = ((ChartInput) cell.getElement()).getSelectedValue();
                if (value == null) {
                    cell.setText("<none>");
                } else {
                    cell.setText(NumberFormat.getNumberInstance().format(value));
                }
            }
        });
    }
    {
        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("Selected Quality");
        layout.addColumnData(new ColumnWeightData(100));
        col.setLabelProvider(new ObservableMapCellLabelProvider(BeansObservables
                .observeMap(provider.getRealizedElements(), SeriesInformation.PROP_SELECTED_QUALITY)) {

            @Override
            public void update(final ViewerCell cell) {
                final Double quality = ((ChartInput) cell.getElement()).getSelectedQuality();
                if (quality == null) {
                    cell.setText(null);
                } else {
                    cell.setText(NumberFormat.getPercentInstance().format(quality));
                }
            }
        });
    }

    getSite().setSelectionProvider(this.viewer);

    contribueTo(getViewSite());

    attachSelectionService();
}

From source file:org.openscada.ui.chart.view.ChartControllerView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    this.dbc = new DataBindingContext();

    parent.setLayout(new FillLayout());

    final Composite wrapper = new Composite(parent, SWT.NONE);

    this.viewer = new TableViewer(wrapper, SWT.FULL_SELECTION);
    this.viewer.getTable().setHeaderVisible(true);

    final TableColumnLayout layout = new TableColumnLayout();
    wrapper.setLayout(layout);/*from w  w w  .j  a  v a2 s. c o  m*/

    final ObservableListContentProvider provider = new ObservableListContentProvider();
    this.viewer.setContentProvider(provider);

    {
        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("Input");
        layout.setColumnData(col.getColumn(), new ColumnWeightData(100));
        col.setLabelProvider(new ObservableMapCellLabelProvider(
                BeansObservables.observeMap(provider.getRealizedElements(), "label")) {

            @Override
            public void update(final ViewerCell cell) {
                cell.setText(((ChartInput) cell.getElement()).getLabel());
            }
        });
    }
    {
        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("Preview");
        col.getColumn().setAlignment(SWT.CENTER);
        layout.setColumnData(col.getColumn(), new ColumnPixelData(50));
        col.setLabelProvider(new ObservableMapCellLabelProvider(
                BeansObservables.observeMap(provider.getRealizedElements(), ChartInput.PROP_PREVIEW)) {

            @Override
            public void update(final ViewerCell cell) {
                final Rectangle rect = cell.getImageBounds();

                if (rect != null && rect.width > 0 && rect.height > 0) {
                    cell.setImage(((ChartInput) cell.getElement()).getPreview(rect.width, rect.height));
                } else {
                    cell.setImage(((ChartInput) cell.getElement()).getPreview(50, 20));
                }
            }
        });
    }
    {
        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("State");
        layout.setColumnData(col.getColumn(), new ColumnWeightData(100));
        col.setLabelProvider(new ObservableMapCellLabelProvider(
                BeansObservables.observeMap(provider.getRealizedElements(), ChartInput.PROP_STATE)) {

            @Override
            public void update(final ViewerCell cell) {
                cell.setText(((ChartInput) cell.getElement()).getState());
            }
        });
    }
    {
        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("Selected Timestamp");
        layout.setColumnData(col.getColumn(), new ColumnWeightData(100));
        col.setLabelProvider(new ObservableMapCellLabelProvider(BeansObservables
                .observeMap(provider.getRealizedElements(), ChartInput.PROP_SELECTED_TIMESTAMP)) {

            @Override
            public void update(final ViewerCell cell) {
                final Date timestamp = ((ChartInput) cell.getElement()).getSelectedTimestamp();
                cell.setText(timestamp == null ? null : DateFormat.getDateTimeInstance().format(timestamp));
            }
        });
    }
    {
        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("Selected Value");
        layout.setColumnData(col.getColumn(), new ColumnWeightData(100));
        col.setLabelProvider(new ObservableMapCellLabelProvider(
                BeansObservables.observeMap(provider.getRealizedElements(), ChartInput.PROP_SELECTED_VALUE)) {

            @Override
            public void update(final ViewerCell cell) {
                cell.setText(((ChartInput) cell.getElement()).getSelectedValue());
            }
        });
    }
    {
        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("Selected Quality");
        layout.setColumnData(col.getColumn(), new ColumnWeightData(100));
        col.setLabelProvider(new ObservableMapCellLabelProvider(
                BeansObservables.observeMap(provider.getRealizedElements(), ChartInput.PROP_SELECTED_QUALITY)) {

            @Override
            public void update(final ViewerCell cell) {
                cell.setText(((ChartInput) cell.getElement()).getSelectedQuality());
            }
        });
    }

    getSite().setSelectionProvider(this.viewer);

    contribueTo(getViewSite());

    attachSelectionService();
}