Example usage for org.eclipse.jface.viewers ColumnViewerEditor DEFAULT

List of usage examples for org.eclipse.jface.viewers ColumnViewerEditor DEFAULT

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ColumnViewerEditor DEFAULT.

Prototype

int DEFAULT

To view the source code for org.eclipse.jface.viewers ColumnViewerEditor DEFAULT.

Click Source Link

Document

Tabbing from cell to cell is turned off

Usage

From source file:com.keba.tracecompass.jitter.ui.SystemJitterView.java

License:Open Source License

private void createIntervalFilterTable() {
    fIntervalFilterTableViewer = new TableViewer(fTabs,
            SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
    fIntervalFilterTableViewer.setContentProvider(ArrayContentProvider.getInstance());
    fIntervalFilterTableViewer.getTable().setHeaderVisible(true);

    TableViewerFocusCellManager tvfcm = new TableViewerFocusCellManager(fIntervalFilterTableViewer,
            new FocusCellOwnerDrawHighlighter(fIntervalFilterTableViewer));
    TableViewerEditor.create(fIntervalFilterTableViewer, tvfcm,
            new ColumnViewerEditorActivationStrategy(fIntervalFilterTableViewer) {
                protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
                    return event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION;
                }// w  ww.j  a  v  a2 s  .  c o  m
            }, ColumnViewerEditor.DEFAULT);

    final String[] columnProperties = { "Name", "1st event filter", "2nd event filter" };
    fIntervalFilterTableViewer.setColumnProperties(columnProperties);

    CellEditor[] editors = { new TextCellEditor(fIntervalFilterTableViewer.getTable()), null, null };
    fIntervalFilterTableViewer.setCellEditors(editors);
    fIntervalFilterTableViewer.setCellModifier(new ICellModifier() {

        @Override
        public void modify(Object element, String property, Object value) {
            if (element != null && element instanceof TableItem) {
                IntervalFilterSetting ival = (IntervalFilterSetting) ((TableItem) element).getData();
                ival.name = (String) value;
            }
            fIntervalFilterTableViewer.refresh();
        }

        @Override
        public Object getValue(Object element, String property) {
            if (element != null && element instanceof IntervalFilterSetting) {
                IntervalFilterSetting ival = (IntervalFilterSetting) element;
                return ival.name;
            }
            return "";
        }

        @Override
        public boolean canModify(Object element, String property) {
            if (property.equals(columnProperties[0]))
                return true;
            return false;
        }
    });

    fIntervalFilterTableViewer.getTable().addListener(SWT.MouseDoubleClick, new SetEventFilterListener());

    TableViewerColumn colName = new TableViewerColumn(fIntervalFilterTableViewer, SWT.NONE);
    colName.getColumn().setWidth(200);
    colName.getColumn().setText(columnProperties[0]);
    colName.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element != null && element instanceof IntervalFilterSetting) {
                IntervalFilterSetting ival = (IntervalFilterSetting) element;
                return (ival.name == null || ival.name.equals("")) ? "Set name ..." : ival.name;
            }

            return "";
        }
    });

    TableViewerColumn colBeginFilter = new TableViewerColumn(fIntervalFilterTableViewer, SWT.NONE);
    colBeginFilter.getColumn().setWidth(200);
    colBeginFilter.getColumn().setText(columnProperties[TAB_INTERVAL_INDEX]);
    colBeginFilter.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element != null && element instanceof IntervalFilterSetting) {
                IntervalFilterSetting ival = (IntervalFilterSetting) element;
                return (ival.beginFilter == null) ? "No filter set." : ival.beginFilter.toString();
            }

            return "";
        }
    });

    TableViewerColumn colEndFilter = new TableViewerColumn(fIntervalFilterTableViewer, SWT.NONE);
    colEndFilter.getColumn().setWidth(200);
    colEndFilter.getColumn().setText(columnProperties[TAB_FILTER_INDEX]);
    colEndFilter.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element != null && element instanceof IntervalFilterSetting) {
                IntervalFilterSetting ival = (IntervalFilterSetting) element;
                return (ival.endFilter == null) ? "No filter set." : ival.beginFilter.toString();
            }

            return "";
        }
    });
}

From source file:com.nokia.carbide.cpp.internal.sdk.ui.SDKPreferencePage.java

License:Open Source License

private void createSDKTable() {
    Table table = sdkListTableViewer.getTable();
    table.setHeaderVisible(true);//from w w  w  .ja  va2  s . c  o  m
    table.setLinesVisible(false);

    SDKViewerStrategy strategy = new SDKViewerStrategy(sdkListTableViewer);
    TableViewerEditor.create(sdkListTableViewer, strategy, ColumnViewerEditor.DEFAULT);

    TableViewerColumn enabledCol = new TableViewerColumn(sdkListTableViewer, SWT.LEFT);
    enabledCol.getColumn().setText(Messages.getString("SDKPreferencePage.SDK_Table_Enabled_Column_Label")); //$NON-NLS-1$
    enabledCol.getColumn().setWidth(50);

    TableViewerColumn idCol = new TableViewerColumn(sdkListTableViewer, SWT.LEFT);
    idCol.setEditingSupport(new IdEditingSupport(sdkListTableViewer)); //$NON-NLS-1$
    idCol.getColumn().setText(Messages.getString("SDKPreferencePage.SDK_Table_ID_Column_Label"));
    idCol.getColumn().setWidth(160);

    TableViewerColumn locationCol = new TableViewerColumn(sdkListTableViewer, SWT.LEFT);
    locationCol.setEditingSupport(new LocationEditingSupport(sdkListTableViewer));
    locationCol.getColumn().setText(Messages.getString("SDKPreferencePage.SDK_Table_Location_Column_Label")); //$NON-NLS-1$
    locationCol.getColumn().setWidth(170);
}

From source file:com.nokia.carbide.remoteconnections.view.ConnectionsView.java

License:Open Source License

public void createPartControl(Composite parent) {
    viewer = new TreeViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL);

    TreeViewerColumn nameColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    nameColumn.setLabelProvider(new TreeColumnViewerLabelProvider(new NameLabelProvider()));
    nameColumn.getColumn().setText(Messages.getString("ConnectionsView.NameColumnHeader")); //$NON-NLS-1$
    nameColumn.setEditingSupport(new NameEditingSupport(nameColumn.getViewer()));
    ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(
            nameColumn.getViewer()) {/*from w ww.j  a v a2s.c  o m*/
        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };
    TreeViewerEditor.create(viewer, activationStrategy, ColumnViewerEditor.DEFAULT);

    boldViewerFont = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);

    TreeViewerColumn typeColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    typeColumn.setLabelProvider(new TypeLabelProvider());
    typeColumn.getColumn().setText(Messages.getString("ConnectionsView.TypeColumnHeader")); //$NON-NLS-1$

    TreeViewerColumn statusColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    statusColumn.setLabelProvider(new StatusLabelProvider());
    statusColumn.getColumn().setText(Messages.getString("ConnectionsView.StatusColumnHeader")); //$NON-NLS-1$

    TreeViewerColumn descriptionColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    descriptionColumn.setLabelProvider(new DescriptionLabelProvider(this, descriptionColumn));
    descriptionColumn.getColumn().setText(Messages.getString("ConnectionsView.DescriptionColumnHeader")); //$NON-NLS-1$

    viewer.setContentProvider(new TreeNodeContentProvider());
    viewer.setInput(loadConnections());
    viewer.expandAll();
    viewer.getTree().setHeaderVisible(true);
    viewer.getControl().setData(UID, "viewer"); //$NON-NLS-1$
    viewer.setSorter(new ViewerSorter() {
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            return getNodeDisplayName(e1).compareToIgnoreCase(getNodeDisplayName(e2));
        }
    });
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            enableConnectionSelectedActions(false);
            enableServiceSelectedActions(false);
            ISelection selection = event.getSelection();
            if (!selection.isEmpty()) {
                IStructuredSelection structuredSelection = (IStructuredSelection) selection;
                TreeNode treeNode = (TreeNode) structuredSelection.getFirstElement();
                Object value = treeNode.getValue();
                if (value instanceof IConnection) {
                    enableConnectionSelectedActions(true);
                } else if (value instanceof IConnectedService) {
                    enableServiceSelectedActions(true);
                }
            }
        }
    });
    viewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            ISelection selection = event.getSelection();
            if (!selection.isEmpty()) {
                IStructuredSelection structuredSelection = (IStructuredSelection) selection;
                TreeNode treeNode = (TreeNode) structuredSelection.getFirstElement();
                Object value = treeNode.getValue();
                if (value instanceof IConnection) {
                    SettingsWizard wizard = new SettingsWizard((IConnection) value);
                    wizard.open(getViewSite().getShell());
                } else if (value instanceof IConnectedService) {
                    if (RemoteConnectionsActivator.getDefault().getShouldTestServices()) {
                        IConnectedService connectedService = (IConnectedService) value;
                        connectedService.setEnabled(true);
                        connectedService.testStatus();
                        ((EnableConnectedServiceAction) getAction(ENABLE_SERVICE_ACTION)).updateLabel();
                    }
                }
            }
        }
    });

    packColumns();

    makeActions();
    hookContextMenu();
    contributeToActionBars();
    hookAccelerators();

    connectionStoreChangedListener = new IConnectionsManagerListener() {
        public void connectionStoreChanged() {
            Display.getDefault().asyncExec(new Runnable() {
                public void run() {
                    viewer.setInput(loadConnections());
                    viewer.expandAll();
                    packColumns();
                    if (viewer.getSelection().isEmpty() && viewer.getTree().getItemCount() > 0) {
                        TreeItem item = viewer.getTree().getItem(0);
                        if (item != null) {
                            viewer.getTree().select(item);
                        }
                    }
                    viewer.setSelection(viewer.getSelection()); // force selection changed
                }
            });
        }

        public void displayChanged() {
            refreshViewer();
        }
    };
    Registry.instance().addConnectionStoreChangedListener(connectionStoreChangedListener);

    connectionListener = new IConnectionListener() {

        public void currentConnectionSet(IConnection connection) {
            refreshViewer();
        }

        public void connectionRemoved(IConnection connection) {
            // presumably the viewer itself handles this...
        }

        public void connectionAdded(IConnection connection) {
            // presumably the viewer itself handles this...
        }
    };
    Registry.instance().addConnectionListener(connectionListener);

    RemoteConnectionsActivator.setHelp(parent, ".connections_view"); //$NON-NLS-1$
}

From source file:com.predic8.plugin.membrane.viewers.HeaderTableViewer.java

License:Apache License

public HeaderTableViewer(Composite parent, int style) {
    super(parent, style);

    table = getTable();/*from w  ww. j  a v a  2  s .c  o  m*/
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    TableLayout layout = new TableLayout();
    table.setLayout(layout);

    layout.addColumnData((new ColumnWeightData(1)));

    new TableColumn(table, SWT.NONE).setText("Header Name");

    layout.addColumnData((new ColumnWeightData(2)));

    new TableColumn(table, SWT.NONE).setText("Value");

    setContentProvider(new HeaderTableContentProvider());

    setLabelProvider(new HeaderTableLabelProvider());

    setColumnProperties(columnNames);

    editors = new CellEditor[] { new TextCellEditor(table), new TextCellEditor(table) };

    setCellEditors(editors);
    setCellModifier(new HeaderTableCellModifier(this));
    TableViewerEditor.create(this, new ColumnViewerEditorActivationStrategy(this) {
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    }, ColumnViewerEditor.DEFAULT);
    menuAction = new HeaderTableMenuAction(this);

    addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent e) {

            if (!(e.getSelection() instanceof IStructuredSelection))
                return;

            menuAction.setEnableRemoveAction(isHeaderField(e));
        }

        private boolean isHeaderField(SelectionChangedEvent e) {
            return ((IStructuredSelection) e.getSelection()).getFirstElement() instanceof HeaderField;
        }
    });

    addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            Object selectedItem = ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (selectedItem instanceof HeaderField) {
                HeaderTableViewer.this.editElement(selectedItem, 1);
            }
        }
    });
}

From source file:com.predic8.plugin.membrane.views.ProxiesView.java

License:Apache License

protected void addCellEditorsAndModifiersToViewer() {
    setCellEditorForTableViewer(tableViewer);
    cellEditorModifier = new ProxyNameCellEditorModifier();
    cellEditorModifier.setTableViewer(tableViewer);
    tableViewer.setCellModifier(cellEditorModifier);

    TableViewerEditor.create(tableViewer, new ColumnViewerEditorActivationStrategy(tableViewer) {
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }/*from  ww w  . j a  va2 s  .com*/
    }, ColumnViewerEditor.DEFAULT);
}

From source file:com.predic8.plugin.membrane.views.RuleStatisticsView.java

License:Apache License

private void addCellEditorsAndModifiersToViewer() {
    final CellEditor[] cellEditors = new CellEditor[1];
    cellEditors[0] = new TextCellEditor(tableViewer.getTable(), SWT.BORDER);
    tableViewer.setCellEditors(cellEditors);
    tableViewer.setColumnProperties(new String[] { "name" });

    cellEditorModifier = new RuleNameCellEditorModifier();
    cellEditorModifier.setTableViewer(tableViewer);
    tableViewer.setCellModifier(cellEditorModifier);

    TableViewerEditor.create(tableViewer, new ColumnViewerEditorActivationStrategy(tableViewer) {
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }//from  w  ww  .  ja v a2  s  .  c o m
    }, ColumnViewerEditor.DEFAULT);
}

From source file:com.predic8.plugin.membrane.views.RulesView.java

License:Apache License

private TableViewer createTableViewer(Composite composite) {
    final TableViewer tableViewer = new TableViewer(composite,
            SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
    createColumns(tableViewer);/*from w  ww .  j  a v  a2s .c o m*/
    tableViewer.setContentProvider(new RulesViewContentProvider());

    tableViewer.setLabelProvider(new RulesViewLabelProvider());

    GridData gridData = new GridData(GridData.FILL_BOTH);
    gridData.grabExcessVerticalSpace = true;
    gridData.grabExcessHorizontalSpace = true;
    tableViewer.getTable().setLayoutData(gridData);
    PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, MembraneUIPlugin.PLUGIN_ID + "RuleStatistics");

    setCellEditorForTableViewer(tableViewer);

    tableViewer.setColumnProperties(new String[] { "name" });

    cellEditorModifier = new RuleNameCellEditorModifier();
    cellEditorModifier.setTableViewer(tableViewer);
    tableViewer.setCellModifier(cellEditorModifier);

    TableViewerEditor.create(tableViewer, new ColumnViewerEditorActivationStrategy(tableViewer) {
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    }, ColumnViewerEditor.DEFAULT);

    tableViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            Object selectedItem = selection.getFirstElement();
            if (selectedItem instanceof Rule) {
                tableViewer.editElement(selectedItem, 0);
            }
        }
    });

    tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();
            if (selection == null || selection.isEmpty()) {
                controlsComposite.enableDependentButtons(false);
                return;
            }
            controlsComposite.enableDependentButtons(true);

            setSelectedRule((Rule) selection.getFirstElement());

        }

        private void setSelectedRule(Rule selectedRule) {
            removeRuleAction.setSelectedRule(selectedRule);
            editRuleAction.setSelectedRule(selectedRule);
            removeAllExchangesAction.setSelectedRule(selectedRule);
            showRuleDetailsAction.setSelectedRule(selectedRule);
            controlsComposite.setSelectedRule(selectedRule);

            updatedetailsViewIfVisible(selectedRule);
        }

    });

    return tableViewer;
}

From source file:net.karlmartens.ui.viewer.GridChooserViewer.java

License:Apache License

@Override
protected ColumnViewerEditor createViewerEditor() {
    return new GridChooserViewerEditor(this, new ColumnViewerEditorActivationStrategy(this),
            ColumnViewerEditor.DEFAULT);
}

From source file:net.leboxondelex.daplomb.ui.viewers.FileViewer.java

License:Open Source License

/**
 * Constructor.// w  w  w . j a v a 2s . co m
 * @param container
 * @param verticalIndent
 */
public FileViewer(final Composite container, int verticalIndent) {

    this.tableViewer = new TableViewer(container, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.verticalIndent = verticalIndent;
    this.tableViewer.getTable().setLayoutData(layoutData);
    this.tableViewer.getTable().setHeaderVisible(true);

    // Editing support on double-click
    TableViewerEditor.create(this.tableViewer,
            new DoubleClickColumnViewerEditorActivationStrategy(this.tableViewer), ColumnViewerEditor.DEFAULT);

    // Columns
    new TableColumn(this.tableViewer.getTable(), SWT.CENTER).setText(""); //$NON-NLS-1$
    TableViewerColumn col = new TableViewerColumn(this.tableViewer, SWT.LEFT);
    col.getColumn().setText(Messages.getString("FileViewer.2")); //$NON-NLS-1$
    col.setEditingSupport(new FileNameEditingSupport(this.tableViewer));
    col.getColumn().addListener(SWT.Selection, new Listener() {
        @Override
        public void handleEvent(Event event) {
            if (FileViewer.this.sortByName)
                switchSortingDirection();
            else
                setSortByName(true);
        }
    });

    col = new TableViewerColumn(this.tableViewer, SWT.CENTER);
    col.getColumn().setText(Messages.getString("FileViewer.3")); //$NON-NLS-1$
    col.getColumn().addListener(SWT.Selection, new Listener() {
        @Override
        public void handleEvent(Event event) {
            if (!FileViewer.this.sortByName)
                switchSortingDirection();
            else
                setSortByName(false);
        }
    });

    // Define the layout of the table
    TableLayout tlayout = new TableLayout();
    tlayout.addColumnData(new ColumnPixelData(25, true));
    tlayout.addColumnData(new ColumnWeightData(55, 300, true));
    tlayout.addColumnData(new ColumnWeightData(40, 100, true));
    this.tableViewer.getTable().setLayout(tlayout);

    // Content provider
    this.tableViewer.setContentProvider(new ArrayContentProvider());

    // Label provider
    this.tableViewer.setLabelProvider(new ITableLabelProvider() {
        @Override
        public void removeListener(ILabelProviderListener arg0) {
            // nothing
        }

        @Override
        public boolean isLabelProperty(Object arg0, String arg1) {
            return false;
        }

        @Override
        public void dispose() {
            // nothing
        }

        @Override
        public void addListener(ILabelProviderListener arg0) {
            // nothing
        }

        @Override
        public String getColumnText(Object element, int colmnIndex) {
            String result;
            if (colmnIndex == 1)
                result = ((File) element).getName();
            else {
                long size = ((File) element).length();
                result = Utils.formatFileSize(size) + Messages.getString("FileViewer.4"); //$NON-NLS-1$
            }

            return result;
        }

        @Override
        public Image getColumnImage(Object element, int colmnIndex) {
            Image result = null;
            if (colmnIndex == 0 && element instanceof File) {
                String ext = StringUtils.getFileExtension((File) element);
                result = ResourceRegistry.findFileImage(ext);
            }

            return result;
        }
    });

    // Sorter
    this.tableViewer.setSorter(new ViewerSorter() {
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {

            int result;
            boolean f1 = e1 instanceof File;
            boolean f2 = e2 instanceof File;
            if (!f1)
                result = -1;
            else if (!f2)
                result = 1;
            else {
                if (FileViewer.this.sortByName) {
                    if (FileViewer.this.sortNameAscending)
                        result = ((File) e1).getName().compareTo(((File) e2).getName());
                    else
                        result = ((File) e2).getName().compareTo(((File) e1).getName());
                } else {
                    if (FileViewer.this.sortSizeAscending)
                        result = (int) (((File) e1).length() - ((File) e2).length());
                    else
                        result = (int) (((File) e2).length() - ((File) e1).length());
                }
            }

            return result;
        }
    });

    // Filter
    this.tableViewer.addFilter(new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            boolean shown = true;
            if (!StringUtils.isEmpty(FileViewer.this.filter))
                shown = ((File) element).getName().toLowerCase().contains(FileViewer.this.filter);

            return shown;
        }
    });

    // Pop-up menu
    final IAction renameAction = new Action(Messages.getString("FileViewer.5")) { //$NON-NLS-1$
        @Override
        public void run() {
            Object o = ((IStructuredSelection) FileViewer.this.tableViewer.getSelection()).getFirstElement();
            final File imgFile = (File) o;
            if (Utils.openRenameDialog(imgFile, container.getShell()))
                FileViewer.this.tableViewer.update(imgFile, null);
        }
    };

    final IAction deleteAction = new Action(Messages.getString("FileViewer.12")) { //$NON-NLS-1$
        @Override
        public void run() {
            boolean del = Utils.showQuestion(container.getShell(), Messages.getString("FileViewer.13"), //$NON-NLS-1$
                    Messages.getString("FileViewer.14")); //$NON-NLS-1$

            Object o = ((IStructuredSelection) FileViewer.this.tableViewer.getSelection()).getFirstElement();
            final File imgFile = (File) o;
            if (del && imgFile.exists() && !imgFile.delete()) {

                StringBuilder sb = new StringBuilder();
                sb.append("Could not delete file "); //$NON-NLS-1$
                sb.append(imgFile);
                LogUtils.log(sb.toString());
            }
        }
    };

    MenuManager popupMenu = new MenuManager();
    popupMenu.add(renameAction);
    popupMenu.add(deleteAction);

    Menu menu = popupMenu.createContextMenu(this.tableViewer.getTable());
    this.tableViewer.getTable().setMenu(menu);
}

From source file:net.yatomiya.e4.ui.viewer.TableViewerColumnManager.java

License:Open Source License

public TableViewerColumnManager(TableViewer viewer) {
    this.viewer = viewer;

    propertyListenerList = new ArrayList<>();

    dataList = new ArrayList<>();

    TableViewerEditor.create(viewer, new InternalEditStrategy(viewer), ColumnViewerEditor.DEFAULT);

    final Display display = viewer.getTable().getDisplay();
    final Listener mouseListener = new Listener() {
        @Override//from w  w w  .j a  va  2s  .  c o m
        public void handleEvent(Event event) {
            if (event.widget == viewer.getTable()) {
                ViewerCell cell = viewer.getCell(new Point(event.x, event.y));
                if (cell != null) {
                    ColumnData data = dataList.get(cell.getColumnIndex());

                    boolean doRestoreSelection = false;
                    if (lastSelection != null && SelectionUtils.size(lastSelection) > 1
                            && data.editingSupport != null) {
                        for (Object e : SelectionUtils.toList(lastSelection)) {
                            if (e == cell.getElement())
                                doRestoreSelection = true;
                        }
                    }

                    if (doRestoreSelection) {
                        viewer.setSelection(lastSelection);
                    } else {
                        lastSelection = viewer.getSelection();
                    }
                }
            }
        }
    };
    display.addFilter(SWT.MouseDown, mouseListener);
    viewer.getTable().addDisposeListener(new DisposeListener() {
        @Override
        public void widgetDisposed(DisposeEvent event) {
            display.removeFilter(SWT.MouseDown, mouseListener);
        }
    });
}