List of usage examples for org.eclipse.jface.databinding.viewers ObservableListContentProvider ObservableListContentProvider
public ObservableListContentProvider()
From source file:org.jboss.tools.openshift.internal.ui.wizard.newapp.TemplateParametersPage.java
License:Open Source License
public TableViewer createTable(final Composite tableContainer, IObservableList<IParameter> parametersObservable, DataBindingContext dbc) {//from w ww .j av a 2 s . co m final Table table = new Table(tableContainer, SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL); table.setLinesVisible(true); table.setHeaderVisible(true); Image decorationImage = FieldDecorationRegistry.getDefault() .getFieldDecoration(FieldDecorationRegistry.DEC_ERROR).getImage(); final ObservableMap<String, IStatus> cellsValidationStatusObservable = new WritableMap<String, IStatus>( String.class, IStatus.class); final TableViewerCellDecorationManager decorations = new TableViewerCellDecorationManager(decorationImage, table); parametersObservable .addListChangeListener(onParametersChanged(decorations, cellsValidationStatusObservable)); TableViewer viewer = new TableViewerBuilder(table, tableContainer) .contentProvider(new ArrayContentProvider()).column(new CellLabelProvider() { @Override public void update(ViewerCell cell) { Assert.isLegal(cell.getElement() instanceof IParameter, "cell element is not a IParameter"); IParameter parameter = (IParameter) cell.getElement(); String label = parameter.getName(); if (parameter.isRequired()) { label = markRequired(label); } cell.setText(label); } private String markRequired(String label) { return label += " *"; } @Override public String getToolTipText(Object object) { Assert.isLegal(object instanceof IParameter, "cell element is not a IParameter"); return ((IParameter) object).getDescription(); } @Override public int getToolTipDisplayDelayTime(Object object) { return 0; } }).name("Name").align(SWT.LEFT).weight(1).minWidth(180).buildColumn() .column(new CellLabelProvider() { @Override public void update(ViewerCell cell) { Assert.isLegal(cell.getElement() instanceof IParameter, "cell element is not a IParameter"); final IParameter parameter = (IParameter) cell.getElement(); String label = TemplateParameterViewerUtils.getValueLabel(parameter); cell.setText(label); IStatus validationStatus = validate(parameter); cellsValidationStatusObservable.put(parameter.getName(), validationStatus); decorations.toggle(!validationStatus.isOK(), cell); } private IStatus validate(IParameter parameter) { if (parameter.isRequired()) { if (StringUtils.isEmpty(parameter.getValue()) && StringUtils.isEmpty(parameter.getGeneratorName())) { return ValidationStatus.error(NLS.bind( "Parameter {0} is required, please provide a value.", parameter.getName())); } ; } IStatus status = gitSourceValidator.validate(parameter); if (!status.isOK()) { return status; } return ValidationStatus.ok(); } @Override public String getToolTipText(Object object) { Assert.isLegal(object instanceof IParameter, "cell element is not a IParameter"); return ((IParameter) object).getDescription(); } @Override public int getToolTipDisplayDelayTime(Object object) { return 0; } }).name("Value").align(SWT.LEFT).weight(1).buildColumn().buildViewer(); viewer.setComparator(new ParameterNameViewerComparator()); viewer.setContentProvider(new ObservableListContentProvider()); // cells validity dbc.addValidationStatusProvider(new MultiValidator() { @Override protected IStatus validate() { for (Iterator<IStatus> iterator = (Iterator<IStatus>) cellsValidationStatusObservable.values() .iterator(); iterator.hasNext();) { IStatus cellValidationStatus = iterator.next(); if (cellValidationStatus != null && !cellValidationStatus.isOK()) { return cellValidationStatus; } } return ValidationStatus.ok(); } }); return viewer; }
From source file:org.jboss.tools.openshift.internal.ui.wizard.project.ManageProjectsWizardPage.java
License:Open Source License
@Override protected void doCreateControls(Composite parent, DataBindingContext dbc) { GridLayoutFactory.fillDefaults().margins(10, 10).applyTo(parent); Group group = new Group(parent, SWT.NONE); group.setText("OpenShift Projects"); GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).applyTo(group); GridLayoutFactory.fillDefaults().numColumns(2).margins(6, 6).applyTo(group); // table/*from w ww. j a v a 2s . c o m*/ Composite tableContainer = new Composite(group, SWT.NONE); this.viewer = createTable(tableContainer); GridDataFactory.fillDefaults().span(1, 5).align(SWT.FILL, SWT.FILL).grab(true, true) .applyTo(tableContainer); viewer.setContentProvider(new ObservableListContentProvider()); viewer.setInput(BeanProperties.list(ManageProjectsWizardPageModel.PROPERTY_PROJECTS).observe(pageModel)); loadProjects(dbc); initialProjects = getProjects(); viewer.setComparator(new ProjectViewerComparator()); IObservableValue viewerSingleSelection = ViewerProperties.singleSelection().observe(viewer); ValueBindingBuilder.bind(viewerSingleSelection).to( BeanProperties.value(ManageProjectsWizardPageModel.PROPERTY_SELECTED_PROJECT).observe(pageModel)) .in(dbc); // new Button newButton = new Button(group, SWT.PUSH); GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).applyTo(newButton); newButton.setText("New..."); newButton.addSelectionListener(onNew()); UIUtils.setDefaultButtonWidth(newButton); // remove Button removeButton = new Button(group, SWT.PUSH); GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).applyTo(removeButton); removeButton.setText("Remove..."); removeButton.addSelectionListener(onRemove(dbc)); ValueBindingBuilder.bind(WidgetProperties.enabled().observe(removeButton)).notUpdatingParticipant() .to(viewerSingleSelection).converting(new IsNotNull2BooleanConverter()).in(dbc); UIUtils.setDefaultButtonWidth(removeButton); Composite filler = new Composite(group, SWT.None); GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).applyTo(filler); // refresh Button refreshButton = new Button(group, SWT.PUSH); GridDataFactory.fillDefaults().align(SWT.FILL, SWT.END).applyTo(refreshButton); refreshButton.setText("Refresh..."); refreshButton.addSelectionListener(onRefresh(dbc)); UIUtils.setDefaultButtonWidth(refreshButton); }
From source file:org.jcryptool.actions.ui.views.ActionView.java
License:Open Source License
private void createActionTable(Composite parent) { // Creating a table viewer viewer = new TableViewer(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION); viewer.getTable().setLinesVisible(true); viewer.getTable().setHeaderVisible(true); TableViewerColumn column = new TableViewerColumn(viewer, SWT.LEFT); column.getColumn().setText(Messages.ActionView_5); column.getColumn().setToolTipText(Messages.ActionView_6); column.getColumn().setWidth(50);/*ww w . j av a 2 s.c o m*/ column.getColumn().setMoveable(true); column = new TableViewerColumn(viewer, SWT.LEFT); column.getColumn().setText(Messages.ActionView_0); column.getColumn().setToolTipText(Messages.ActionView_1); column.getColumn().setWidth(80); column.getColumn().setMoveable(true); filenameColumn = new TableViewerColumn(viewer, SWT.LEFT); filenameColumn.getColumn().setText(Messages.ActionView_2); filenameColumn.getColumn().setToolTipText(Messages.ActionView_3); filenameColumn.getColumn().setMoveable(true); setFilenameVisibility(); viewer.setContentProvider(new ObservableListContentProvider()); viewer.setLabelProvider(new ActionLabelProvider()); viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent e) { } }); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent e) { ActionItem action = (ActionItem) ((IStructuredSelection) viewer.getSelection()).getFirstElement(); if (action != null) { detailTextfield.setText(action.getDetails()); if (detailTextfield.getLineCount() > 0) { detailTextfield.setLineBackground(0, 1, colorLightShadow); StyleRange styleRange = new StyleRange(); styleRange.start = 0; styleRange.length = detailTextfield.getText().indexOf(CRLF); styleRange.fontStyle = SWT.BOLD; detailTextfield.setStyleRange(styleRange); detailTextfield.setTabs(20); int i = 0; int l = 0; while (i >= 0) { i = detailTextfield.getText().indexOf(CRLF, i + 1); l = detailTextfield.getText().indexOf(":", i + 1) - i; //$NON-NLS-1$ if (l > 0 && i >= 0) { styleRange.start = i; styleRange.length = l; detailTextfield.setStyleRange(styleRange); } } } } else { detailTextfield.setText(""); //$NON-NLS-1$ } } }); viewer.setInput(ActionCascadeService.getInstance().observeActionItems()); ActionCascadeService.getInstance().observeActionItems().addListChangeListener(this); getSite().setSelectionProvider(viewer); }
From source file:org.marketcetera.photon.commons.ui.table.TableSupport.java
/** * Creates the table on the provided parent composite. * //from w w w . ja v a 2 s .c o m * @param parent * the parent widget */ public void createTable(Composite parent) { Composite container = new Composite(parent, SWT.NONE); TableColumnLayout layout = new TableColumnLayout(); container.setLayout(layout); final Table table = new Table(container, mConfiguration.getTableStyle()); mTableViewer = new TableViewer(table); final ColumnComparator comparator = new ColumnComparator(); SelectionListener listener = new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { // determine new sort column and direction TableColumn sortColumn = table.getSortColumn(); TableColumn currentColumn = (TableColumn) e.widget; final int index = table.indexOf(currentColumn); int dir = table.getSortDirection(); if (sortColumn == currentColumn) { dir = dir == SWT.UP ? SWT.DOWN : SWT.UP; } else { table.setSortColumn(currentColumn); dir = SWT.UP; } table.setSortDirection(dir); comparator.setSort(dir == SWT.UP ? 1 : -1); comparator.setIndex(index); mTableViewer.refresh(); } }; ColumnConfiguration[] descriptors = mConfiguration.getColumns(); String[] beanProperties = new String[descriptors.length]; for (int i = 0; i < descriptors.length; i++) { ColumnConfiguration descriptor = descriptors[i]; TableColumn c = new TableColumn(table, descriptor.getStyle()); if (mConfiguration.isHeaderVisible() && descriptor.getHeading() != null) { c.setText(descriptor.getHeading()); } c.setResizable(descriptor.isResizable()); c.setMoveable(descriptor.isMovable()); if (descriptor.isSortable()) { c.addSelectionListener(listener); } layout.setColumnData(c, descriptor.getLayoutData()); beanProperties[i] = descriptor.getBeanProperty(); new TableViewerColumn(mTableViewer, c); } mTableViewer.getTable().setHeaderVisible(mConfiguration.isHeaderVisible()); // if no class was provided, don't set up comparator, content, or label providers, assume // the users of this class will handle manually if (mConfiguration.getItemClass() != null) { mTableViewer.setComparator(comparator); ObservableListContentProvider contentProvider = new ObservableListContentProvider(); mTableViewer.setContentProvider(contentProvider); final IObservableMap[] columnMaps; if (mConfiguration.isDynamicColumns()) { columnMaps = BeansObservables.observeMaps(contentProvider.getKnownElements(), mConfiguration.getItemClass(), beanProperties); } else { columnMaps = PojoObservables.observeMaps(contentProvider.getKnownElements(), mConfiguration.getItemClass(), beanProperties); } mTableViewer.setLabelProvider(new ObservableMapLabelProvider(columnMaps)); } mControlCreated = true; }
From source file:org.marketcetera.photon.internal.marketdata.ui.MarketDepthView.java
private void hookupData() { /*/* w ww . java 2 s .c o m*/ * Note that we are assuming equity here. */ mDataItem = mMarketData.getDepthOfBook(new Equity(mSymbol), mProduct); ObservableListContentProvider bids = new ObservableListContentProvider(); mBidsTable.getTableViewer().setContentProvider(bids); mBidsTable.getTableViewer() .setLabelProvider( new ObservableMapLabelProvider(ObjectArrays.concat(createTimeMap(bids), EMFObservables.observeMaps(bids.getKnownElements(), new EStructuralFeature[] { MDPackage.Literals.MD_QUOTE__SOURCE, MDPackage.Literals.MD_QUOTE__SIZE, MDPackage.Literals.MD_QUOTE__PRICE })))); setSortColumn(mBidsTable, new BidComparator(), 3, SWT.DOWN); mBidsTable.getTableViewer() .setInput(EMFObservables.observeList(mDataItem.get(), MDPackage.Literals.MD_DEPTH_OF_BOOK__BIDS)); ObservableListContentProvider asks = new ObservableListContentProvider(); mAsksTable.getTableViewer().setContentProvider(asks); mAsksTable.getTableViewer() .setLabelProvider(new ObservableMapLabelProvider(ObjectArrays.concat( EMFObservables.observeMaps(asks.getKnownElements(), new EStructuralFeature[] { MDPackage.Literals.MD_QUOTE__PRICE, MDPackage.Literals.MD_QUOTE__SIZE, MDPackage.Literals.MD_QUOTE__SOURCE }), createTimeMap(asks)))); setSortColumn(mAsksTable, new AskComparator(), 0, SWT.UP); mAsksTable.getTableViewer() .setInput(EMFObservables.observeList(mDataItem.get(), MDPackage.Literals.MD_DEPTH_OF_BOOK__ASKS)); }
From source file:org.marketcetera.photon.internal.strategy.ui.StrategiesView.java
@Override public void createPartControl(Composite parent) { mViewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); ObservableListContentProvider contentProvider = new ObservableListContentProvider(); mViewer.setContentProvider(contentProvider); mViewer.setLabelProvider(new StrategyLabelProvider(contentProvider.getKnownElements())); mViewer.setComparator(new ViewerComparator() { @Override// w w w . j a v a 2 s. c o m public int category(Object element) { return element instanceof RemoteStrategyAgent ? 0 : 1; } }); mViewer.setInput(StrategyManager.getCurrent().getStrategies()); getViewSite().setSelectionProvider(mViewer); makeActions(); hookContextMenu(); hookDoubleClickAction(); }
From source file:org.marketcetera.photon.views.MarketDataView.java
@Override public void createPartControl(Composite parent) { final IActionBars actionBars = getViewSite().getActionBars(); IToolBarManager toolbar = actionBars.getToolBarManager(); mSymbolEntryText = new TextContributionItem(""); //$NON-NLS-1$ toolbar.add(mSymbolEntryText);/*from w ww . j a va 2s . c o m*/ toolbar.add(new AddSymbolAction(mSymbolEntryText, this)); final Table table = new Table(parent, SWT.MULTI | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.BORDER); table.setHeaderVisible(true); mViewer = new TableViewer(table); GridDataFactory.defaultsFor(table).applyTo(table); final MarketDataItemComparator comparator = new MarketDataItemComparator(); mViewer.setComparator(comparator); SelectionListener listener = new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { // determine new sort column and direction TableColumn sortColumn = table.getSortColumn(); TableColumn currentColumn = (TableColumn) e.widget; final int index = table.indexOf(currentColumn); int dir = table.getSortDirection(); if (sortColumn == currentColumn) { dir = dir == SWT.UP ? SWT.DOWN : SWT.UP; } else { table.setSortColumn(currentColumn); dir = SWT.UP; } table.setSortDirection(dir); comparator.setSort(dir == SWT.UP ? 1 : -1); comparator.setIndex(index); mViewer.refresh(); } }; // create columns, using FIXFieldLocalizer to preserve backwards // compatibility TableViewerColumn symbolColumn = new TableViewerColumn(mViewer, createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(Symbol.class.getSimpleName()), SWT.LEFT, listener)); symbolColumn.setEditingSupport(new SymbolEditingSupport()); createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(LastPx.class.getSimpleName()), SWT.RIGHT, listener); createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(LastQty.class.getSimpleName()), SWT.RIGHT, listener); createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(BidSize.class.getSimpleName()), SWT.RIGHT, listener); createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(BidPx.class.getSimpleName()), SWT.RIGHT, listener); createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(OfferPx.class.getSimpleName()), SWT.RIGHT, listener); createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(OfferSize.class.getSimpleName()), SWT.RIGHT, listener); // restore table state if it exists if (mViewState != null) { ColumnState.restore(table, mViewState); for (TableColumn column : table.getColumns()) { if (column.getWidth() == 0) { column.setResizable(false); } } } registerContextMenu(); getSite().setSelectionProvider(mViewer); ObservableListContentProvider content = new ObservableListContentProvider(); mViewer.setContentProvider(content); IObservableSet domain = content.getKnownElements(); IObservableMap[] maps = new IObservableMap[] { BeansObservables.observeMap(domain, MarketDataViewItem.class, "symbol"), //$NON-NLS-1$ createCompositeMap(domain, "latestTick", MDPackage.Literals.MD_LATEST_TICK__PRICE), //$NON-NLS-1$ createCompositeMap(domain, "latestTick", MDPackage.Literals.MD_LATEST_TICK__SIZE), //$NON-NLS-1$ createCompositeMap(domain, "topOfBook", MDPackage.Literals.MD_TOP_OF_BOOK__BID_SIZE), //$NON-NLS-1$ createCompositeMap(domain, "topOfBook", MDPackage.Literals.MD_TOP_OF_BOOK__BID_PRICE), //$NON-NLS-1$ createCompositeMap(domain, "topOfBook", MDPackage.Literals.MD_TOP_OF_BOOK__ASK_PRICE), //$NON-NLS-1$ createCompositeMap(domain, "topOfBook", MDPackage.Literals.MD_TOP_OF_BOOK__ASK_SIZE) //$NON-NLS-1$ }; mViewer.setLabelProvider(new ObservableMapLabelProvider(maps)); mViewer.setUseHashlookup(true); mItems = WritableList.withElementType(MarketDataViewItem.class); mViewer.setInput(mItems); }
From source file:org.marketcetera.photon.views.OrderTicketView.java
/** * Set up viewers./* w w w . ja v a 2 s . c o m*/ * * @param ticket */ protected void initViewers(T ticket) { /* * Side combo based on Side enum. */ mSideComboViewer = new ComboViewer(ticket.getSideCombo()); mSideComboViewer.setContentProvider(new ArrayContentProvider()); mSideComboViewer.setInput(getModel().getValidSideValues()); /* * Order type combo based on OrderType enum. */ mOrderTypeComboViewer = new ComboViewer(ticket.getOrderTypeCombo()); mOrderTypeComboViewer.setContentProvider(new ArrayContentProvider()); mOrderTypeComboViewer.setInput(getModel().getValidOrderTypeValues()); /* * Broker combo based on available brokers. */ mAvailableBrokersViewer = new ComboViewer(ticket.getBrokerCombo()); mAvailableBrokersViewer.setContentProvider(new ObservableListContentProvider()); mAvailableBrokersViewer.setLabelProvider(new BrokerLabelProvider()); mAvailableBrokersViewer.setInput(getModel().getValidBrokers()); /* * Time in Force combo based on TimeInForce enum. * * An extra blank entry is added since the field is optional. */ mTimeInForceComboViewer = new ComboViewer(ticket.getTifCombo()); mTimeInForceComboViewer.setContentProvider(new ArrayContentProvider()); mTimeInForceComboViewer.setInput(getModel().getValidTimeInForceValues()); /* * Custom fields table. * * Input is bound to model in bindCustomFields. */ mCustomFieldsTableViewer = new CheckboxTableViewer(ticket.getCustomFieldsTable()); ObservableListContentProvider contentProvider = new ObservableListContentProvider(); mCustomFieldsTableViewer.setContentProvider(contentProvider); mCustomFieldsTableViewer.setLabelProvider( new ObservableMapLabelProvider(BeansObservables.observeMaps(contentProvider.getKnownElements(), CustomField.class, new String[] { "keyString", "valueString" })));//$NON-NLS-1$ //$NON-NLS-2$ }
From source file:org.openscada.contrib.da.server.ui.launcher.HiveRunnerViewer.java
License:Open Source License
public void create(final Composite parent) { this.shell = parent.getShell(); final Composite wrapper = new Composite(parent, SWT.NONE); parent.setLayout(new GridLayout(1, false)); wrapper.setLayout(new FillLayout(SWT.HORIZONTAL)); wrapper.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); this.start = new Button(wrapper, SWT.PUSH); this.start.setText("Start"); this.start.addSelectionListener(new SelectionAdapter() { @Override//from www .j av a2 s . co m public void widgetSelected(final org.eclipse.swt.events.SelectionEvent e) { handleStart(); }; }); this.stop = new Button(wrapper, SWT.PUSH); this.stop.setText("Stop"); this.stop.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final org.eclipse.swt.events.SelectionEvent e) { handleStop(); }; }); this.viewer = new ListViewer(parent); this.viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); this.viewer.setContentProvider(new ObservableListContentProvider()); this.viewer.setInput(this.exporterList); parent.addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(final DisposeEvent e) { handleDispose(); } }); update(); }
From source file:org.openscada.core.ui.connection.information.details.PropertiesTab.java
License:Open Source License
@Override public void createTab(final TabFolder tabFolder) { this.item = new TabItem(tabFolder, SWT.NONE); this.item.setText("Properties"); this.item.addDisposeListener(new DisposeListener() { @Override/*from ww w . j a v a2 s. co m*/ public void widgetDisposed(final DisposeEvent e) { handleDispose(); } }); this.viewer = new TableViewer(tabFolder); this.viewer.getTable().setHeaderVisible(true); final TableLayout layout = new TableLayout(); this.viewer.getTable().setLayout(layout); this.contentProvider = new ObservableListContentProvider(); this.viewer.setContentProvider(this.contentProvider); this.list = new WritableList(SWTObservables.getRealm(tabFolder.getDisplay())); { final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE); col.setLabelProvider(new ObservableMapCellLabelProvider( PojoObservables.observeMap(this.contentProvider.getKnownElements(), Entry.class, "key"))); //$NON-NLS-1$ layout.addColumnData(new ColumnWeightData(50)); col.getColumn().setText("Key"); } { final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE); col.setLabelProvider(new ObservableMapCellLabelProvider( PojoObservables.observeMap(this.contentProvider.getKnownElements(), Entry.class, "value"))); //$NON-NLS-1$ layout.addColumnData(new ColumnWeightData(50)); col.getColumn().setText("Value"); } this.item.setControl(this.viewer.getControl()); this.viewer.setInput(this.list); triggerTimer(); }