List of usage examples for org.eclipse.jface.viewers TableViewer getControl
@Override
public Control getControl()
From source file:org.csstudio.auth.ui.internal.preferences.SystemPropertiesPreferencePage.java
License:Open Source License
/** * {@inheritDoc}/*from w ww. j a va2 s .co m*/ */ @Override protected Control createContents(final Composite parent) { // We don't want Reset and Apply buttons on this preference page. // Apply does not work anyway (system properties are set during startup) // and Reset is not supported currently. noDefaultAndApplyButton(); Composite contents = new Composite(parent, SWT.NULL); GridLayout layout = new GridLayout(2, false); layout.marginHeight = 0; layout.marginWidth = 0; contents.setLayout(layout); contents.setFont(parent.getFont()); Label about = new Label(contents, SWT.WRAP); about.setText(Messages.SystemPropertiesPreferencePage_ABOUT_TEXT); GridData data = new GridData(SWT.FILL, SWT.BEGINNING, true, false, 2, 1); data.widthHint = 300; about.setLayoutData(data); final TableViewer viewer = new TableViewer(contents, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION); viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); initializeTableViewer(viewer); viewer.setContentProvider(new PropertiesContentProvider()); viewer.setLabelProvider(new PropertiesLabelProvider()); Button addButton = new Button(contents, SWT.PUSH); addButton.setText(Messages.SystemPropertiesPreferencePage_ADD_BUTTON); data = new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false); data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH); addButton.setLayoutData(data); addButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { Shell shell = e.widget.getDisplay().getActiveShell(); SystemPropertyDialog dlg = new SystemPropertyDialog(shell); if (dlg.open() == Window.OK) { SystemPropertyPreferenceEntry entry = new SystemPropertyPreferenceEntry(dlg.getKey(), dlg.getValue()); _properties.add(entry); } } }); final Button removeButton = new Button(contents, SWT.PUSH); removeButton.setText(Messages.SystemPropertiesPreferencePage_REMOVE_BUTTON); data = new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false); data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH); removeButton.setLayoutData(data); removeButton.setEnabled(false); removeButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); for (Iterator<?> i = selection.iterator(); i.hasNext();) { SystemPropertyPreferenceEntry entry = (SystemPropertyPreferenceEntry) i.next(); _properties.remove(entry); } } }); // Add a selection listener to the viewer that will enable the // "Remove" button when at least one item is selected in the table. viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(final SelectionChangedEvent event) { removeButton.setEnabled(!event.getSelection().isEmpty()); } }); _properties = new PropertiesModel(); _properties.loadFromPreferences(); viewer.setInput(_properties); return contents; }
From source file:org.csstudio.dal.ui.internal.connectionview.ConnectionStateView.java
License:Open Source License
private TableViewer createChannelTable(final Composite parent) { // define column names final String[] columnNames = new String[] { "PROP_DESCRIPTION", "PROP_NAME", "PROP_VALUE" }; //$NON-NLS-1$ //$NON-NLS-2$ // create table final Table table = new Table(parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.HIDE_SELECTION | SWT.DOUBLE_BUFFERED | SWT.SCROLL_PAGE); table.setLinesVisible(true);//from w ww.java2 s . com table.setLayoutData(LayoutUtil.createGridDataForFillingCell()); table.setHeaderVisible(true); // create viewer final TableViewer viewer = new TableViewer(table); TableViewerColumn tvColumn; tvColumn = new TableViewerColumn(viewer, SWT.NONE); tvColumn.getColumn().setText("Channel"); tvColumn.getColumn().setMoveable(false); tvColumn.getColumn().setWidth(300); tvColumn = new TableViewerColumn(viewer, SWT.NONE); tvColumn.getColumn().setText("Connection State"); tvColumn.getColumn().setMoveable(false); tvColumn.getColumn().setWidth(200); tvColumn = new TableViewerColumn(viewer, SWT.NONE); tvColumn.getColumn().setText("Latest Value"); tvColumn.getColumn().setMoveable(false); tvColumn.getColumn().setWidth(200); viewer.setUseHashlookup(true); // define column properties viewer.setColumnProperties(columnNames); // DnD ProcessVariableExchangeUtil.addProcessVariableAdressDragSupport(viewer.getControl(), DND.DROP_MOVE | DND.DROP_COPY, new IProcessVariableAdressProvider() { @Override public List<IProcessVariableAddress> getProcessVariableAdresses() { final List<IProcessVariableAddress> result = new ArrayList<IProcessVariableAddress>(); final IStructuredSelection sel = (IStructuredSelection) viewer.getSelection(); final Iterator<IProcessVariableAdressProvider> it = sel.iterator(); while (it.hasNext()) { result.add(it.next().getPVAdress()); } return result; } @Override public IProcessVariableAddress getPVAdress() { final IStructuredSelection sel = (IStructuredSelection) viewer.getSelection(); final IProcessVariableAdressProvider pvProvider = (IProcessVariableAdressProvider) sel .getFirstElement(); return pvProvider != null ? pvProvider.getPVAdress() : null; } }); return viewer; }
From source file:org.csstudio.diag.pvfields.view.PVFieldsView.java
License:Open Source License
@Override public void createPartControl(Composite parent) { if (model == null) { new Label(parent, 0).setText("Cannot initialize"); //$NON-NLS-1$ return;/*from w w w. j a v a2 s . com*/ } gui = new GUI(parent, model); cbo_name = gui.getPVViewer(); field_value = gui.getFieldViewer(); // Allow Eclipse to listen to PV selection changes final TableViewer fields_viewer = gui.getFieldsTable(); getSite().setSelectionProvider(fields_viewer); pv_name_helper = new ComboHistoryHelper(Activator.getDefault().getDialogSettings(), PV_LIST_TAG, cbo_name.getCombo(), 10, true) { @Override public void newSelection(String pv_name) { setPVName(pv_name); pv_name_helper.addEntry(pv_name); } }; field_value_helper = new ComboHistoryHelper(Activator.getDefault().getDialogSettings(), FIELD_LIST_TAG, field_value.getCombo(), 10, true) { @Override public void newSelection(String field_value) { field_value_helper.addEntry(field_value); } }; if (memento != null) { String pv_name = memento.getString(PV_TAG); String field = memento.getString(FIELD_TAG); if (field != null && field.length() > 0) field_value.getCombo().setText(field); if (pv_name != null && pv_name.length() > 0) setPVName(pv_name); } // Stop the press when we're no more cbo_name.getCombo().addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(DisposeEvent e) { pv_name_helper.saveSettings(); field_value_helper.saveSettings(); } }); final ComboViewer cbo_name = gui.getPVViewer(); pv_name_helper.loadSettings(); field_value_helper.loadSettings(); // Enable 'Drop' on to combo box (entry box) new ControlSystemDropTarget(cbo_name.getCombo(), ProcessVariable.class, String.class) { @Override public void handleDrop(final Object item) { PVFieldsView.this.handleDrop(item); } }; final Table fields_table = gui.getFieldsTable().getTable(); // Enable 'Drop' on to table. new ControlSystemDropTarget(fields_table, ProcessVariable.class, String.class) { @Override public void handleDrop(final Object item) { PVFieldsView.this.handleDrop(item); } }; // Add empty context menu so that other CSS apps can // add themselves to it final MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$ menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); Menu menu = menuMgr.createContextMenu(fields_viewer.getControl()); fields_viewer.getControl().setMenu(menu); getSite().registerContextMenu(menuMgr, fields_viewer); }
From source file:org.csstudio.diag.pvutil.view.PVUtilView.java
License:Open Source License
@Override public void createPartControl(Composite parent) { if (model == null) { new Label(parent, 0).setText("Cannot initialize"); //$NON-NLS-1$ return;// w w w . j a v a 2s . c o m } gui = new GUI(parent, model); // Allow Eclipse to listen to PV selection changes final TableViewer pv_table = gui.getPVTableViewer(); getSite().setSelectionProvider(pv_table); // Allow dragging PV names new ControlSystemDragSource(pv_table.getTable()) { @Override public Object getSelection() { final IStructuredSelection selection = (IStructuredSelection) pv_table.getSelection(); final Object[] objs = selection.toArray(); final PV[] pvs = Arrays.copyOf(objs, objs.length, PV[].class); return pvs; } }; // Enable 'Drop' final Text pv_filter = gui.getPVFilterText(); new ControlSystemDropTarget(pv_filter, ProcessVariable.class, String.class) { @Override public void handleDrop(final Object item) { if (item instanceof ProcessVariable) setPVFilter(((ProcessVariable) item).getName()); else if (item instanceof String) setPVFilter(item.toString().trim()); } }; // Add empty context menu so that other CSS apps can // add themselves to it MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$ menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); Menu menu = menuMgr.createContextMenu(pv_table.getControl()); pv_table.getControl().setMenu(menu); getSite().registerContextMenu(menuMgr, pv_table); // Add context menu to the name table. // One reason: Get object contribs for the NameTableItems. IWorkbenchPartSite site = getSite(); MenuManager manager = new MenuManager("#PopupMenu"); //$NON-NLS-1$ manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); Menu contextMenu = manager.createContextMenu(pv_table.getControl()); pv_table.getControl().setMenu(contextMenu); site.registerContextMenu(manager, pv_table); }
From source file:org.csstudio.display.pvtable.ui.PVTable.java
License:Open Source License
/** * Helper for creating context menu. Be carefull if you modify to modify the * changeContextMenu method too./* w w w. j a va 2 s. com*/ * * @param viewer * @param site */ private void createContextMenu(final TableViewer viewer, IWorkbenchPartSite site) { manager = new MenuManager(); manager.add(new SnapshotAction(viewer)); // 0 manager.add(new RestoreAction(viewer)); // 1 manager.add(new SelectAllAction(viewer)); // 2 manager.add(new DeSelectAllAction(viewer)); // 3 manager.add(new ExportXLSAction(viewer));// 4 manager.add(new Separator()); // 5 manager.add(new SnapshotCurrentSelectionAction(viewer)); // 6 manager.add(new RestoreCurrentSelectionAction(viewer)); // 7 manager.add(new Separator()); // 8 manager.add(new TimeoutAction(viewer)); // 9 manager.add(new ToleranceAction(viewer)); // 10 manager.add(new Separator()); // 11 manager.add(new InsertAction(viewer)); // 12 manager.add(new DeleteAction(viewer)); // 13 manager.add(new DeleteMeasureAction(viewer)); // 14 manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); // 15 final Control control = viewer.getControl(); menu = manager.createContextMenu(control); control.setMenu(menu); if (site != null) { site.registerContextMenu(manager, viewer); } }
From source file:org.csstudio.opibuilder.visualparts.PVTupleTableEditor.java
License:Open Source License
/** * Creates and configures a {@link TableViewer}. * * @param parent/*from w w w .ja v a 2 s . co 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.sds.ui.internal.dynamicswizard.SimpleChannelPage.java
License:Open Source License
/** * Creates a table viewer, which enables the user to enter typed input * channels.//from w w w .j a v a 2 s. c o m * * @param parent * the parent composite * * @return the created viewer */ private TableViewer createInputChannelsTable(final Composite parent) { final Group group = new Group(parent, SWT.NONE); group.setLayout(LayoutUtil.createGridLayout(1, 0, 0, 0)); group.setText("Input Channels"); group.setLayoutData(LayoutUtil.createGridDataForHorizontalFillingCell(300)); final TableViewer viewer = createChannelTable(group); // enable Tooltip support ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE); // cell modifiers final ICellModifier cellModifier = new ChannelTableCellModifier() { @Override protected void setChannelHook(final ParameterDescriptor descriptor, final String channel) { if (_isLinkOutput) { if (_dynamicsDescriptor.getOutputChannel() != null && _dynamicsDescriptor.getOutputChannel().equals(descriptor)) { _dynamicsDescriptor.getOutputChannel().setChannel(channel); } } viewer.setSelection(null); } }; viewer.setCellModifier(cellModifier); viewer.setContentProvider(new ChannelTableContentProvider()); viewer.setLabelProvider(new ChannelTableLabelProvider()); // Input aufbereiten _inputChannelTableModel = createChannelTableModel(_dynamicsDescriptor); viewer.setInput(_inputChannelTableModel); createPopupMenu(viewer.getControl()); return viewer; }
From source file:org.csstudio.sds.ui.internal.dynamicswizard.SimpleChannelPage.java
License:Open Source License
/** * Creates a table viewer for managing channels. * * @param parent//from www . ja v a2 s .c om * The parent composite. * * @return The created viewer. */ private TableViewer createChannelTable(final Composite parent) { // define column names final String[] columnNames = new String[] { "PROP_DESCRIPTION", "PROP_NAME", "PROP_VALUE" }; //$NON-NLS-1$ //$NON-NLS-2$ // create table final Table table = new Table(parent, SWT.FULL_SELECTION | SWT.HIDE_SELECTION | SWT.DOUBLE_BUFFERED | SWT.SCROLL_PAGE); table.setLinesVisible(true); table.setLayoutData(LayoutUtil.createGridDataForFillingCell()); table.setHeaderVisible(true); // create viewer final TableViewer viewer = new TableViewer(table); TableViewerColumn tvColumn; tvColumn = new TableViewerColumn(viewer, SWT.NONE); tvColumn.getColumn().setText("Description"); tvColumn.getColumn().setMoveable(false); tvColumn.getColumn().setWidth(200); tvColumn = new TableViewerColumn(viewer, SWT.NONE); tvColumn.getColumn().setText("Channel"); tvColumn.getColumn().setMoveable(false); tvColumn.getColumn().setWidth(300); EditingSupport editingSupport = new CustomEditingSupport(viewer, table, true); tvColumn.setEditingSupport(editingSupport); tvColumn = new TableViewerColumn(viewer, SWT.NONE); tvColumn.getColumn().setText("Default Value"); tvColumn.getColumn().setMoveable(false); tvColumn.getColumn().setWidth(200); editingSupport = new CustomEditingSupport(viewer, table, false); tvColumn.setEditingSupport(editingSupport); viewer.setUseHashlookup(true); // define column properties viewer.setColumnProperties(columnNames); // configure keyboard support final TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer, new FocusCellOwnerDrawHighlighter(viewer)); final ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(viewer) { @Override protected boolean isEditorActivationEvent(final ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.F2 || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TableViewerEditor.create(viewer, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); // DnD ProcessVariableExchangeUtil.addProcessVariableAddressDropSupport(viewer.getControl(), DND.DROP_MOVE | DND.DROP_COPY, new IProcessVariableAdressReceiver() { public void receive(final IProcessVariableAddress[] pvs, final DropTargetEvent event) { for (final IProcessVariableAddress pv : pvs) { addInputChannel(pv.getFullName()); } } }, new IShowControlSystemDialogStrategy() { public boolean showControlSystem(final String rawName) { // only popup the dialog if there are no aliases used // within the raw string final boolean show = ChannelReferenceValidationUtil.getRequiredAliasNames(rawName) .isEmpty(); return show; } }); ProcessVariableExchangeUtil.addProcessVariableAdressDragSupport(viewer.getControl(), DND.DROP_MOVE | DND.DROP_COPY, new IProcessVariableAdressProvider() { @Override public List<IProcessVariableAddress> getProcessVariableAdresses() { final List<ParameterDescriptor> parameterDescriptors = SelectionUtil.getInstance() .getObjectsFromSelection(viewer.getSelection()); final List<IProcessVariableAddress> result = new ArrayList<IProcessVariableAddress>(); for (final ParameterDescriptor d : parameterDescriptors) { final IProcessVariableAddress pv = ProcessVariableAdressFactory.getInstance() .createProcessVariableAdress(d.getChannel()); result.add(pv); } return result; } @Override public IProcessVariableAddress getPVAdress() { final List<IProcessVariableAddress> all = getProcessVariableAdresses(); if (all.size() > 0) { return all.get(0); } return null; } }); return viewer; }
From source file:org.csstudio.sds.ui.internal.statistics.PerformanceMeasuresView.java
License:Open Source License
/** * {@inheritDoc}// w w w .j a va 2 s.co m */ @Override public void createPartControl(final Composite parent) { parent.setLayout(LayoutUtil.createGridLayout(1, 0, 10, 10)); // create a table viewer, which displays the current measures final TableViewer measureResultsViewer = createMeasureResultsTable(parent); // create a button, which resets the statistics Button resetStatisticButton = new Button(parent, SWT.NONE); resetStatisticButton.setText("Reset"); resetStatisticButton.addMouseListener(new MouseAdapter() { @Override public void mouseDown(final MouseEvent e) { StatisticUtil.getInstance().init(); measureResultsViewer.refresh(); } }); final Display display = Display.getCurrent(); final Job job = new Job("Long Running Job") { @Override protected IStatus run(final IProgressMonitor monitor) { try { display.asyncExec(new Runnable() { public void run() { if (!measureResultsViewer.getControl().isDisposed()) { measureResultsViewer.refresh(); } } }); return Status.OK_STATUS; } finally { schedule(500); } } }; // job.setSystem(true); job.schedule(); }
From source file:org.dawnsci.commandserver.ui.dialog.PropertiesDialog.java
License:Open Source License
protected Control createDialogArea(Composite parent) { // create a composite with standard margins and spacing Composite composite = (Composite) super.createDialogArea(parent); composite.setLayout(new GridLayout(1, false)); final CLabel warning = new CLabel(composite, SWT.LEFT); warning.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); warning.setImage(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/error.png").createImage()); warning.setText("Expert queue configuration parameters, please use with caution."); TableViewer viewer = new TableViewer(composite, SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL); viewer.setUseHashlookup(true);/* ww w.j av a 2 s . co m*/ viewer.getTable().setHeaderVisible(true); viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); createColumns(viewer); viewer.setContentProvider(createContentProvider()); viewer.setInput(props); final Button adv = new Button(composite, SWT.PUSH); adv.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false)); adv.setText("Advanced..."); adv.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn(getShell(), "org.dawnsci.commandserver.ui.activemqPage", null, null); if (pref != null) pref.open(); } }); return composite; }