List of usage examples for org.eclipse.jface.databinding.viewers ObservableListContentProvider getKnownElements
public IObservableSet<E> getKnownElements()
From source file:era.foss.typeeditor.common.Ui.java
License:Open Source License
/** * Create a column with EMF databinding for a table viewer * /*w w w.j a va 2 s . c om*/ * <li>In case the top level structural feature is a reference display a combo box</li> <li>In case the top level * structural feature is a containment reference create element if it does not exist</li> <li>In case the structural * feature is a boolean show a checkbox</li> <li>Otherwise show a simple text field</li>. * * @param column the column * @param eStructuralFeatureList list to create a feature path from * @param refObservedObject the ref observed object * @param refEStructuralFeatureList the ref e structural feature list */ public void bindColumn(TableViewerColumn column, EStructuralFeature[] eStructuralFeatureList, EObject refObservedObject, EStructuralFeature[] refEStructuralFeatureList) { TableViewer tableViewer = (TableViewer) column.getViewer(); ObservableListContentProvider cp = (ObservableListContentProvider) tableViewer.getContentProvider(); assert (cp != null); // get the top level structural feature EStructuralFeature topStructuralFeature = eStructuralFeatureList[0]; // set label provider IValueProperty elementProperty = EMFEditProperties.value(editingDomain, FeaturePath.fromList(eStructuralFeatureList)); IObservableMap attributeMap = elementProperty.observeDetail(cp.getKnownElements()); column.setLabelProvider(new ObservableMapCellLabelProvider(attributeMap)); EditingSupport editingSupport = null; // Show combo box for references if (refObservedObject != null && refEStructuralFeatureList != null) { // Combo box: Create combo box to select choices for the reference ComboBoxViewerCellEditor combo = new ComboBoxViewerCellEditorSp((Composite) tableViewer.getControl(), SWT.READ_ONLY); // Combo box: Set Content Provider ObservableListContentProvider comboContentProvider = new ObservableListContentProvider(); combo.setContentProvider(comboContentProvider); IObservableMap comboAttributeMap = EMFProperties .value(eStructuralFeatureList[eStructuralFeatureList.length - 1]) .observeDetail(comboContentProvider.getKnownElements()); combo.setLabelProvider(new ObservableMapLabelProvider(comboAttributeMap)); // Combo box: set input IEMFListProperty dataTypeDefinitions = EMFProperties .list(FeaturePath.fromList(refEStructuralFeatureList)); combo.setInput(dataTypeDefinitions.observe(refObservedObject)); // Set editing support of table cell IValueProperty editorElementProperty = EMFEditProperties.value(editingDomain, topStructuralFeature); IValueProperty cellEditorProperty = ViewerProperties.singleSelection(); editingSupport = ObservableValueEditingSupport.create(tableViewer, dataBindContext, combo, cellEditorProperty, editorElementProperty); } // Simple text else { IValueProperty cellEditorProperty = CellEditorProperties.control() .value(WidgetProperties.text(SWT.Modify)); editingSupport = ObservableValueEditingSupport.create(tableViewer, dataBindContext, new TextCellEditor(tableViewer.getTable()), cellEditorProperty, elementProperty); } column.setEditingSupport(editingSupport); }
From source file:era.foss.typeeditor.spectype.AttributeDefinitionDetailViewer.java
License:Open Source License
/** * Show UI elements for DatatypeDefintionEnumeration *///from w w w . jav a2 s .co m private void createDetailsEnumeration() { final AttributeDefinitionEnumeration attributeDefinitionEnum = (AttributeDefinitionEnumeration) master .getValue(); // create label for multiValued property Label label = new Label(detailComposite, SWT.NONE); label.setText(Ui.getUiName(ErfPackage.Literals.ATTRIBUTE_DEFINITION_ENUMERATION__MULTI_VALUED)); label.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false)); // create checkbox for multiValued property EAttribute[] isMultiValued = { ErfPackage.Literals.ATTRIBUTE_DEFINITION_ENUMERATION__MULTI_VALUED }; BindingCheckBox multiValuedCheckbox = new BindingCheckBox(detailComposite, SWT.NONE); multiValuedCheckbox.setLayoutData(new GridData(SWT.LEFT, SWT.DEFAULT, true, false)); multiValuedCheckbox.bind(editingDomain, isMultiValued, master); // create checkbox for enabling default value Button defaultValueCheckbox = createDefaultValueCheckbox(attributeDefinitionEnum, ErfPackage.Literals.ATTRIBUTE_DEFINITION_ENUMERATION__DEFAULT_VALUE); // create table for selecting default EnumValue elements Table defaultValueTable = new Table(detailComposite, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION | SWT.CHECK); defaultValueTable.setLinesVisible(true); defaultValueTable.setHeaderVisible(true); final CheckboxTableViewer defaultValueTableViewer = new CheckboxTableViewer(defaultValueTable); defaultValueTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); final ObservableListContentProvider cp = new ObservableListContentProvider(); defaultValueTableViewer.setContentProvider(cp); TableViewerColumn column = new TableViewerColumn(defaultValueTableViewer, SWT.NONE); column.getColumn().setResizable(false); column.getColumn().setMoveable(false); column.getColumn().setText(Ui.getUiName(ErfPackage.Literals.ATTRIBUTE_VALUE_ENUMERATION__VALUES)); column.getColumn().pack(); // set label provider IValueProperty elementProperty = EMFEditProperties.value(editingDomain, FeaturePath.fromList(new EStructuralFeature[] { ErfPackage.Literals.IDENTIFIABLE__LONG_NAME })); IObservableMap attributeMap = elementProperty.observeDetail(cp.getKnownElements()); column.setLabelProvider(new ObservableMapCellLabelProvider(attributeMap)); // Add provider for the check stare of the table viewer // A value is checked if it is referred by the Default value of the AttributeDefintionEnumeration defaultValueTableViewer.setCheckStateProvider(new ICheckStateProvider() { @Override public boolean isGrayed(Object element) { return false; } @Override public boolean isChecked(Object element) { AttributeValueEnumeration enumDefaultValue = attributeDefinitionEnum.getDefaultValue(); return enumDefaultValue != null && enumDefaultValue.getValues().contains(element); } }); // If a EnumValue is selected add it to the list of Default values for the AttributeDefintionEnumeration // Otherwise remove it from the list of default values defaultValueTableViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(CheckStateChangedEvent event) { // we don't need to check if the default value object is null as // in this case table viewer is disabled assert (attributeDefinitionEnum.getDefaultValue() != null); EnumValue enumValue = ((EnumValue) event.getElement()); Command command = null; if (event.getChecked() == true) { command = AddCommand.create(editingDomain, attributeDefinitionEnum.getDefaultValue(), ErfPackage.Literals.ATTRIBUTE_VALUE_ENUMERATION__VALUES, enumValue); } else { command = RemoveCommand.create(editingDomain, attributeDefinitionEnum.getDefaultValue(), ErfPackage.Literals.ATTRIBUTE_VALUE_ENUMERATION__VALUES, enumValue); } editingDomain.getCommandStack().execute(command); } }); // observe values of DatatypeDefinition selected for the AttributeDefintionEnumeration IEMFListProperty enumerationProperty = EMFProperties.list( FeaturePath.fromList(new EStructuralFeature[] { ErfPackage.Literals.ATTRIBUTE_DEFINITION__TYPE, ErfPackage.Literals.DATATYPE_DEFINITION_ENUMERATION__SPECIFIED_VALUES })); IObservableList dataTypeEnumValueObserver = enumerationProperty.observe(attributeDefinitionEnum); defaultValueTableViewer.setInput(dataTypeEnumValueObserver); // only enable table viewer in case a default value exists dataBindingContext.bindValue(SWTObservables.observeEnabled(defaultValueTable), SWTObservables.observeSelection(defaultValueCheckbox)); }
From source file:era.foss.typeeditor.view.ViewForm.java
License:Open Source License
/** * Create a Combo box for selecting the {@link SpecType} of the respective view * /* w w w .j ava 2s . co m*/ * @param parent parent composite */ private void createSpecTypeComboViewer(Composite parent) { final ComboViewer specTypeComboViewer = new ComboViewer(parent, SWT.READ_ONLY) { @Override protected void doUpdateItem(Widget data, Object element, boolean fullMap) { // memorize the selection before updating the item, as the // update routine removes the selection... ISelection currentSelection = this.getSelection(); super.doUpdateItem(data, element, fullMap); // set the selection to the previous value this.setSelection(currentSelection); } }; ObservableListContentProvider contentProvider = new ObservableListContentProvider(); specTypeComboViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); // set content provider specTypeComboViewer.setContentProvider(contentProvider); // set label provider specTypeComboViewer.setLabelProvider( new ObservableMapLabelProvider(EMFProperties.value(ErfPackage.Literals.IDENTIFIABLE__LONG_NAME) .observeDetail(contentProvider.getKnownElements()))); // set input IEMFListProperty specTypeProperty = EMFProperties.list(ErfPackage.Literals.CONTENT__SPEC_TYPES); specTypeComboViewer.setInput(specTypeProperty.observe(this.erfModel.getCoreContent())); specTypeMaster = ViewerProperties.singleSelection().observe(specTypeComboViewer); if (erfModel.getCoreContent().getSpecTypes().size() > 0) { specTypeComboViewer .setSelection(new StructuredSelection(erfModel.getCoreContent().getSpecTypes().get(0))); } specTypeMaster.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent event) { viewElementTableViewer.refresh(); viewLayoutViewer.refresh(); } }); }
From source file:era.foss.typeeditor.view.ViewForm.java
License:Open Source License
/** * Creates the table viewer for {@link ViewElements} * /* w w w. ja va 2 s . c o m*/ * @param parent parent composite */ private void createViewElementTableViewer(Composite parent) { this.viewElementTableViewer = new AddDeleteTableViewer(parent, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION | AddDeleteTableViewer.NO_DESCRIPTION) { @Override public void addElement() { this.elementOwner = (EObject) viewMaster.getValue(); super.addElement(); // is_a ViewElement ViewElement addedViewElement = (ViewElement) super.getElementAt(super.doGetItemCount() - 1); // default placement of views' elements addedViewElement.setEditorRowPosition(getCurrentMaxRowIdx() + 1); addedViewElement.setEditorColumnPosition(0); addedViewElement.setEditorColumnSpan(2); addedViewElement.setEditorRowSpan(1); } /** * Calculates maximum row index of existing view elements * * @return maximum row index */ private int getCurrentMaxRowIdx() { int maxRowIdx = 0; for (int i = 0; i < super.doGetItemCount(); ++i) { ViewElement iterViewElement = (ViewElement) super.getElementAt(i); maxRowIdx = Math.max(maxRowIdx, iterViewElement.getEditorRowPosition() + (iterViewElement.getEditorRowSpan() - 1)); } return maxRowIdx; } @Override protected void createButtonBar() { super.createButtonBar(); // FIXME @cpn create "add all" button } }; // the owner is null as it is set in the overridden addElement() method viewElementTableViewer.setElementInformation((EObject) viewMaster.getValue(), ErfPackage.Literals.VIEW__VIEW_ELEMENTS, ErfPackage.Literals.VIEW_ELEMENT); viewElementTableViewer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 2)); viewElementTableViewer.setEditingDomain(editingDomain); ObservableListContentProvider tableViewerContentProvider = new ObservableListContentProvider(); viewElementTableViewer.setContentProvider(tableViewerContentProvider); TableColumnLayout columnLayout = (TableColumnLayout) viewElementTableViewer.getTable().getParent() .getLayout(); // create column showing the Attribute Definition TableViewerColumn attributeDefinitionColumn = new TableViewerColumn(viewElementTableViewer, SWT.NONE); columnLayout.setColumnData(attributeDefinitionColumn.getColumn(), new ColumnWeightData(100, 70)); attributeDefinitionColumn.getColumn().setResizable(false); attributeDefinitionColumn.getColumn().setMoveable(false); attributeDefinitionColumn.getColumn() .setText(Ui.getUiName(ErfPackage.Literals.VIEW_ELEMENT__ATTRIBUTE_DEFINITION)); // label provider for column showing the AttributeDefintion IValueProperty elementProperty = EMFEditProperties.value(editingDomain, FeaturePath .fromList(new EStructuralFeature[] { ErfPackage.Literals.VIEW_ELEMENT__ATTRIBUTE_DEFINITION, ErfPackage.Literals.IDENTIFIABLE__LONG_NAME })); IObservableMap attributeMap = elementProperty.observeDetail(tableViewerContentProvider.getKnownElements()); attributeDefinitionColumn.setLabelProvider(new ObservableMapCellLabelProvider(attributeMap)); // editing support column showing the AttributeDefintion // Combo box: Create combo box to select choices for the reference ComboBoxViewerCellEditor combo = new ComboBoxViewerCellEditorSp( (Composite) viewElementTableViewer.getControl(), SWT.DROP_DOWN | SWT.READ_ONLY); // Combo box: Set Content Provider; ObservableListContentProvider comboBoxContentProvider = new ObservableListContentProvider(); combo.setContentProvider(comboBoxContentProvider); // Combo box: Set Label Provider combo.setLabelProvider( new ObservableMapLabelProvider(EMFProperties.value(ErfPackage.Literals.IDENTIFIABLE__LONG_NAME) .observeDetail(comboBoxContentProvider.getKnownElements()))); // Combo box: set input from selected specType IEMFListProperty specAttributesProperty = EMFProperties .list(ErfPackage.Literals.SPEC_TYPE__SPEC_ATTRIBUTES); combo.setInput(specAttributesProperty.observeDetail(specTypeMaster)); // Set editing support of table cell IValueProperty editorElementProperty = EMFEditProperties.value(editingDomain, ErfPackage.Literals.VIEW_ELEMENT__ATTRIBUTE_DEFINITION); IValueProperty cellEditorProperty = ViewerProperties.singleSelection(); attributeDefinitionColumn.setEditingSupport(ObservableValueEditingSupport.create(viewElementTableViewer, dataBindContext, combo, cellEditorProperty, editorElementProperty)); // provide input for the table IEMFListProperty viewsProperty = EMFProperties.list(ErfPackage.Literals.VIEW__VIEW_ELEMENTS); viewElementTableViewer.addFilter(new SpecTypeFilter()); viewElementTableViewer.setInput(viewsProperty.observeDetail(viewMaster)); viewElementMaster = ViewerProperties.singleSelection().observe(viewElementTableViewer); viewElementTableViewer.getTable().select(0); }
From source file:joachimeichborn.geotag.ui.parts.GeocodingView.java
License:Open Source License
private void bindPictureViewer() { final List<IBeanValueProperty> properties = new LinkedList<>(); properties.add(BeanProperties.value(Picture.class, Picture.FILE_PROPERTY)); properties.add(BeanProperties.value(Picture.class, Picture.TIME_PROPERTY)); properties.add(BeanProperties.value(Picture.class, Picture.COORDINATES_PROPERTY)); final IBeanValueProperty geocoding = BeanProperties.value(Picture.class, Picture.GEOCODING_PROPERTY); final IBeanValueProperty locationName = BeanProperties.value(Geocoding.class, Geocoding.LOCATION_NAME_PROPERTY); properties.add(geocoding.value(locationName)); final IBeanValueProperty city = BeanProperties.value(Geocoding.class, Geocoding.CITY_PROPERTY); properties.add(geocoding.value(city)); final IBeanValueProperty sublocation = BeanProperties.value(Geocoding.class, Geocoding.SUBLOCATION_PROPERTY); properties.add(geocoding.value(sublocation)); final IBeanValueProperty province = BeanProperties.value(Geocoding.class, Geocoding.PROVINCE_STATE_PROPERTY); properties.add(geocoding.value(province)); final IBeanValueProperty countryCode = BeanProperties.value(Geocoding.class, Geocoding.COUNTRY_CODE_PROPERTY); properties.add(geocoding.value(countryCode)); final IBeanValueProperty countryName = BeanProperties.value(Geocoding.class, Geocoding.COUNTRY_NAME_PROPERTY); properties.add(geocoding.value(countryName)); final IBeanValueProperty[] propertiesArray = properties.toArray(new IBeanValueProperty[properties.size()]); final ObservableListContentProvider contentProvider = new ObservableListContentProvider(); inputPictureViewer.setContentProvider(contentProvider); final IObservableMap[] observables = Properties.observeEach(contentProvider.getKnownElements(), propertiesArray);/*from www . j a v a 2 s . c o m*/ inputPictureViewer.setLabelProvider( new PictureViewerObservableLabelProvider(observables, Arrays.asList(ALL_COLUMNS))); final IObservableList input = BeanProperties.list(PicturesRepo.class, PicturesRepo.PICTURES_PROPERTY) .observe(picturesRepo); inputPictureViewer.setInput(input); }
From source file:joachimeichborn.geotag.ui.parts.PicturesView.java
License:Open Source License
private void bindPictureViewer() { final List<IBeanValueProperty> properties = new LinkedList<>(); properties.add(BeanProperties.value(Picture.class, Picture.FILE_PROPERTY)); properties.add(BeanProperties.value(Picture.class, Picture.TIME_PROPERTY)); properties.add(BeanProperties.value(Picture.class, Picture.COORDINATES_PROPERTY)); final IBeanValueProperty[] propertiesArray = properties.toArray(new IBeanValueProperty[properties.size()]); final ObservableListContentProvider contentProvider = new ObservableListContentProvider(); pictureViewer.setContentProvider(contentProvider); final IObservableMap[] observables = Properties.observeEach(contentProvider.getKnownElements(), propertiesArray);/*from w ww. java 2 s. c o m*/ pictureViewer .setLabelProvider(new PictureViewerObservableLabelProvider(observables, Arrays.asList(COLUMNS))); final IObservableList input = BeanProperties.list(PicturesRepo.class, PicturesRepo.PICTURES_PROPERTY) .observe(picturesRepo); pictureViewer.setInput(input); }
From source file:joachimeichborn.geotag.ui.parts.PositionAnnotationView.java
License:Open Source License
private void bindTrackViewer() { final List<IBeanValueProperty> properties = new LinkedList<>(); properties.add(BeanProperties.value(Track.class, Track.FILE_PROPERTY)); properties.add(BeanProperties.value(Track.class, Track.POSITIONS_PROPERTY)); properties.add(BeanProperties.value(Track.class, Track.COLOR_PROPERTY)); final IBeanValueProperty[] propertiesArray = properties.toArray(new IBeanValueProperty[properties.size()]); final ObservableListContentProvider contentProvider = new ObservableListContentProvider(); trackViewer.setContentProvider(contentProvider); final IObservableMap[] observables = Properties.observeEach(contentProvider.getKnownElements(), propertiesArray);/*from w ww . j a va2 s. c om*/ trackViewer.setLabelProvider(new TrackViewerObservableLabelProvider(observables, Arrays.asList(TRACK_VIEWER_COLUMNS), colorPreviewGenerator)); final IObservableList input = BeanProperties.list(TracksRepo.class, TracksRepo.TRACKS_PROPERTY) .observe(tracksRepo); trackViewer.setInput(input); }
From source file:joachimeichborn.geotag.ui.parts.PositionAnnotationView.java
License:Open Source License
private void bindPictureViewer() { final List<IBeanValueProperty> properties = new LinkedList<>(); properties.add(BeanProperties.value(Picture.class, Picture.FILE_PROPERTY)); properties.add(BeanProperties.value(Picture.class, Picture.TIME_PROPERTY)); properties.add(BeanProperties.value(Picture.class, Picture.COORDINATES_PROPERTY)); final IBeanValueProperty[] propertiesArray = properties.toArray(new IBeanValueProperty[properties.size()]); final ObservableListContentProvider contentProvider = new ObservableListContentProvider(); pictureViewer.setContentProvider(contentProvider); final IObservableMap[] observables = Properties.observeEach(contentProvider.getKnownElements(), propertiesArray);//from w w w .ja va2 s . c o m pictureViewer.setLabelProvider( new PictureViewerObservableLabelProvider(observables, Arrays.asList(PICTURE_VIEWER_COLUMNS))); final IObservableList input = BeanProperties.list(PicturesRepo.class, PicturesRepo.PICTURES_PROPERTY) .observe(picturesRepo); pictureViewer.setInput(input); }
From source file:joachimeichborn.geotag.ui.parts.TrackImprovementView.java
License:Open Source License
private void bindTrackViewer() { final List<IBeanValueProperty> properties = new LinkedList<>(); properties.add(BeanProperties.value(Track.class, Track.FILE_PROPERTY)); properties.add(BeanProperties.value(Track.class, Track.POSITIONS_PROPERTY)); properties.add(BeanProperties.value(Track.class, Track.COLOR_PROPERTY)); final IBeanValueProperty[] propertiesArray = properties.toArray(new IBeanValueProperty[properties.size()]); final ObservableListContentProvider contentProvider = new ObservableListContentProvider(); trackViewer.setContentProvider(contentProvider); final IObservableMap[] observables = Properties.observeEach(contentProvider.getKnownElements(), propertiesArray);/*from w w w . ja v a2 s. co m*/ trackViewer.setLabelProvider( new TrackViewerObservableLabelProvider(observables, Arrays.asList(COLUMNS), colorPreviewGenerator)); final IObservableList input = BeanProperties.list(TracksRepo.class, TracksRepo.TRACKS_PROPERTY) .observe(tracksRepo); trackViewer.setInput(input); }
From source file:joachimeichborn.geotag.ui.parts.TracksView.java
License:Open Source License
private void bindTracksViewer() { final List<IBeanValueProperty> properties = new LinkedList<>(); properties.add(BeanProperties.value(Track.class, Track.FILE_PROPERTY)); properties.add(BeanProperties.value(Track.class, Track.POSITIONS_PROPERTY)); properties.add(BeanProperties.value(Track.class, Track.COLOR_PROPERTY)); final IBeanValueProperty[] propertiesArray = properties.toArray(new IBeanValueProperty[properties.size()]); final ObservableListContentProvider contentProvider = new ObservableListContentProvider(); trackViewer.setContentProvider(contentProvider); final IObservableMap[] observables = Properties.observeEach(contentProvider.getKnownElements(), propertiesArray);//from w w w . j a v a2 s.com trackViewer.setLabelProvider( new TrackViewerObservableLabelProvider(observables, Arrays.asList(COLUMNS), colorPreviewGenerator)); final IObservableList input = BeanProperties.list(TracksRepo.class, TracksRepo.TRACKS_PROPERTY) .observe(tracksRepo); trackViewer.setInput(input); }