List of usage examples for org.eclipse.jface.viewers TableViewer getTable
public Table getTable()
From source file:org.codehaus.groovy.eclipse.dsl.inferencing.suggestions.ui.MethodParameterTable.java
License:Apache License
protected Map<Control, IDialogueControlDescriptor> createManagedControls(Composite parent) { Composite viewerArea = new Composite(parent, SWT.NONE); GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).applyTo(viewerArea); GridDataFactory.fillDefaults().grab(true, true).applyTo(viewerArea); Map<Control, IDialogueControlDescriptor> allControls = new HashMap<Control, IDialogueControlDescriptor>(); TableViewer viewer = createTableViewer(viewerArea); if (viewer != null) { allControls.put(viewer.getTable(), ControlTypes.PARAMETERS); }/*from w ww .ja v a 2 s.c o m*/ Map<Control, IDialogueControlDescriptor> buttonControls = createOperationButtonArea(viewerArea); if (buttonControls != null) { allControls.putAll(buttonControls); } Button useNamedButton = createCheckButton(parent, ControlTypes.USE_NAMED_ARGUMENTS); if (useNamedButton != null) { useNamedButton.setSelection(useNamedArguments); allControls.put(useNamedButton, ControlTypes.USE_NAMED_ARGUMENTS); } return allControls; }
From source file:org.cropinformatics.ui.components.impl.TableViewerComponent.java
License:Apache License
@Override protected TableViewer createDefaultViewer(Composite parent) { TableViewer tableViewer = new TableViewer(parent, SWT.NONE); tableViewer.setContentProvider(new ArrayContentProvider()); tableViewer.setLabelProvider(new ArrayLabelProvider()); tableViewer.getTable().setHeaderVisible(true); tableViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); ConfigurationUtils.configureControl(tableViewer.getTable(), getConfiguration()); tableViewer.getTable().setEnabled(isEnabled()); updateTableViewer();/*from w ww . j a va 2s. com*/ return tableViewer; }
From source file:org.csstudio.alarm.beast.msghist.opiwidget.MessageHistoryWidgetFigure.java
License:Open Source License
@Override protected Composite createSWTWidget(Composite parent, int style) { MessageHistoryWidgetEditPart widgetEditPart = (MessageHistoryWidgetEditPart) editPart; MessageHistoryWidgetModel widgetModel = widgetEditPart.getWidgetModel(); gui = new GUI(null, parent, widgetEditPart.getMessageHistoryModel(), widgetModel.getColumns(), widgetModel.getSortingColumn(), widgetModel.isSortAscending(), widgetModel.isColumnHeaders()); // switch selection listener on focus TableViewer tableViewer = gui.getTableViewer(); tableViewer.getTable().addFocusListener(new FocusListener() { @Override/*from ww w. j a v a2s . co m*/ public void focusLost(FocusEvent e) { } @Override public void focusGained(FocusEvent e) { IWorkbenchSite site = editPart.getSite(); if (site != null && (site.getSelectionProvider() instanceof SelectionProviderWrapper)) { SelectionProviderWrapper selectionProviderWrapper = (SelectionProviderWrapper) site .getSelectionProvider(); selectionProviderWrapper.setSelectionProvider(tableViewer); } } }); return gui; }
From source file:org.csstudio.alarm.beast.ui.alarmtable.GUI.java
License:Open Source License
/** * Synchronise the UI actions between the two tables. When a sorting column is selected in the primary table the * same column should be selected in the secondary table. Similarly, the moving and resizing of columns is also * synchronised./* w w w.j av a 2 s .com*/ * * @param primary the table, which is the source of the actions * @param secondary the table that is synchronised with the primary table * @param sortColumn the column that is being sorted by default * @param sortUp default sorting direction */ private void syncTables(final TableViewer primary, final TableViewer secondary, ColumnInfo sortColumn, boolean sortUp) { if (primary == null) return; TableColumn[] priColumns = primary.getTable().getColumns(); TableColumn[] secColumns = secondary == null ? priColumns : secondary.getTable().getColumns(); boolean applied = false; AlarmColumnSortingSelector defaultListener = null; for (int i = 0; i < priColumns.length; i++) { final TableColumn c = priColumns[i]; final TableColumn s = secColumns[i]; final ColumnWrapper w = getColumnWrapper(i); AlarmColumnSortingSelector listener = new AlarmColumnSortingSelector(primary, secondary, c, s, w.getColumnInfo()); c.addSelectionListener(listener); if (secondary != null) { c.addControlListener(new ControlAdapter() { @Override public void controlResized(ControlEvent e) { if (Math.abs(s.getWidth() - c.getWidth()) > 1) { s.setWidth(c.getWidth()); w.setMinWidth(c.getWidth()); } } @Override public void controlMoved(ControlEvent e) { secondary.getTable().setColumnOrder(primary.getTable().getColumnOrder()); } }); } if (w.getColumnInfo() == sortColumn) { listener.setSortDirection(sortUp); applied = true; } else if (defaultListener == null && w.getColumnInfo() != ColumnInfo.ACK) { defaultListener = listener; } } if (!applied && defaultListener != null) { defaultListener.setSortDirection(sortUp); } }
From source file:org.csstudio.alarm.beast.ui.alarmtable.GUI.java
License:Open Source License
/** * Create a table viewer for displaying alarms * * @param parent Parent widget, uses GridLayout * @param is_active_alarm_table true if the table is for the active alarms or false if for acknowledged alarms * * @return TableViewer, still needs input *//*w w w.jav a 2 s .c o m*/ private TableViewer createAlarmTable(final Composite parent, final boolean is_active_alarm_table) { // TableColumnLayout requires the TableViewer to be in its own Composite final GridLayout parent_layout = (GridLayout) parent.getLayout(); final Composite table_parent = new Composite(parent, 0); table_parent.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, parent_layout.numColumns, 1)); // Auto-size table columns final TableColumnLayout table_layout = new MinSizeTableColumnLayout(10); table_parent.setLayout(table_layout); final TableViewer table_viewer = new TableViewer(table_parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION | SWT.VIRTUAL); // Some tweaks to the underlying table widget final Table table = table_viewer.getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); ColumnViewerToolTipSupport.enableFor(table_viewer); // Connect TableViewer to the Model: Provide content from model... table_viewer.setContentProvider(new AlarmTableContentProvider()); // Create the columns of the table, using a fixed initial width. for (ColumnWrapper cw : columns) { if (!cw.isVisible()) continue; // Create auto-size column final TableViewerColumn view_col = new TableViewerColumn(table_viewer, 0); final TableColumn table_col = view_col.getColumn(); table_layout.setColumnData(table_col, new ColumnWeightData(cw.getWeight(), cw.getMinWidth())); table_col.setText(cw.getName()); table_col.setMoveable(true); ColumnInfo col_info = cw.getColumnInfo(); // Tell column how to display the model elements if (col_info == ColumnInfo.TIME) view_col.setLabelProvider(table_label_provider); else view_col.setLabelProvider( new AlarmTableLabelProvider(icon_provider, color_provider, color_pair_provider, col_info)); if (col_info == ColumnInfo.ACK) { if (writable) view_col.setEditingSupport(new AcknowledgeEditingSupport(table_viewer)); } table_col.setToolTipText(col_info.getTooltip()); } return table_viewer; }
From source file:org.csstudio.alarm.beast.ui.alarmtable.GUI.java
License:Open Source License
/** * Add context menu to tree/*from w w w . j a v a 2s . c om*/ * * @param table_viewer * TableViewer to which to add the menu * @param site * Workbench site or <code>null</code> */ private void connectContextMenu(final TableViewer table_viewer, final IWorkbenchPartSite site) { final Table table = table_viewer.getTable(); final boolean isRcp = UI.RCP.equals(SingleSourcePlugin.getUIHelper().getUI()); final MenuManager manager = new MenuManager(); manager.setRemoveAllWhenShown(true); manager.addMenuListener(new IMenuListener() { // Dynamically build menu based on current selection @Override @SuppressWarnings("unchecked") public void menuAboutToShow(IMenuManager manager) { final Shell shell = table.getShell(); final List<AlarmTreeItem> items = ((IStructuredSelection) table_viewer.getSelection()).toList(); new ContextMenuHelper(table_viewer, manager, shell, items, writable); manager.add(new Separator()); // Add edit items if (items.size() == 1 && writable && model != null) { final AlarmTreeItem item = items.get(0); manager.add(new ConfigureItemAction(shell, model, item)); } if (items.size() >= 1 && writable && model != null) manager.add(new DisableComponentAction(shell, model, items)); manager.add(new Separator()); if (isRcp) { manager.add(new AlarmPerspectiveAction()); manager.add(new Separator()); } // Placeholder for CSS PV contributions manager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); } }); table.setMenu(manager.createContextMenu(table)); // Allow extensions to add to the context menu if (site != null) site.registerContextMenu(manager, table_viewer); }
From source file:org.csstudio.alarm.beast.ui.globaltable.GlobalAlarmTableView.java
License:Open Source License
/** Add context menu * @param table_viewer/*from ww w. j a va 2s. c om*/ * @param site Workbench site or <code>null</code> */ private void addContextMenu(final TableViewer table_viewer, final IWorkbenchPartSite site) { final Table table = table_viewer.getTable(); final boolean isRcp = UI.RCP.equals(SingleSourcePlugin.getUIHelper().getUI()); final MenuManager manager = new MenuManager(); manager.setRemoveAllWhenShown(true); manager.addMenuListener(new IMenuListener() { @SuppressWarnings("unchecked") @Override public void menuAboutToShow(final IMenuManager manager) { // TODO 'Select configuration' action final List<AlarmTreeItem> items = ((IStructuredSelection) table_viewer.getSelection()).toList(); new ContextMenuHelper(null, manager, table.getShell(), items, false); manager.add(new Separator()); if (isRcp) { manager.add(new AlarmPerspectiveAction()); manager.add(new Separator()); } manager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); } }); table.setMenu(manager.createContextMenu(table)); // Allow extensions to add to the context menu if (site != null) site.registerContextMenu(manager, table_viewer); }
From source file:org.csstudio.alarm.beast.ui.globaltable.GlobalAlarmTableView.java
License:Open Source License
/** @param parent Parent widget * @return Table viewer for GlobalAlarmModel *//*from w w w .j a va 2 s . c o m*/ private TableViewer createTable(final Composite parent) { // TableColumnLayout requires the TableViewer to be in its // own Composite! For now, the 'parent' is used because there is // no other widget in the view. parent.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); final TableColumnLayout table_layout = new MinSizeTableColumnLayout(10); parent.setLayout(table_layout); final TableViewer table_viewer = new TableViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION); final Table table = table_viewer.getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); createColumns(table_viewer, table_layout); table_viewer.setContentProvider(new GlobalAlarmContentProvider()); ColumnViewerToolTipSupport.enableFor(table_viewer); return table_viewer; }
From source file:org.csstudio.auth.ui.internal.preferences.SystemPropertiesPreferencePage.java
License:Open Source License
/** * Initializes the table control./* www. j a va 2 s .co m*/ * @param viewer the viewer. */ private void initializeTableViewer(final TableViewer viewer) { Table table = viewer.getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); viewer.setColumnProperties(new String[] { KEY, VALUE }); TableColumn col; // first column: key col = new TableColumn(table, SWT.LEFT); col.setWidth(200); col.setText(Messages.SystemPropertiesPreferencePage_KEY_COLUMN_LABEL); // second column: value col = new TableColumn(table, SWT.LEFT); col.setWidth(150); col.setText(Messages.SystemPropertiesPreferencePage_VALUE_COLUMN_LABEL); CellEditor[] editors = new CellEditor[2]; editors[0] = new TextCellEditor(table); editors[1] = new TextCellEditor(table); viewer.setCellEditors(editors); // Add a cell modifier so values can be edited inline in the table viewer.setCellModifier(new ICellModifier() { public boolean canModify(final Object element, final String property) { return property.equals(KEY) || property.equals(VALUE); } public Object getValue(final Object element, final String property) { SystemPropertyPreferenceEntry entry = (SystemPropertyPreferenceEntry) element; if (KEY.equals(property)) { return entry.getKey(); } else if (VALUE.equals(property)) { return entry.getValue(); } else { return null; } } public void modify(Object element, final String property, final Object value) { // this is to handle the case when we get an SWT item if (element instanceof Item) { element = ((Item) element).getData(); } SystemPropertyPreferenceEntry entry = (SystemPropertyPreferenceEntry) element; if (KEY.equals(property)) { entry.setKey((String) value); } else if (VALUE.equals(property)) { entry.setValue((String) value); } viewer.update(entry, null); } }); }
From source file:org.csstudio.diag.pvfields.gui.GUI.java
License:Open Source License
/** Create table for Properties * @param box Container//from w w w. j av a 2s. c o m * @return {@link TableViewer} */ private static TableViewer createPropertyTable(final Composite box) { final TableColumnLayout table_layout = new TableColumnLayout(); box.setLayout(table_layout); final TableViewer viewer = new TableViewer(box, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); final Table table = viewer.getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); ColumnViewerToolTipSupport.enableFor(viewer); viewer.setContentProvider(new ArrayContentProvider()); createColumn(viewer, table_layout, "Property", 100, new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final String[] values = (String[]) cell.getElement(); cell.setText(values[0]); } }); createColumn(viewer, table_layout, "Value", 161, new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final String[] values = (String[]) cell.getElement(); cell.setText(values[1]); } }); return viewer; }