List of usage examples for org.eclipse.jface.viewers TableViewer getTable
public Table getTable()
From source file:org.csstudio.opibuilder.visualparts.PVTupleTableEditor.java
License:Open Source License
/** * Creates and configures a {@link TableViewer}. * * @param parent/*w w w . ja va 2s. c o m*/ * The parent for the table * @return The {@link TableViewer} */ private TableViewer createPVTupleListTableViewer(final Composite parent) { final TableViewer viewer = new TableViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI); viewer.getTable().setLinesVisible(true); viewer.getTable().setHeaderVisible(true); final TableViewerColumn numColumn = new TableViewerColumn(viewer, SWT.NONE); numColumn.getColumn().setText("#"); numColumn.getColumn().setMoveable(false); numColumn.getColumn().setWidth(50); final TableViewerColumn pvColumn = new TableViewerColumn(viewer, SWT.NONE); pvColumn.getColumn().setText("PV Name"); pvColumn.getColumn().setMoveable(false); pvColumn.getColumn().setWidth(220); pvColumn.setEditingSupport(new PVColumnEditingSupport(viewer, viewer.getTable())); final TableViewerColumn TrigColumn = new TableViewerColumn(viewer, SWT.NONE); TrigColumn.getColumn().setText("Trigger"); TrigColumn.getColumn().setMoveable(false); TrigColumn.getColumn().pack(); TrigColumn.setEditingSupport(new TriggerColumnEditingSupport(viewer, viewer.getTable())); viewer.setContentProvider(new ArrayContentProvider()); viewer.setLabelProvider(new PVTupleLabelProvider(pvTupleList)); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(final SelectionChangedEvent event) { refreshToolbarOnSelection(); } }); viewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); DropTarget target = new DropTarget(viewer.getControl(), DND.DROP_MOVE | DND.DROP_COPY); target.setTransfer(new Transfer[] { TextTransfer.getInstance() }); target.addDropListener(new DropTargetListener() { @Override public void dragEnter(DropTargetEvent event) { } @Override public void dragLeave(DropTargetEvent event) { } @Override public void dragOperationChanged(DropTargetEvent event) { } @Override public void dragOver(DropTargetEvent event) { } @Override public void drop(DropTargetEvent event) { if (event == null || !(event.data instanceof String)) return; String txt = (String) event.data; String[] names = txt.split("[\r\n]+"); PVTuple[] tuples = new PVTuple[names.length]; int i = 0; for (String name : names) { tuples[i] = new PVTuple(name, true); pvTupleList.add(tuples[i]); i++; } refreshTableViewerFromAction(tuples); } @Override public void dropAccept(DropTargetEvent event) { } }); return viewer; }
From source file:org.csstudio.opibuilder.visualparts.RuleDataEditDialog.java
License:Open Source License
/** * Creates and configures a {@link TableViewer}. * * @param parent//from w ww . ja v a 2 s .c o m * The parent for the table * @return The {@link TableViewer} */ private TableViewer createExpressionsTableViewer(final Composite parent) { final TableViewer viewer = new TableViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.FULL_SELECTION); viewer.getTable().setLinesVisible(true); viewer.getTable().setHeaderVisible(true); TableViewerColumn expressionColumn = new TableViewerColumn(viewer, SWT.NONE); expressionColumn.getColumn().setText("Boolean Expression"); expressionColumn.getColumn().setMoveable(false); expressionColumn.getColumn().setWidth(200); expressionColumn.setEditingSupport(new EditingSupport(viewer) { @Override protected void setValue(Object element, Object value) { if (element instanceof Expression) ((Expression) element).setBooleanExpression(value.toString()); viewer.refresh(); } @Override protected Object getValue(Object element) { if (element instanceof Expression) return ((Expression) element).getBooleanExpression(); return null; } @Override protected CellEditor getCellEditor(Object element) { return new TextCellEditor(viewer.getTable()); } @Override protected boolean canEdit(Object element) { return true; } }); valueColumn = new TableViewerColumn(viewer, SWT.NONE); valueColumn.getColumn().setText(ruleData.isOutputExpValue() ? "Output Expression" : "Output Value"); valueColumn.getColumn().setMoveable(false); valueColumn.getColumn().setWidth(200); EditingSupport editingSupport = new EditingSupport(viewer) { @Override protected void setValue(Object element, Object value) { if (element instanceof Expression) { ((Expression) element).setValue(value); } viewer.refresh(); } @Override protected Object getValue(Object element) { if (element instanceof Expression) { if (((Expression) element).getValue() == null) return ""; //$NON-NLS-1$ return ((Expression) element).getValue(); } return null; } @Override protected CellEditor getCellEditor(Object element) { if (element instanceof Expression) { if (ruleData.isOutputExpValue() || ruleData.getProperty().getPropertyDescriptor() == null) return new TextCellEditor(viewer.getTable()); else return ruleData.getProperty().getPropertyDescriptor() .createPropertyEditor(viewer.getTable()); } return null; } @Override protected boolean canEdit(Object element) { return true; } }; valueColumn.setEditingSupport(editingSupport); viewer.setContentProvider(new ArrayContentProvider()); viewer.setLabelProvider(new ExpressionLabelProvider()); GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); viewer.getTable().setLayoutData(gd); return viewer; }
From source file:org.csstudio.opibuilder.visualparts.RuntimePropertiesEditDialog.java
License:Open Source License
private TableViewer createPropertiesViewer(Composite parent) { TableViewer viewer = new TableViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.FULL_SELECTION); viewer.getTable().setLinesVisible(true); viewer.getTable().setHeaderVisible(true); TableViewerColumn tvColumn = new TableViewerColumn(viewer, SWT.NONE); tvColumn.getColumn().setText("Property"); tvColumn.getColumn().setMoveable(false); tvColumn.getColumn().setWidth(150);/* w w w . j av a2 s . c o m*/ tvColumn = new TableViewerColumn(viewer, SWT.NONE); tvColumn.getColumn().setText("Value"); tvColumn.getColumn().setMoveable(false); tvColumn.getColumn().setWidth(200); EditingSupport editingSupport = new PropertyDataEditingSupport(viewer, viewer.getTable()); tvColumn.setEditingSupport(editingSupport); viewer.setContentProvider(new ArrayContentProvider()); viewer.setLabelProvider(new PropertyDataLabelProvider()); viewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); return viewer; }
From source file:org.csstudio.opibuilder.visualparts.ScriptsInputDialog.java
License:Open Source License
/** * Creates and configures a {@link TableViewer}. * * @param parent//from w w w . j a v a2 s. co m * The parent for the table * @return The {@link TableViewer} */ private TableViewer createScriptsTableViewer(final Composite parent) { TableViewer viewer = new TableViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.SINGLE); viewer.setContentProvider(new BaseWorkbenchContentProvider() { @SuppressWarnings("unchecked") @Override public Object[] getElements(final Object element) { return (((List<ScriptData>) element).toArray()); } }); viewer.setLabelProvider(new WorkbenchLabelProvider()); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { refreshGUIOnSelection(); } }); viewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); return viewer; }
From source file:org.csstudio.opibuilder.visualparts.WidgetsSelectDialog.java
License:Open Source License
private TableViewer createWidgetsViewer(Composite parent) { final TableViewer viewer = new TableViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.SINGLE); viewer.setContentProvider(new ArrayContentProvider()); viewer.setLabelProvider(new WidgetsListLableProvider()); viewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { selectedWidget = (String) ((StructuredSelection) viewer.getSelection()).getFirstElement(); }//from ww w . ja va 2 s . c o m }); viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { okPressed(); } }); return viewer; }
From source file:org.csstudio.opibuilder.widgets.properties.ColorMapEditDialog.java
License:Open Source License
/** * Creates and configures a {@link TableViewer}. * * @param parent//from w w w.jav a2 s . com * The parent for the table * @return The {@link TableViewer} */ private TableViewer createColorListViewer(final Composite parent) { final TableViewer viewer = new TableViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.FULL_SELECTION); viewer.getTable().setLinesVisible(true); viewer.getTable().setHeaderVisible(true); final TableViewerColumn tvColumn = new TableViewerColumn(viewer, SWT.NONE); tvColumn.getColumn().setText("Value"); tvColumn.getColumn().setMoveable(false); tvColumn.getColumn().setWidth(100); tvColumn.setEditingSupport(new ValueColumnEditingSupport(viewer, viewer.getTable())); tvColumn.getColumn().addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { Table table = viewer.getTable(); int dir = table.getSortDirection(); dir = dir == SWT.UP ? SWT.DOWN : SWT.UP; viewer.getTable().setSortDirection(dir); Object[] colorTupleArray = colorList.toArray(); Arrays.sort(colorTupleArray); colorList.clear(); int i = 0; ColorTuple[] array = new ColorTuple[colorTupleArray.length]; for (Object o : colorTupleArray) { if (dir == SWT.UP) array[i++] = (ColorTuple) o; else array[colorTupleArray.length - 1 - i++] = (ColorTuple) o; } colorList.addAll(Arrays.asList(array)); viewer.refresh(); } }); final TableViewerColumn colorColumn = new TableViewerColumn(viewer, SWT.NONE); colorColumn.getColumn().setText("Color"); colorColumn.getColumn().setMoveable(false); colorColumn.getColumn().setWidth(100); colorColumn.setEditingSupport(new ColorColumnEditingSupport(viewer, viewer.getTable())); viewer.setContentProvider(new ArrayContentProvider()); viewer.setLabelProvider(new ColorListLabelProvider()); viewer.getTable().setSortColumn(tvColumn.getColumn()); viewer.getTable().setSortDirection(SWT.UP); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { refreshToolbarOnSelection(); } }); viewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); return viewer; }
From source file:org.csstudio.scan.ui.scanmonitor.GUI.java
License:Open Source License
/** Helper for creating a resizable column * @return {@link TableViewerColumn}// w ww . j a v a2 s.c o m */ private TableViewerColumn createColumn(final int column_index, final TableViewer table_viewer, final TableColumnLayout table_layout, final String header, final int width, final int weight, final CellLabelProvider label) { final TableViewerColumn view_col = new TableViewerColumn(table_viewer, 0); final TableColumn col = view_col.getColumn(); col.setText(header); col.setMoveable(true); col.setResizable(true); table_layout.setColumnData(col, new ColumnWeightData(weight, width)); view_col.setLabelProvider(label); // Sort when column header is clicked col.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { // Update sorting comparator.setColumn(column_index); // Show sort indicator table_viewer.getTable().setSortColumn(col); table_viewer.getTable().setSortDirection(comparator.getDirection()); table_viewer.refresh(); } }); return view_col; }
From source file:org.csstudio.sds.ui.internal.preferences.MaintenanceRulePathTableFieldEditor.java
License:Open Source License
/** * {@inheritDoc}/* w w w . ja va 2s . co m*/ */ @Override public void createColumns() { final TableViewer tableViewer = getTableViewer(); tableViewer.setContentProvider(new ArrayContentProvider()); TableViewerColumn tvc; tvc = new TableViewerColumn(tableViewer, SWT.NONE); tvc.getColumn().setText("R-Typ"); tvc.getColumn().setWidth(50); tvc.setLabelProvider(new ColumnLabelProvider() { /** * {@inheritDoc} */ @Override public String getText(Object element) { if (element instanceof List) { @SuppressWarnings("unchecked") List<String> parameterList = (List<String>) element; if (parameterList.size() > 1) { return parameterList.get(0); } } return super.getText(element); } }); tvc.setEditingSupport(new EditingSupport(tableViewer) { @Override protected void setValue(Object element, Object value) { @SuppressWarnings("unchecked") List<String> propertList = (List<String>) element; propertList.set(0, (String) value); tableViewer.refresh(element); } @Override protected Object getValue(Object element) { @SuppressWarnings("unchecked") List<String> propertList = (List<String>) element; return propertList.get(0); } @Override protected CellEditor getCellEditor(Object element) { return new TextCellEditor(tableViewer.getTable()); } @Override protected boolean canEdit(Object element) { return true; } }); tvc = new TableViewerColumn(tableViewer, SWT.NONE); tvc.getColumn().setText("Faceplate Path"); tvc.getColumn().setWidth(250); tvc.setLabelProvider(new ColumnLabelProvider() { /** * {@inheritDoc} */ @Override public String getText(Object element) { if (element instanceof List) { @SuppressWarnings("unchecked") List<String> propertList = (List<String>) element; if (propertList.size() > 1) { return propertList.get(1); } } return super.getText(element); } }); tvc.setEditingSupport(new EditingSupport(tableViewer) { @Override protected void setValue(Object element, Object value) { @SuppressWarnings("unchecked") List<String> propertList = (List<String>) element; switch (propertList.size()) { case 0: propertList.add(""); //$FALL-THROUGH$ case 1: propertList.add((String) value); break; default: propertList.set(1, (String) value); } tableViewer.refresh(element); } @Override protected Object getValue(Object element) { @SuppressWarnings("unchecked") List<String> propertList = (List<String>) element; String path = ""; if (propertList.size() > 1) { path = propertList.get(1); } return path; } @Override protected CellEditor getCellEditor(Object elem) { return new DialogCellEditor(tableViewer.getTable()) { @Override protected Object openDialogBox(Control cellEditorWindow) { final ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog( cellEditorWindow.getShell(), new WorkbenchLabelProvider(), new WorkbenchContentProvider()); IWorkspace workspace = ResourcesPlugin.getWorkspace(); dialog.setInput(workspace.getRoot()); dialog.setTitle("Select Maintenance Display"); dialog.setAllowMultiple(false); dialog.setBlockOnOpen(true); dialog.setMessage("Choose the Maintenance Display:"); dialog.setStatusLineAboveButtons(true); String stringValue = (String) getValue(); IResource findMember = workspace.getRoot().findMember(stringValue); dialog.setInitialSelection(findMember); dialog.setValidator(new ISelectionStatusValidator() { @Override public IStatus validate(Object[] selection) { if (selection != null && selection.length > 0) { Object object = selection[0]; if (object instanceof IFile) { return Status.OK_STATUS; } } return new Status(IStatus.ERROR, "org.csstudio.sds.ui", "Please select a SDS-File"); } }); dialog.addFilter(new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { if (element instanceof IFile) { IFile file = (IFile) element; if (file != null && file.getFileExtension() != null) { return file.getFileExtension().toLowerCase().equals("css-sds"); } return false; } return true; } }); int open = dialog.open(); switch (open) { case Window.OK: IFile firstResult = (IFile) dialog.getFirstResult(); IPath fullPath = firstResult.getFullPath(); String string = fullPath.toString(); return string; } return null; } }; } @Override protected boolean canEdit(Object element) { return true; } }); }
From source file:org.csstudio.trends.databrowser2.propsheet.TraceTableHandler.java
License:Open Source License
/** Create table columns: Auto-sizable, with label provider and editor * @param table_layout//from ww w .j a v a2 s . c o m * @param operations_manager * @param table_viewer */ public void createColumns(final TableColumnLayout table_layout, final UndoableActionManager operations_manager, final TableViewer table_viewer) { color_registry = new LocalResourceManager(JFaceResources.getResources(), table_viewer.getTable()); final Shell shell = table_viewer.getTable().getShell(); // Visible Column ---------- TableViewerColumn view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceVisibility, 45, 1); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setImage(item.isVisible() ? Activator.getDefault().getImage(Activator.ICON_CHECKED) : Activator.getDefault().getImage(Activator.ICON_UNCHECKED)); } @Override public String getToolTipText(Object element) { return Messages.TraceVisibilityTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { final int v1 = item1.isVisible() ? 1 : 0; final int v2 = item2.isVisible() ? 1 : 0; final int cmp = v1 - v2; if (cmp != 0) return cmp; return item1.getName().compareTo(item2.getName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; return new CheckboxCellEditor(((TableViewer) getViewer()).getTable()); } @Override protected Object getValue(final Object element) { return ((ModelItem) element).isVisible(); } @Override protected void setValue(final Object element, final Object value) { final ModelItem item = (ModelItem) element; final boolean visible = ((Boolean) value).booleanValue(); if (!visible && !store.getBoolean(Preferences.ALLOW_HIDE_TRACE)) { MessageDialogWithToggle md = MessageDialogWithToggle.openOkCancelConfirm(shell, Messages.HideTraceWarning, Messages.HideTraceWarningDetail, Messages.DoNotShowAgain, false, null, null); if (md.getToggleState()) store.setValue(Preferences.ALLOW_HIDE_TRACE, true); if (md.getReturnCode() != MessageDialog.OK) return; } new ChangeVisibilityCommand(operations_manager, item, visible); editing = false; } }); // Trace PV/Formula Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.ItemName, 70, 70); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getName()); } @Override public String getToolTipText(Object element) { return Messages.ItemNameTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { return item1.getName().compareTo(item2.getName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return ((ModelItem) element).getName(); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { final String new_name = value.toString().trim(); final ModelItem item = (ModelItem) element; if (new_name.equals(item.getName())) return; new ChangeNameCommand(shell, operations_manager, item, new_name); editing = false; } }); // Display Name Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceDisplayName, 70, 70); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getDisplayName()); } @Override public String getToolTipText(Object element) { return Messages.TraceDisplayNameTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { return item1.getDisplayName().compareTo(item2.getDisplayName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return ((ModelItem) element).getDisplayName(); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { final String new_name = value.toString().trim(); final ModelItem item = (ModelItem) element; if (new_name.equals(item.getDisplayName())) return; new ChangeDisplayNameCommand(operations_manager, item, new_name); editing = false; } }); // Color Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.Color, 40, 10); view_col.setLabelProvider(new ColorCellLabelProvider<ModelItem>() { @Override protected Color getColor(ModelItem item) { return color_registry.createColor(item.getColor()); } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; return new RGBCellEditor(table_viewer.getTable()); } @Override protected Object getValue(final Object element) { return ((ModelItem) element).getColor(); } @Override protected void setValue(final Object element, final Object value) { new ChangeColorCommand(operations_manager, (ModelItem) element, (RGB) value); editing = false; } }); // Selected sample time stamp and value view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.CursorTimestamp, 150, 30); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); final Optional<PlotDataItem<Instant>> sample = item.getSelectedSample(); if (sample.isPresent()) cell.setText(TimeHelper.format(sample.get().getPosition())); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(Object element) { return Messages.CursorTimestampTT; } }); view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.CursorValue, 40, 30); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); final Optional<PlotDataItem<Instant>> sample = item.getSelectedSample(); if (sample.isPresent()) { final PlotSample plot_sample = (PlotSample) sample.get(); String text = DefaultVTypeFormat.get().format(plot_sample.getVType()); final String units = item.getUnits(); if (units != null) text += " " + units; //$NON-NLS-1$ cell.setText(text); } else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(Object element) { return Messages.CursorValueTT; } }); // Scan Period Column (only applies to PVItems) ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.ScanPeriod, 70, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); if (item instanceof PVItem) cell.setText(Double.toString(((PVItem) item).getScanPeriod())); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(final Object element) { if (!(element instanceof PVItem)) return null; return Messages.ScanPeriodTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected boolean canEdit(Object element) { return element instanceof PVItem; } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected Object getValue(final Object element) { if (element instanceof PVItem) return Double.toString(((PVItem) element).getScanPeriod()); else return Messages.NotApplicable; } @Override protected void setValue(final Object element, final Object value) { if (!(element instanceof PVItem)) return; final PVItem pv = (PVItem) element; try { final double period = Double.parseDouble(value.toString().trim()); if (period != pv.getScanPeriod()) new ChangeSamplePeriodCommand(shell, operations_manager, pv, period); editing = false; } catch (NumberFormatException ex) { // Display will revert to original value return; } } }); // Buffer size Column (only applies to PVItems) ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.LiveSampleBufferSize, 70, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); if (item instanceof PVItem) cell.setText(Integer.toString(((PVItem) item).getLiveCapacity())); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(final Object element) { if (!(element instanceof PVItem)) return null; final PVItem pv = (PVItem) element; return NLS.bind(Messages.LiveBufferSizeInfoFmt, pv.getLiveCapacity(), new RelativeTime(pv.getLiveCapacity()).toString()); } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected boolean canEdit(Object element) { return element instanceof PVItem; } @Override protected Object getValue(final Object element) { if (element instanceof PVItem) return Integer.toString(((PVItem) element).getLiveCapacity()); else return Messages.NotApplicable; } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { if (!(element instanceof PVItem)) return; final PVItem pv = (PVItem) element; try { final int size = Integer.parseInt(value.toString().trim()); if (size != pv.getLiveCapacity()) new ChangeLiveCapacityCommand(shell, operations_manager, pv, size); editing = false; } catch (NumberFormatException ex) { // Display will revert to original value return; } } }); // Axis Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.Axis, 60, 30); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getAxis().getName()); } @Override public String getToolTipText(Object element) { return Messages.AxisTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { final int cmp = item1.getAxis().getName().compareTo(item2.getAxis().getName()); if (cmp != 0) return cmp; return item1.getDisplayName().compareTo(item2.getDisplayName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { // Thread-safe copy of model axes as this editor is invoked final List<AxisConfig> axes = new ArrayList<>(); @Override protected CellEditor getCellEditor(final Object element) { editing = true; final List<String> axis_names = new ArrayList<>(); axes.clear(); for (AxisConfig axis : model.getAxes()) { axes.add(axis); axis_names.add(axis.getName()); } final ComboBoxCellEditor combo = new ComboBoxCellEditor(table_viewer.getTable(), axis_names.toArray(new String[axis_names.size()]), SWT.READ_ONLY); combo.setValue(getValue(element)); return combo; } @Override protected Object getValue(final Object element) { return model.getAxisIndex(((ModelItem) element).getAxis()); } @Override protected void setValue(final Object element, final Object value) { final int axis_index = ((Integer) value).intValue(); final AxisConfig axis = axes.get(axis_index); final ModelItem item = (ModelItem) element; if (axis != item.getAxis()) new ChangeAxisCommand(operations_manager, item, axis); editing = false; } }); // Trace Type Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceType, 75, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getTraceType().toString()); } @Override public String getToolTipText(Object element) { return Messages.TraceTypeTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; final ComboBoxCellEditor combo = new ComboBoxCellEditor(table_viewer.getTable(), TraceType.getDisplayNames(), SWT.READ_ONLY); combo.setValue(getValue(element)); return combo; } @Override protected Object getValue(final Object element) { return ((ModelItem) element).getTraceType().ordinal(); } @Override protected void setValue(final Object element, final Object value) { final TraceType trace_type = TraceType.fromOrdinal(((Integer) value).intValue()); final ModelItem item = (ModelItem) element; if (trace_type != item.getTraceType()) new ChangeTraceTypeCommand(operations_manager, item, trace_type); editing = false; } }); // Line Width Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceLineWidth, 40, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(Integer.toString(item.getLineWidth())); } @Override public String getToolTipText(Object element) { return Messages.TraceLineWidthTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return Integer.toString(((ModelItem) element).getLineWidth()); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { int width; try { width = Integer.parseInt(value.toString().trim()); } catch (NumberFormatException ex) { width = 0; } final ModelItem item = (ModelItem) element; if (width != item.getLineWidth()) new ChangeLineWidthCommand(operations_manager, item, width); editing = false; } }); // Point Type Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.PointType, 75, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getPointType().toString()); } @Override public String getToolTipText(Object element) { return Messages.PointTypeTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; final ComboBoxCellEditor combo = new ComboBoxCellEditor(table_viewer.getTable(), PointType.getDisplayNames(), SWT.READ_ONLY); combo.setValue(getValue(element)); return combo; } @Override protected Object getValue(final Object element) { return ((ModelItem) element).getPointType().ordinal(); } @Override protected void setValue(final Object element, final Object value) { final PointType point_type = PointType.fromOrdinal(((Integer) value).intValue()); final ModelItem item = (ModelItem) element; if (point_type != item.getPointType()) new ChangePointTypeCommand(operations_manager, item, point_type); editing = false; } }); // Point Size Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.PointSize, 40, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(Integer.toString(item.getPointSize())); } @Override public String getToolTipText(Object element) { return Messages.PointSizeTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return Integer.toString(((ModelItem) element).getPointSize()); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { int size; try { size = Integer.parseInt(value.toString().trim()); } catch (NumberFormatException ex) { size = 0; } final ModelItem item = (ModelItem) element; if (size != item.getPointSize()) new ChangePointSizeCommand(operations_manager, item, size); editing = false; } }); // Request Type Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.RequestType, 75, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); if (item instanceof PVItem) cell.setText(((PVItem) item).getRequestType().toString()); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(Object element) { return Messages.RequestTypeTT; } }); // Edit as boolean: Raw == false, Optimized == true view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected boolean canEdit(final Object element) { return element instanceof PVItem; } @Override protected CellEditor getCellEditor(final Object element) { editing = true; return new CheckboxCellEditor(((TableViewer) getViewer()).getTable()); } @Override protected Object getValue(final Object element) { return ((PVItem) element).getRequestType() == RequestType.OPTIMIZED; } @Override protected void setValue(final Object element, final Object value) { final PVItem item = (PVItem) element; final RequestType request_type = ((Boolean) value).booleanValue() ? RequestType.OPTIMIZED : RequestType.RAW; if (request_type == RequestType.RAW && !store.getBoolean(Preferences.ALLOW_REQUEST_RAW)) { MessageDialogWithToggle md = MessageDialogWithToggle.openOkCancelConfirm(shell, Messages.RequestTypeWarning, Messages.RequestTypeWarningDetail, Messages.DoNotShowAgain, false, null, null); if (md.getToggleState()) store.setValue(Preferences.ALLOW_REQUEST_RAW, true); if (md.getReturnCode() == MessageDialog.OK) return; } new ChangeRequestTypeCommand(operations_manager, item, request_type); editing = false; } }); // Waveform Index Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.WaveformIndexCol, 40, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(Integer.toString(item.getWaveformIndex())); } @Override public String getToolTipText(Object element) { return Messages.WaveformIndexColTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return Integer.toString(((ModelItem) element).getWaveformIndex()); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { int index; try { index = Integer.parseInt(value.toString().trim()); if (index < 0) return; final ModelItem item = (ModelItem) element; if (index != item.getWaveformIndex()) new ChangeWaveformIndexCommand(operations_manager, item, index); } catch (NumberFormatException ex) { return; } finally { editing = false; } } }); ColumnViewerToolTipSupport.enableFor(table_viewer); }
From source file:org.csstudio.trends.databrowser3.propsheet.TraceTableHandler.java
License:Open Source License
/** Create table columns: Auto-sizable, with label provider and editor * @param table_layout/*from www .j av a 2 s. c o m*/ * @param operations_manager * @param table_viewer */ public void createColumns(final TableColumnLayout table_layout, final UndoableActionManager operations_manager, final TableViewer table_viewer) { color_registry = new LocalResourceManager(JFaceResources.getResources(), table_viewer.getTable()); final Shell shell = table_viewer.getTable().getShell(); // Visible Column ---------- TableViewerColumn view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceVisibility, 45, 1); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setImage(item.isVisible() ? Activator.getDefault().getImage(Activator.ICON_CHECKED) : Activator.getDefault().getImage(Activator.ICON_UNCHECKED)); } @Override public String getToolTipText(Object element) { return Messages.TraceVisibilityTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { final int v1 = item1.isVisible() ? 1 : 0; final int v2 = item2.isVisible() ? 1 : 0; final int cmp = v1 - v2; if (cmp != 0) return cmp; return item1.getName().compareTo(item2.getName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; return new CheckboxCellEditor(((TableViewer) getViewer()).getTable()); } @Override protected Object getValue(final Object element) { return ((ModelItem) element).isVisible(); } @Override protected void setValue(final Object element, final Object value) { final ModelItem item = (ModelItem) element; final boolean visible = ((Boolean) value).booleanValue(); if (!visible && prompt_for_not_visible) { if (!MessageDialog.openQuestion(shell, Messages.HideTraceWarning, Messages.HideTraceWarningDetail)) return; prompt_for_not_visible = false; } new ChangeVisibilityCommand(operations_manager, item, visible); editing = false; } }); // Trace PV/Formula Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.ItemName, 70, 70); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getName()); } @Override public String getToolTipText(Object element) { return Messages.ItemNameTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { return item1.getName().compareTo(item2.getName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return ((ModelItem) element).getName(); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { final String new_name = value.toString().trim(); final ModelItem item = (ModelItem) element; if (new_name.equals(item.getName())) return; new ChangeNameCommand(shell, operations_manager, item, new_name); editing = false; } }); // Display Name Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceDisplayName, 70, 70); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getDisplayName()); } @Override public String getToolTipText(Object element) { return Messages.TraceDisplayNameTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { return item1.getDisplayName().compareTo(item2.getDisplayName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return ((ModelItem) element).getDisplayName(); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { final String new_name = value.toString().trim(); final ModelItem item = (ModelItem) element; if (new_name.equals(item.getDisplayName())) return; new ChangeDisplayNameCommand(operations_manager, item, new_name); editing = false; } }); // Color Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.Color, 40, 10); view_col.setLabelProvider(new ColorCellLabelProvider<ModelItem>() { @Override protected Color getColor(ModelItem item) { return color_registry.createColor(SWTMediaPool.getRGB(item.getPaintColor())); } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; return new RGBCellEditor(table_viewer.getTable()); } @Override protected Object getValue(final Object element) { return ((ModelItem) element).getRGBColor(); } @Override protected void setValue(final Object element, final Object value) { new ChangeColorCommand(operations_manager, (ModelItem) element, SWTMediaPool.getJFX((RGB) value)); editing = false; } }); // Selected sample time stamp and value view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.CursorTimestamp, 150, 30); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); final Optional<PlotDataItem<Instant>> sample = item.getSelectedSample(); if (sample.isPresent()) cell.setText(TimeHelper.format(sample.get().getPosition())); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(Object element) { return Messages.CursorTimestampTT; } }); view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.CursorValue, 40, 30); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); final Optional<PlotDataItem<Instant>> sample = item.getSelectedSample(); if (sample.isPresent()) { final PlotSample plot_sample = (PlotSample) sample.get(); String text = DefaultVTypeFormat.get().format(plot_sample.getVType()); final String units = item.getUnits(); if (units != null) text += " " + units; //$NON-NLS-1$ cell.setText(text); } else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(Object element) { return Messages.CursorValueTT; } }); // Scan Period Column (only applies to PVItems) ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.ScanPeriod, 70, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); if (item instanceof PVItem) cell.setText(Double.toString(((PVItem) item).getScanPeriod())); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(final Object element) { if (!(element instanceof PVItem)) return null; return Messages.ScanPeriodTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected boolean canEdit(Object element) { return element instanceof PVItem; } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected Object getValue(final Object element) { if (element instanceof PVItem) return Double.toString(((PVItem) element).getScanPeriod()); else return Messages.NotApplicable; } @Override protected void setValue(final Object element, final Object value) { if (!(element instanceof PVItem)) return; final PVItem pv = (PVItem) element; try { final double period = Double.parseDouble(value.toString().trim()); if (period != pv.getScanPeriod()) new ChangeSamplePeriodCommand(shell, operations_manager, pv, period); editing = false; } catch (NumberFormatException ex) { // Display will revert to original value return; } } }); // Buffer size Column (only applies to PVItems) ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.LiveSampleBufferSize, 70, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); if (item instanceof PVItem) cell.setText(Integer.toString(((PVItem) item).getLiveCapacity())); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(final Object element) { if (!(element instanceof PVItem)) return null; final PVItem pv = (PVItem) element; return NLS.bind(Messages.LiveBufferSizeInfoFmt, pv.getLiveCapacity(), new RelativeTime(pv.getLiveCapacity()).toString()); } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected boolean canEdit(Object element) { return element instanceof PVItem; } @Override protected Object getValue(final Object element) { if (element instanceof PVItem) return Integer.toString(((PVItem) element).getLiveCapacity()); else return Messages.NotApplicable; } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { if (!(element instanceof PVItem)) return; final PVItem pv = (PVItem) element; try { final int size = Integer.parseInt(value.toString().trim()); if (size != pv.getLiveCapacity()) new ChangeLiveCapacityCommand(shell, operations_manager, pv, size); editing = false; } catch (NumberFormatException ex) { // Display will revert to original value return; } } }); // Axis Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.Axis, 60, 30); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getAxis().getName()); } @Override public String getToolTipText(Object element) { return Messages.AxisTT; } }); new TableColumnSortHelper<ModelItem>(table_viewer, view_col) { @Override public int compare(final ModelItem item1, final ModelItem item2) { final int cmp = item1.getAxis().getName().compareTo(item2.getAxis().getName()); if (cmp != 0) return cmp; return item1.getDisplayName().compareTo(item2.getDisplayName()); } }; view_col.setEditingSupport(new EditSupportBase(table_viewer) { // Thread-safe copy of model axes as this editor is invoked final List<AxisConfig> axes = new ArrayList<>(); @Override protected CellEditor getCellEditor(final Object element) { editing = true; final List<String> axis_names = new ArrayList<>(); axes.clear(); for (AxisConfig axis : model.getAxes()) { axes.add(axis); axis_names.add(axis.getName()); } final ComboBoxCellEditor combo = new ComboBoxCellEditor(table_viewer.getTable(), axis_names.toArray(new String[axis_names.size()]), SWT.READ_ONLY); combo.setValue(getValue(element)); return combo; } @Override protected Object getValue(final Object element) { return model.getAxisIndex(((ModelItem) element).getAxis()); } @Override protected void setValue(final Object element, final Object value) { final int axis_index = ((Integer) value).intValue(); final AxisConfig axis = axes.get(axis_index); final ModelItem item = (ModelItem) element; if (axis != item.getAxis()) new ChangeAxisCommand(operations_manager, item, axis); editing = false; } }); // Trace Type Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceType, 75, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getTraceType().toString()); } @Override public String getToolTipText(Object element) { return Messages.TraceTypeTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; final ComboBoxCellEditor combo = new ComboBoxCellEditor(table_viewer.getTable(), TraceType.getDisplayNames(), SWT.READ_ONLY); combo.setValue(getValue(element)); return combo; } @Override protected Object getValue(final Object element) { return ((ModelItem) element).getTraceType().ordinal(); } @Override protected void setValue(final Object element, final Object value) { final TraceType trace_type = TraceType.values()[(((Integer) value).intValue())]; final ModelItem item = (ModelItem) element; if (trace_type != item.getTraceType()) new ChangeTraceTypeCommand(operations_manager, item, trace_type); editing = false; } }); // Line Width Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceLineWidth, 40, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(Integer.toString(item.getLineWidth())); } @Override public String getToolTipText(Object element) { return Messages.TraceLineWidthTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return Integer.toString(((ModelItem) element).getLineWidth()); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { int width; try { width = Integer.parseInt(value.toString().trim()); } catch (NumberFormatException ex) { width = 0; } final ModelItem item = (ModelItem) element; if (width != item.getLineWidth()) new ChangeLineWidthCommand(operations_manager, item, width); editing = false; } }); // Line Style Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.TraceLineStyle, 75, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getLineStyle().toString()); } @Override public String getToolTipText(Object element) { return Messages.TraceLineStyleTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; final ComboBoxCellEditor combo = new ComboBoxCellEditor(table_viewer.getTable(), LineStyle.getDisplayNames(), SWT.READ_ONLY); combo.setValue(getValue(element)); return combo; } @Override protected Object getValue(final Object element) { return ((ModelItem) element).getLineStyle().ordinal(); } @Override protected void setValue(final Object element, final Object value) { final LineStyle line_style = LineStyle.values()[((Integer) value).intValue()]; final ModelItem item = (ModelItem) element; if (line_style != item.getLineStyle()) new ChangeLineStyleCommand(operations_manager, item, line_style); editing = false; } }); // Point Type Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.PointType, 75, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(item.getPointType().toString()); } @Override public String getToolTipText(Object element) { return Messages.PointTypeTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected CellEditor getCellEditor(final Object element) { editing = true; final ComboBoxCellEditor combo = new ComboBoxCellEditor(table_viewer.getTable(), PointType.getDisplayNames(), SWT.READ_ONLY); combo.setValue(getValue(element)); return combo; } @Override protected Object getValue(final Object element) { return ((ModelItem) element).getPointType().ordinal(); } @Override protected void setValue(final Object element, final Object value) { final PointType point_type = PointType.values()[((Integer) value).intValue()]; final ModelItem item = (ModelItem) element; if (point_type != item.getPointType()) new ChangePointTypeCommand(operations_manager, item, point_type); editing = false; } }); // Point Size Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.PointSize, 40, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(Integer.toString(item.getPointSize())); } @Override public String getToolTipText(Object element) { return Messages.PointSizeTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return Integer.toString(((ModelItem) element).getPointSize()); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { int size; try { size = Integer.parseInt(value.toString().trim()); } catch (NumberFormatException ex) { size = 0; } final ModelItem item = (ModelItem) element; if (size != item.getPointSize()) new ChangePointSizeCommand(operations_manager, item, size); editing = false; } }); // Request Type Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.RequestType, 75, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); if (item instanceof PVItem) cell.setText(((PVItem) item).getRequestType().toString()); else cell.setText(Messages.NotApplicable); } @Override public String getToolTipText(Object element) { return Messages.RequestTypeTT; } }); // Edit as boolean: Raw == false, Optimized == true view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected boolean canEdit(final Object element) { return element instanceof PVItem; } @Override protected CellEditor getCellEditor(final Object element) { editing = true; return new CheckboxCellEditor(((TableViewer) getViewer()).getTable()); } @Override protected Object getValue(final Object element) { return ((PVItem) element).getRequestType() == RequestType.OPTIMIZED; } @Override protected void setValue(final Object element, final Object value) { final PVItem item = (PVItem) element; final RequestType request_type = ((Boolean) value).booleanValue() ? RequestType.OPTIMIZED : RequestType.RAW; if (request_type == RequestType.RAW && prompt_for_raw_data_request) { if (!MessageDialog.openQuestion(shell, Messages.RequestTypeWarning, Messages.RequestTypeWarningDetail)) return; prompt_for_raw_data_request = false; } new ChangeRequestTypeCommand(operations_manager, item, request_type); editing = false; } }); // Waveform Index Column ---------- view_col = TableHelper.createColumn(table_layout, table_viewer, Messages.WaveformIndexCol, 40, 10); view_col.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ModelItem item = (ModelItem) cell.getElement(); cell.setText(Integer.toString(item.getWaveformIndex())); } @Override public String getToolTipText(Object element) { return Messages.WaveformIndexColTT; } }); view_col.setEditingSupport(new EditSupportBase(table_viewer) { @Override protected Object getValue(final Object element) { return Integer.toString(((ModelItem) element).getWaveformIndex()); } @Override protected CellEditor getCellEditor(Object element) { editing = true; return super.getCellEditor(element); } @Override protected void setValue(final Object element, final Object value) { int index; try { index = Integer.parseInt(value.toString().trim()); if (index < 0) return; final ModelItem item = (ModelItem) element; if (index != item.getWaveformIndex()) new ChangeWaveformIndexCommand(operations_manager, item, index); } catch (NumberFormatException ex) { return; } finally { editing = false; } } }); ColumnViewerToolTipSupport.enableFor(table_viewer); }