Example usage for org.eclipse.jface.viewers TableViewer getTable

List of usage examples for org.eclipse.jface.viewers TableViewer getTable

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TableViewer getTable.

Prototype

public Table getTable() 

Source Link

Document

Returns this table viewer's table control.

Usage

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;
}