Example usage for org.eclipse.jface.viewers ColumnViewerEditorActivationStrategy setEnableEditorActivationWithKeyboard

List of usage examples for org.eclipse.jface.viewers ColumnViewerEditorActivationStrategy setEnableEditorActivationWithKeyboard

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ColumnViewerEditorActivationStrategy setEnableEditorActivationWithKeyboard.

Prototype

public void setEnableEditorActivationWithKeyboard(boolean enable) 

Source Link

Document

Enable activation of cell editors by keyboard

Usage

From source file:com.ibm.etools.mft.conversion.esb.editor.parameter.GlobalOptionsEditor.java

License:Open Source License

protected TableViewer createConverterSection(final ScrolledForm form, String sectionTitle, String sectionDesc,
        String[] columnHeadings, String[] columnProperties, int[] columnWidthes,
        final String classSelectionMessage, ILabelProvider labelProvider, final Class baseClass) {
    Section section = getToolkit().createSection(form.getBody(),
            Section.DESCRIPTION | Section.TITLE_BAR | Section.TWISTIE | Section.EXPANDED);
    TableWrapData td = new TableWrapData(TableWrapData.FILL_GRAB);
    td.colspan = 1;//  w ww .  j  av  a  2  s  .  com
    section.setLayoutData(td);
    section.addExpansionListener(new ExpansionAdapter() {
        public void expansionStateChanged(ExpansionEvent e) {
            form.reflow(true);
        }
    });
    section.setText(sectionTitle);
    section.setDescription(sectionDesc);
    Composite sectionClient = getToolkit().createComposite(section);
    sectionClient.setLayout(new GridLayout(2, false));
    section.setClient(sectionClient);

    final TableViewer viewer = new TableViewer(sectionClient, SWT.BORDER | SWT.FULL_SELECTION);
    viewer.getTable().setHeaderVisible(true);
    viewer.getTable().setLinesVisible(true);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.heightHint = 130;
    viewer.getControl().setLayoutData(data);
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(labelProvider);
    viewer.addDoubleClickListener(this);
    viewer.setSorter(new ViewerSorter() {
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            Converter c1 = (Converter) e1;
            Converter c2 = (Converter) e2;
            return c1.getType().compareTo(c2.getType());
        }
    });

    for (int i = 0; i < columnHeadings.length; i++) {
        TableColumn column = new TableColumn(viewer.getTable(), SWT.None);
        column.setText(columnHeadings[i]);
        column.setResizable(true);
        column.setWidth(columnWidthes[i]);
    }
    viewer.setColumnProperties(columnProperties);

    viewer.setCellEditors(
            new CellEditor[] { null, null, null, new DialogCellEditor((Composite) viewer.getControl()) {
                @Override
                protected Object openDialogBox(Control cellEditorWindow) {
                    Converter converter = (Converter) ((IStructuredSelection) viewer.getSelection())
                            .getFirstElement();
                    ClassSelectionDialog d = new ClassSelectionDialog(cellEditorWindow.getShell(),
                            (ClassDefinition) getValue(), converter.getType(), classSelectionMessage,
                            baseClass);
                    if (d.open() == ClassSelectionDialog.OK) {
                        if (d.getClazz() == null) {
                            return d.getModel();
                        }
                        if (d.getClazz().length() == 0) {
                            doSetValue(null);
                            return null;
                        }
                        ClassDefinition def = new ClassDefinition();
                        def.setResourceType(d.getResourceType());
                        def.setResourcePath(d.getResourcePath());
                        def.setClazz(d.getClazz());
                        return def;
                    }
                    return d.getModel();
                }

                protected void updateContents(Object value) {
                    if (value != null) {
                        if (value != null && value.toString().length() == 0) {
                            value = WESBConversionMessages.GlobalOptionsEditor_defaultConverter;
                        } else if (value instanceof ClassDefinition) {
                            value = ((ClassDefinition) value).getClazz();
                        }
                    } else {
                        ClassDefinition oldValue = null;
                        if (converterBeingEditted != null) {
                            oldValue = converterBeingEditted.getClazz();
                            converterBeingEditted.setClazz(null);
                        }
                        try {
                            if (converterBeingEditted instanceof PrimitiveConverter) {
                                IPrimitiveConverter ci = PrimitiveManager
                                        .getConverter(converterBeingEditted.getType(), null, getModel());
                                String s = ci.getClass().getName();
                                value = PrimitiveManager.getConverterDisplayName(s);
                            } else if (converterBeingEditted instanceof BindingConverter) {
                                IBindingConverter ci = BindingManager
                                        .getConverter(converterBeingEditted.getType(), null, getModel());
                                String s = ci.getClass().getName();
                                value = BindingManager.getConverterDisplayName(s);
                            }
                        } catch (Exception e) {
                            value = ""; //$NON-NLS-1$
                        } finally {
                            if (converterBeingEditted != null) {
                                converterBeingEditted.setClazz(oldValue);
                            }
                        }
                    }
                    super.updateContents(value);
                }
            } });
    viewer.setCellModifier(new ICellModifier() {

        @Override
        public void modify(Object element, String property, Object value) {
            TableItem ti = (TableItem) element;
            Converter c = (Converter) ti.getData();
            c.setClazz((ClassDefinition) value);
            viewer.refresh(c);
            changed();
        }

        @Override
        public Object getValue(Object element, String property) {
            Converter c = (Converter) element;
            converterBeingEditted = (Converter) element;
            return c.getClazz();
        }

        @Override
        public boolean canModify(Object element, String property) {
            if ("Converter Class".equals(property)) { //$NON-NLS-1$
                return true;
            }
            return false;
        }

    });

    FocusCellOwnerDrawHighlighter highlighter = new FocusCellOwnerDrawHighlighter(viewer);

    if (WESBConversionMessages.GlobalOptionsEditor_primitiveConverters.equals(sectionTitle))
        primitiveHighlighter = highlighter;
    else if (WESBConversionMessages.GlobalOptionsEditor_bindingConverters.equals(sectionTitle))
        bindingHighlighter = highlighter;

    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer, highlighter);

    ColumnViewerEditorActivationStrategy activationSupport = new ColumnViewerEditorActivationStrategy(viewer) {

        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {

            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };

    activationSupport.setEnableEditorActivationWithKeyboard(true);

    TableViewerEditor.create(viewer, focusCellManager, activationSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    return viewer;
}

From source file:com.ibm.etools.mft.conversion.esb.editor.parameter.SourceProjectEditor.java

License:Open Source License

@Override
public void createControls(Composite parent) {
    updateProjectsInModel();//from   w w w  .  ja v  a  2  s  .  c  om

    Composite container = new Composite(parent, SWT.None);
    container.setLayout(new GridLayout(2, false));
    container.setLayoutData(new GridData(GridData.FILL_BOTH));
    rootComposite = container;

    importLink = new Link(container, SWT.None);
    importLink.setText(WESBConversionMessages.SourceProjectEditor_importLink);
    GridData data = new GridData();
    data.verticalAlignment = SWT.BEGINNING;
    data.horizontalSpan = 2;
    importLink.setLayoutData(data);
    importLink.addSelectionListener(this);

    viewer = new CheckboxTreeViewer(container, SWT.BORDER | SWT.V_SCROLL | SWT.FULL_SELECTION);
    viewer.getTree().setLinesVisible(true);
    viewer.getTree().setHeaderVisible(true);
    data = new GridData(GridData.FILL_BOTH);
    data.horizontalSpan = 2;
    // data.heightHint = 200;
    viewer.getTree().setLayoutData(data);
    for (int i = 0; i < COLUMN_HEADINGS.length; i++) {
        TreeColumn column = new TreeColumn(viewer.getTree(), SWT.None);
        column.setText(COLUMN_HEADINGS[i]);
        column.setResizable(true);
        column.setWidth(WIDTHES[i]);
    }
    viewer.addCheckStateListener(this);

    viewer.setContentProvider(new WESBProjectContentProvider());
    viewer.setLabelProvider(new ProjectLabelProvider());
    CustomTextCellEditor cellEditor = new CustomTextCellEditor(viewer.getTree()) {
        @Override
        public String isValid(Object value) {
            return getErrorMessage();
        }
    };
    viewer.setCellEditors(new CellEditor[] { null, cellEditor });
    cellEditor.setValidator(new ICellEditorValidator() {
        @Override
        public String isValid(Object value) {
            return isValidTargetName(value.toString());
        }
    });

    viewer.setCellModifier(new ICellModifier() {

        @Override
        public void modify(Object element, String property, Object value) {
            IProject p = (IProject) ((TreeItem) element).getData();
            WESBProject wesbp = projectsInModel.get(p.getName());
            if (wesbp == null) {
                wesbp = new WESBProject();
                wesbp.setName(p.getName());
                getModel().getSourceProjects().add(wesbp);
                updateProjectsInModel();
            }
            if (value != null) {
                wesbp.setTargetName(value.toString());
                viewer.refresh(p);
                changed();
            }
        }

        @Override
        public Object getValue(Object element, String property) {
            IProject p = (IProject) element;
            WESBProject wesbp = projectsInModel.get(p.getName());
            if (wesbp == null) {
                return ""; //$NON-NLS-1$
            }
            String targetName = wesbp.getTargetName();
            return targetName == null ? "" : targetName; //$NON-NLS-1$
        }

        @Override
        public boolean canModify(Object element, String property) {
            projectBeingEditted = (IProject) element;
            return true;
        }
    });
    viewer.setInput(ResourcesPlugin.getWorkspace());
    viewer.setColumnProperties(PROPERTIES);

    FocusCellOwnerDrawHighlighter projectHighlighter = new FocusCellOwnerDrawHighlighter(viewer);

    TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(viewer, projectHighlighter);

    ColumnViewerEditorActivationStrategy activationSupport = new ColumnViewerEditorActivationStrategy(viewer) {

        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {

            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };

    activationSupport.setEnableEditorActivationWithKeyboard(true);

    TreeViewerEditor.create(viewer, focusCellManager, activationSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    Composite container2 = new Composite(container, SWT.None);
    GridLayout layout = new GridLayout(2, false);
    layout.marginWidth = 0;
    container2.setLayout(layout);
    data = new GridData();
    data.horizontalSpan = 2;
    data.horizontalIndent = 0;
    container2.setLayoutData(data);

    selectAll = new Button(container2, SWT.NONE);
    selectAll.setText(WESBConversionMessages.projectSelectionPage_SelectAll);
    data = new GridData();
    data.horizontalAlignment = SWT.BEGINNING;
    selectAll.setLayoutData(data);
    selectAll.addSelectionListener(this);

    deselectAll = new Button(container2, SWT.NONE);
    deselectAll.setText(WESBConversionMessages.projectSelectionPage_DeselectAll);
    data = new GridData();
    data.horizontalAlignment = SWT.BEGINNING;
    deselectAll.setLayoutData(data);
    deselectAll.addSelectionListener(this);

    includeReferencedProjectOption = new Button(container, SWT.CHECK);
    includeReferencedProjectOption
            .setText(WESBConversionMessages.projectSelectionPage_IncludeReferencedProject);
    includeReferencedProjectOption
            .setSelection(getModel().getGlobalConfiguration().isIncludeReferencedProject());

    updateViewer();

    if (includeReferencedProjectOption.getSelection()) {
        ensureAllReferencedProjectsAreChecked();
        updateModel();
    }

    includeReferencedProjectOption.addSelectionListener(this);
    ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);

}

From source file:com.maccasoft.composer.MusicEditor.java

License:Open Source License

void createMusicViewer(Composite parent) {
    Group group = new Group(parent, SWT.NONE);
    group.setText("Pattern");
    group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    group.setLayout(new GridLayout(1, false));

    final Font font;
    if ("win32".equals(SWT.getPlatform())) {
        font = new Font(Display.getDefault(), "Courier New", 10, SWT.NONE);
    } else {/*w ww  .j  ava  2 s .  co  m*/
        font = new Font(Display.getDefault(), "mono", 10, SWT.NONE);
    }

    GC gc = new GC(group);
    gc.setFont(font);
    FontMetrics fontMetrics = gc.getFontMetrics();
    gc.dispose();

    Grid table = new Grid(group, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
    table.setHeaderVisible(true);
    table.setLinesVisible(false);
    table.setRowHeaderVisible(true);
    table.setItemHeaderWidth(Dialog.convertWidthInCharsToPixels(fontMetrics, 6));
    table.setCellSelectionEnabled(true);
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    table.setFont(font);

    table.addDisposeListener(new DisposeListener() {

        @Override
        public void widgetDisposed(DisposeEvent e) {
            font.dispose();
        }
    });

    viewer = new GridTableViewer(table);

    ObservableListContentProvider contentProvider = new ObservableListContentProvider() {

        @Override
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            if (oldInput != null) {
                ((IObservableList) oldInput).removeListChangeListener(listChangeListener);
            }
            if (newInput != null) {
                ((IObservableList) newInput).addListChangeListener(listChangeListener);
            }
            Display.getDefault().timerExec(0, rowBackgroundUpdateRunnable);
            super.inputChanged(viewer, oldInput, newInput);
        }
    };
    viewer.setContentProvider(contentProvider);

    viewer.setRowHeaderLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            int index = ((IObservableList) viewer.getInput()).indexOf(cell.getElement());
            cell.setText(String.format("%02X", index));
        }
    });

    for (int ch = 0; ch < Project.channelLabels.length; ch++) {
        final int channel = ch;

        GridColumnGroup columnGroup = new GridColumnGroup(table, SWT.NONE);
        columnGroup.setText(Project.channelLabels[ch]);

        GridColumn column = new GridColumn(columnGroup, SWT.CENTER);
        column.setText("Note");
        column.setWidth(Dialog.convertWidthInCharsToPixels(fontMetrics, 6));
        GridViewerColumn viewerColumn = new GridViewerColumn(viewer, column);
        viewerColumn.setLabelProvider(new CellLabelProvider() {

            @Override
            public void update(ViewerCell cell) {
                SongRow element = (SongRow) cell.getElement();
                cell.setText(element.getNote(channel));
            }
        });
        viewerColumn.setEditingSupport(new TextEditingSupport(viewer) {

            @Override
            protected Object getValue(Object element) {
                return ((SongRow) element).getNote(channel);
            }

            @Override
            protected void setValue(Object element, Object value) {
                ((SongRow) element).setNote(channel, value.toString());
                viewer.update(element, null);
            }
        });

        column = new GridColumn(columnGroup, SWT.CENTER);
        column.setText("Ins.");
        column.setWidth(Dialog.convertWidthInCharsToPixels(fontMetrics, 6));
        viewerColumn = new GridViewerColumn(viewer, column);
        viewerColumn.setLabelProvider(new CellLabelProvider() {

            @Override
            public void update(ViewerCell cell) {
                SongRow element = (SongRow) cell.getElement();
                String value = element.getInstrument(channel);
                cell.setText(value);
                if (project.getInstrument(value) == null) {
                    cell.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_RED));
                } else {
                    cell.setForeground(null);
                }
            }
        });
        viewerColumn.setEditingSupport(new TextEditingSupport(viewer) {

            @Override
            protected Object getValue(Object element) {
                return ((SongRow) element).getInstrument(channel);
            }

            @Override
            protected void setValue(Object element, Object value) {
                ((SongRow) element).setInstrument(channel, value.toString());
                viewer.update(element, null);
            }
        });

        column = new GridColumn(columnGroup, SWT.CENTER);
        column.setText("Fx1");
        column.setWidth(Dialog.convertWidthInCharsToPixels(fontMetrics, 6));
        viewerColumn = new GridViewerColumn(viewer, column);
        viewerColumn.setLabelProvider(new CellLabelProvider() {

            @Override
            public void update(ViewerCell cell) {
                SongRow element = (SongRow) cell.getElement();
                String value = element.getFx1(channel);
                cell.setText(value);
                if (value.startsWith("TR") && project.getInstrument(element.getInstrument(channel)) == null) {
                    cell.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_RED));
                } else {
                    cell.setForeground(null);
                }
            }
        });
        viewerColumn.setEditingSupport(new TextEditingSupport(viewer) {

            @Override
            protected Object getValue(Object element) {
                return ((SongRow) element).getFx1(channel);
            }

            @Override
            protected void setValue(Object element, Object value) {
                ((SongRow) element).setFx1(channel, value.toString());
                viewer.update(element, null);
            }
        });

        column = new GridColumn(columnGroup, SWT.CENTER);
        column.setText("Fx2");
        column.setWidth(Dialog.convertWidthInCharsToPixels(fontMetrics, 6));
        viewerColumn = new GridViewerColumn(viewer, column);
        viewerColumn.setLabelProvider(new CellLabelProvider() {

            @Override
            public void update(ViewerCell cell) {
                SongRow element = (SongRow) cell.getElement();
                String value = element.getFx2(channel);
                cell.setText(value);
                if (value.startsWith("TR") && project.getInstrument(element.getInstrument(channel)) == null) {
                    cell.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_RED));
                } else {
                    cell.setForeground(null);
                }
            }
        });
        viewerColumn.setEditingSupport(new TextEditingSupport(viewer) {

            @Override
            protected Object getValue(Object element) {
                return ((SongRow) element).getFx2(channel);
            }

            @Override
            protected void setValue(Object element, Object value) {
                ((SongRow) element).setFx2(channel, value.toString());
                viewer.update(element, null);
            }
        });
    }

    table.addKeyListener(new NoteKeyListener(viewer) {

        @Override
        protected int getOctave() {
            return octave.getSelection();
        }

        @Override
        protected String getInstrument() {
            IStructuredSelection selection = instrumentToolBar.getStructuredSelection();
            String id = project.getInstrumentId((Instrument) selection.getFirstElement());
            return id != null ? id : super.getInstrument();
        }
    });

    ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(viewer) {

        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.character == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };
    activationStrategy.setEnableEditorActivationWithKeyboard(true);

    GridViewerEditor.create(viewer, activationStrategy, ColumnViewerEditor.TABBING_HORIZONTAL
            | ColumnViewerEditor.KEYBOARD_ACTIVATION | GridViewerEditor.SELECTION_FOLLOWS_EDITOR);
}

From source file:de.unistuttgart.ipvs.pmp.editor.ui.editors.internals.localetable.LocaleTable.java

License:Apache License

/**
 * Creates a new locale table. This table shows all available names,
 * descriptions or change descriptions and their locale.
 * /*from  w  w  w .  j a v a 2 s  .  co m*/
 * @param parent
 *            Parent widget, to which this table should be added
 * @param data
 *            Data, from which the information will be loaded and written
 *            into
 * @param type
 *            Type of data, that should be shown.<br />
 *            <b>Warning:</b> If type is set to {@code CHANGE_DESCRIPTION}, {@code data} has to of type
 *            {@code RGISPrivacySetting}.
 *            Otherwise this table will throw {@code ClassCastException}s
 *            while user interaction!
 * @param tableAction
 *            Action, that will be initated when the data in this table was
 *            changed by the user
 * @param toolkit
 *            SWT-Toolkit
 */
public LocaleTable(Composite parent, IBasicIS data, Type type, ILocaleTableAction tableAction,
        FormToolkit toolkit) {
    this.data = data;
    this.type = type;
    this.tableAction = tableAction;

    // Create grid for storing the table and buttons
    this.outerCompo = toolkit.createComposite(parent);
    this.outerCompo.setLayout(new GridLayout(2, false));

    // Set layout so that the table uses the whole width
    GridData tableLayout = new GridData();
    tableLayout.horizontalAlignment = GridData.FILL;
    tableLayout.verticalAlignment = GridData.FILL;
    tableLayout.grabExcessHorizontalSpace = true;
    tableLayout.grabExcessVerticalSpace = true;

    // Workaround for SWT-Bug
    // (https://bugs.eclipse.org/bugs/show_bug.cgi?id=215997)
    tableLayout.widthHint = 1;

    Composite tableCompo = toolkit.createComposite(this.outerCompo);
    tableCompo.setLayoutData(tableLayout);
    TableColumnLayout columnLayout = new TableColumnLayout();
    tableCompo.setLayout(columnLayout);

    this.tableViewer = new TableViewer(tableCompo, SWT.BORDER | SWT.FULL_SELECTION);
    Table table = this.tableViewer.getTable();
    table.setLayoutData(tableLayout);
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    createColumns(columnLayout);

    // Add decoration
    this.tableDec = new ControlDecoration(this.tableViewer.getControl(), SWT.TOP | SWT.LEFT);
    this.tableDec.setImage(Images.IMG_DEC_FIELD_ERROR);
    if (data != null) {
        validate();
    }

    // Add keyboard navigation
    ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(
            this.tableViewer) {

        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            // Editing is enabled as before but also by pressing enter
            boolean activateByKey = event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                    && event.keyCode == KeyLookupFactory.getDefault().formalKeyLookup(IKeyLookup.ENTER_NAME);
            return super.isEditorActivationEvent(event) || activateByKey;
        }

    };

    activationStrategy.setEnableEditorActivationWithKeyboard(true);

    FocusCellHighlighter highlighter = new FocusCellOwnerDrawHighlighter(this.tableViewer);
    TableViewerFocusCellManager focusManager = new TableViewerFocusCellManager(this.tableViewer, highlighter);

    TableViewerEditor.create(this.tableViewer, focusManager, activationStrategy,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    // Add table sorter
    this.tableViewer.setSorter(new ViewerSorter());

    // But data into table if set
    this.tableViewer.setContentProvider(new ListContentProvider());
    setData(data);

    // Add tooltip listener
    TooltipTableListener tooltipListener = new TooltipTableListener(this.tableViewer, parent.getShell());
    this.tableViewer.getTable().addListener(SWT.Dispose, tooltipListener);
    this.tableViewer.getTable().addListener(SWT.KeyDown, tooltipListener);
    this.tableViewer.getTable().addListener(SWT.MouseMove, tooltipListener);
    this.tableViewer.getTable().addListener(SWT.MouseHover, tooltipListener);

    // Add buttons
    createButtons(toolkit);

}

From source file:org.eclipse.jface.snippets.viewers.Snippet060TextCellEditorWithContentProposal.java

License:Open Source License

public Snippet060TextCellEditorWithContentProposal(Shell shell) {
    final TableViewer viewer = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
    final Table table = viewer.getTable();
    table.setLinesVisible(true);/*w ww  .jav  a 2s  .c  o m*/
    table.setHeaderVisible(true);

    final TableViewerColumn colorColumn = new TableViewerColumn(viewer, SWT.LEFT);
    colorColumn.getColumn().setText("Color name");
    colorColumn.getColumn().setWidth(200);
    colorColumn.setLabelProvider(new ColumnLabelProvider());
    colorColumn.setEditingSupport(new ColorNameEditingSupport(viewer));

    viewer.setContentProvider(new ArrayContentProvider());

    ColumnViewerEditorActivationStrategy activationSupport = new ColumnViewerEditorActivationStrategy(viewer) {
        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == KeyLookupFactory.getDefault()
                                    .formalKeyLookup(IKeyLookup.ENTER_NAME));
        }
    };
    activationSupport.setEnableEditorActivationWithKeyboard(true);

    /*
     * Without focus highlighter, keyboard events will not be delivered to
     * ColumnViewerEditorActivationStragety#isEditorActivationEvent(...) (see above)
     */
    FocusCellHighlighter focusCellHighlighter = new FocusCellOwnerDrawHighlighter(viewer);
    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer,
            focusCellHighlighter);

    TableViewerEditor.create(viewer, focusCellManager, activationSupport,
            ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    viewer.setInput(createModel());
}

From source file:org.sonar.ide.eclipse.ui.internal.wizards.associate.ConfigureProjectsPage.java

License:Open Source License

private ColumnViewerEditorActivationStrategy createActivationSupport() {
    ColumnViewerEditorActivationStrategy activationSupport = new ColumnViewerEditorActivationStrategy(viewer) {
        @Override/*from w w  w.j  av  a  2  s.  c om*/
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC
                    || event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == KeyLookupFactory.getDefault()
                                    .formalKeyLookup(IKeyLookup.F2_NAME);
        }
    };
    activationSupport.setEnableEditorActivationWithKeyboard(true);
    return activationSupport;
}

From source file:org.sonarlint.eclipse.ui.internal.bind.BindProjectsPage.java

License:Open Source License

private ColumnViewerEditorActivationStrategy createActivationSupport() {
    ColumnViewerEditorActivationStrategy activationSupport = new ColumnViewerEditorActivationStrategy(viewer) {
        @Override/*from   w ww.j  a v a  2s  .c  om*/
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == KeyLookupFactory.getDefault()
                                    .formalKeyLookup(IKeyLookup.F2_NAME));
        }
    };
    activationSupport.setEnableEditorActivationWithKeyboard(true);
    return activationSupport;
}

From source file:org.switchyard.tools.ui.editor.diagram.binding.AdvancedBindingPropertyTable.java

License:Open Source License

AdvancedBindingPropertyTable(Composite parent, int style, DataBindingContext context) {
    super(parent, style);
    this._changeListeners = new ListenerList();

    final GridLayout gridLayout = new GridLayout();
    gridLayout.marginWidth = 0;//  ww w  . j a va  2s. co m
    gridLayout.marginHeight = 0;
    gridLayout.numColumns = 2;
    setLayout(gridLayout);

    _propertyTreeTable = new TableViewer(this, SWT.BORDER | SWT.V_SCROLL | SWT.FULL_SELECTION);
    GridData gd11 = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 2);
    gd11.heightHint = 100;
    _propertyTreeTable.getTable().setLayoutData(gd11);
    _propertyTreeTable.getTable().setHeaderVisible(true);
    TableViewerColumn nameColumn = new TableViewerColumn(_propertyTreeTable, SWT.LEFT);
    nameColumn.getColumn().setText(Messages.label_name);
    nameColumn.getColumn().setWidth(200);

    TableViewerColumn valueColumn = new TableViewerColumn(_propertyTreeTable, SWT.LEFT);
    valueColumn.getColumn().setText(Messages.label_value);
    valueColumn.getColumn().setWidth(200);
    valueColumn.setEditingSupport(new PropertyValueEditingSupport(_propertyTreeTable, context));

    FocusCellOwnerDrawHighlighter h = new FocusCellOwnerDrawHighlighter(_propertyTreeTable) {

        protected Color getSelectedCellBackgroundColorNoFocus(ViewerCell cell) {
            return Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
        }

        protected Color getSelectedCellForegroundColorNoFocus(ViewerCell cell) {
            return Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_FOREGROUND);
        }
    };

    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(_propertyTreeTable, h);
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
            _propertyTreeTable) {
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };
    actSupport.setEnableEditorActivationWithKeyboard(true);

    TableViewerEditor.create(_propertyTreeTable, focusCellManager, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    // This really just gets the traverse events for the TABLE itself.  If there is an active cell editor, this doesn't see anything.
    _propertyTreeTable.getControl().addTraverseListener(new TraverseListener() {
        public void keyTraversed(TraverseEvent e) {
            if (e.detail == SWT.TRAVERSE_RETURN) {
                // edit first column of selected row
                if (!_propertyTreeTable.isCellEditorActive()) {
                    IStructuredSelection ssel = (IStructuredSelection) _propertyTreeTable.getSelection();
                    if (ssel != null && !ssel.isEmpty()) {
                        _propertyTreeTable.editElement(ssel.getFirstElement(), 1);
                    }
                }
            }
        }
    });
    _propertyTreeTable.setComparator(new PropertyObjectViewerComparator());

    _propertyTreeTable.setColumnProperties(TREE_COLUMNS);

    _propertyTreeTable.setLabelProvider(new PropertyTreeLabelProvider());

    _propertyTreeTable.setContentProvider(new PropertyTreeContentProvider());
}