List of usage examples for org.eclipse.jface.databinding.viewers ObservableListContentProvider getRealizedElements
public IObservableSet<E> getRealizedElements()
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(); }