Example usage for org.eclipse.jface.viewers TableViewerFocusCellManager TableViewerFocusCellManager

List of usage examples for org.eclipse.jface.viewers TableViewerFocusCellManager TableViewerFocusCellManager

Introduction

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

Prototype

public TableViewerFocusCellManager(TableViewer viewer, FocusCellHighlighter focusDrawingDelegate) 

Source Link

Document

Create a new manager with a default navigation strategy:
  • SWT.ARROW_UP: navigate to cell above
  • SWT.ARROW_DOWN: navigate to cell below
  • SWT.ARROW_RIGHT: navigate to next visible cell on the right
  • SWT.ARROW_LEFT: navigate to next visible cell on the left

Usage

From source file:ch.elexis.core.ui.dialogs.OrderImportDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite mainArea = new Composite(parent, SWT.NONE);
    mainArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    mainArea.setLayout(new GridLayout());

    Composite scannerArea = new Composite(mainArea, SWT.NONE);
    scannerArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    scannerArea.setLayout(new GridLayout());

    Group scannerGroup = new Group(scannerArea, SWT.NONE);
    scannerGroup.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    scannerGroup.setLayout(new GridLayout(4, false));
    scannerGroup.setText("Einlesen mit Barcode-Scanner");

    diffSpinner = new Spinner(scannerGroup, SWT.NONE);
    diffSpinner.setMinimum(DIFF_SPINNER_MIN);
    diffSpinner.setSelection(DIFF_SPINNER_DEFAULT);

    Label eanLabel = new Label(scannerGroup, SWT.NONE);
    eanLabel.setText("EAN:");
    eanText = new ElexisText(scannerGroup, SWT.NONE);
    eanText.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));

    eanText.addKeyListener(new KeyAdapter() {
        @Override//  w w  w  .  j  av  a 2s  . com
        public void keyPressed(KeyEvent e) {
            if (e.character == SWT.CR) {
                applyScanner();
            }
        }
    });

    Button button = new Button(scannerGroup, SWT.PUSH);
    button.setText("bernehmen");
    button.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            applyScanner();
        }

        public void widgetDefaultSelected(SelectionEvent e) {
            // do nothing
        }
    });

    Composite tableArea = new Composite(mainArea, SWT.NONE);
    tableArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    tableArea.setLayout(new GridLayout());

    viewer = new TableViewer(tableArea, SWT.FULL_SELECTION);
    Table table = viewer.getTable();
    table.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    table.setLinesVisible(true);
    table.setHeaderVisible(true);

    verifiedColor = table.getDisplay().getSystemColor(SWT.COLOR_DARK_GREEN);
    boldFont = createBoldFont(table.getFont());

    final TableViewerFocusCellManager mgr = new TableViewerFocusCellManager(viewer,
            new FocusCellOwnerDrawHighlighter(viewer));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(viewer) {
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && (event.keyCode == SWT.CR || event.character == ' '))
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };

    TableViewerEditor.create(viewer, mgr, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    createViewerColumns();

    viewer.setContentProvider(new ViewerContentProvider());
    viewer.setInput(this);
    viewer.setComparator(new ViewerComparator() {
        public int compare(Viewer viewer, Object e1, Object e2) {
            Artikel a1 = ((OrderElement) e1).getArticle();
            Artikel a2 = ((OrderElement) e2).getArticle();

            if (a1 != null && a2 != null) {
                return a1.getName().compareTo(a2.getName());
            }
            return 0;
        };
    });

    Composite cButtons = new Composite(mainArea, SWT.NONE);
    cButtons.setLayout(new GridLayout(2, false));
    final Button clickAllButton = new Button(cButtons, SWT.PUSH);
    clickAllButton.setText(ALLE_MARKIEREN);
    clickAllButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            boolean bv = true;
            if (clickAllButton.getText().equals(ALLE_MARKIEREN)) {
                bv = true;
                clickAllButton.setText("Alle demarkieren");
            } else {
                bv = false;
                clickAllButton.setText(ALLE_MARKIEREN);
            }

            for (OrderElement oe : orderElements) {
                oe.setVerified(bv);
            }
            viewer.refresh(true);
        }

    });
    Button importButton = new Button(cButtons, SWT.PUSH);
    GridData gd = new GridData(SWT.RIGHT, SWT.CENTER, false, false);
    importButton.setLayoutData(gd);
    importButton.setText("Lagerbestnde anpassen");
    importButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            doImport();
        }
    });
    cButtons.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    return mainArea;
}

From source file:ch.elexis.dialogs.OrderImportDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite mainArea = new Composite(parent, SWT.NONE);
    mainArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    mainArea.setLayout(new GridLayout());

    Composite scannerArea = new Composite(mainArea, SWT.NONE);
    scannerArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    scannerArea.setLayout(new GridLayout());

    Group scannerGroup = new Group(scannerArea, SWT.NONE);
    scannerGroup.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    scannerGroup.setLayout(new GridLayout(4, false));
    scannerGroup.setText("Einlesen mit Barcode-Scanner");

    diffSpinner = new Spinner(scannerGroup, SWT.NONE);
    diffSpinner.setMinimum(DIFF_SPINNER_MIN);
    diffSpinner.setSelection(DIFF_SPINNER_DEFAULT);

    Label eanLabel = new Label(scannerGroup, SWT.NONE);
    eanLabel.setText("EAN:");
    eanText = new ElexisText(scannerGroup, SWT.NONE);
    eanText.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));

    eanText.addKeyListener(new KeyAdapter() {
        @Override//from  w  ww  . j  a  va2  s  . c o m
        public void keyPressed(KeyEvent e) {
            if (e.character == SWT.CR) {
                applyScanner();
            }
        }
    });

    Button button = new Button(scannerGroup, SWT.PUSH);
    button.setText("bernehmen");
    button.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            applyScanner();
        }

        public void widgetDefaultSelected(SelectionEvent e) {
            // do nothing
        }
    });

    Composite tableArea = new Composite(mainArea, SWT.NONE);
    tableArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    tableArea.setLayout(new GridLayout());

    viewer = new TableViewer(tableArea, SWT.FULL_SELECTION);
    Table table = viewer.getTable();
    table.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    table.setLinesVisible(true);
    table.setHeaderVisible(true);

    verifiedColor = table.getDisplay().getSystemColor(SWT.COLOR_DARK_GREEN);
    boldFont = createBoldFont(table.getFont());

    final TableViewerFocusCellManager mgr = new TableViewerFocusCellManager(viewer,
            new FocusCellOwnerDrawHighlighter(viewer));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(viewer) {
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && (event.keyCode == SWT.CR || event.character == ' '))
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };

    TableViewerEditor.create(viewer, mgr, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    createViewerColumns();

    viewer.setContentProvider(new ViewerContentProvider());
    viewer.setInput(this);

    Composite cButtons = new Composite(mainArea, SWT.NONE);
    cButtons.setLayout(new GridLayout(2, false));
    final Button clickAllButton = new Button(cButtons, SWT.PUSH);
    clickAllButton.setText(ALLE_MARKIEREN);
    clickAllButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            boolean bv = true;
            if (clickAllButton.getText().equals(ALLE_MARKIEREN)) {
                bv = true;
                clickAllButton.setText("Alle demarkieren");
            } else {
                bv = false;
                clickAllButton.setText(ALLE_MARKIEREN);
            }

            for (OrderElement oe : orderElements) {
                oe.setVerified(bv);
            }
            viewer.refresh(true);
        }

    });
    Button importButton = new Button(cButtons, SWT.PUSH);
    GridData gd = new GridData(SWT.RIGHT, SWT.CENTER, false, false);
    importButton.setLayoutData(gd);
    importButton.setText("Lagerbestnde anpassen");
    importButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            doImport();
        }
    });
    cButtons.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    return mainArea;
}

From source file:com.gorillalogic.monkeyconsole.tableview.MonkeyTalkTabularEditor.java

License:Open Source License

/**
 * Creates the main window's contents/*from   w w  w . ja va  2s . c  om*/
 * 
 * @param parent
 *            the main window
 * @return Control
 */
protected Control createContents(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout(1, false));

    // Add the TableViewer
    tv = new TableViewer(composite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);

    tv.setContentProvider(new CommandContentProvider());
    tv.setInput(commands);

    table = tv.getTable();
    table.setLayoutData(new GridData(GridData.FILL_BOTH));

    TableColumnLayout layout = new TableColumnLayout();
    composite.setLayout(layout);

    // Row Number Column
    TableViewerColumn row_col = createTableViewerColumn(ROW, 100, 0);
    row_col.setLabelProvider(new RowNumberLabelProvider(commands));
    layout.setColumnData(row_col.getColumn(), new ColumnWeightData(10));

    // Component Type Column
    TableViewerColumn component_col = createTableViewerColumn(COMPONENT, 100, 1);
    component_col.setLabelProvider(new ComponentLabelProvider());
    component_col.setEditingSupport(new ComponentEditingSupport(tv, limitedComponentSet) {
        public void dataChanged() {
            MonkeyTalkTabularEditor.this.doDataChanged();
        };
    });
    layout.setColumnData(component_col.getColumn(), new ColumnWeightData(30));

    TableViewerColumn monkeyid_col = createTableViewerColumn(MONKEYID, 100, 2);
    monkeyid_col.setLabelProvider(new MonkeyidLabelProvider());
    monkeyid_col.setEditingSupport(new MonkeyidEditingSupport(tv) {
        public void dataChanged() {
            MonkeyTalkTabularEditor.this.doDataChanged();
        };
    });
    layout.setColumnData(monkeyid_col.getColumn(), new ColumnWeightData(25));

    TableViewerColumn action_col = createTableViewerColumn(ACTION, 100, 3);
    action_col.setLabelProvider(new ActionLabelProvider());
    action_col.setEditingSupport(new ActionEditingSupport(tv) {
        public void dataChanged() {
            MonkeyTalkTabularEditor.this.doDataChanged();
        };
    });
    layout.setColumnData(action_col.getColumn(), new ColumnWeightData(30));

    TableViewerColumn args_col = createTableViewerColumn(ARGS, 100, 4);
    args_col.setLabelProvider(new ArgsLabelProvider());
    args_col.setEditingSupport(new ArgsEditingSupport(tv) {
        public void dataChanged() {
            MonkeyTalkTabularEditor.this.doDataChanged();
        };
    });
    layout.setColumnData(args_col.getColumn(), new ColumnWeightData(40));

    TableViewerColumn timeout_col = createTableViewerColumn(TIMEOUT, 100, 5);
    timeout_col.setLabelProvider(new TimeoutLabelProvider());
    timeout_col.setEditingSupport(new TimeoutEditingSupport(tv) {
        public void dataChanged() {
            MonkeyTalkTabularEditor.this.doDataChanged();
        };
    });
    layout.setColumnData(timeout_col.getColumn(), new ColumnWeightData(20));

    TableViewerColumn thinktime_col = createTableViewerColumn(THINKTIME, 100, 6);
    thinktime_col.setLabelProvider(new ThinktimeLabelProvider());
    thinktime_col.setEditingSupport(new ThinktimeEditingSupport(tv) {
        public void dataChanged() {
            MonkeyTalkTabularEditor.this.doDataChanged();
        };
    });
    layout.setColumnData(thinktime_col.getColumn(), new ColumnWeightData(20));

    String extencion = FilenameUtils
            .getExtension(((FileEditorInput) this.getEditorInput()).getPath().toFile().getName());
    if (extencion.equals("mt")) {
        TableViewerColumn shouldfail_col = createTableViewerColumn(SHOULDFAIL, 100, 7);
        shouldfail_col.getColumn().setAlignment(SWT.CENTER);
        shouldfail_col.setLabelProvider(new ShouldFailLabelProvider(tv));
        shouldfail_col.setEditingSupport(new ShouldFailEditingSupport(tv) {
            public void dataChanged() {
                MonkeyTalkTabularEditor.this.doDataChanged();
            };
        });

        layout.setColumnData(shouldfail_col.getColumn(), new ColumnWeightData(15));
    }

    tv.getTable().addListener(SWT.MenuDetect, new Listener() {
        public void handleEvent(Event event) {

            if (menueventsCaught != event.time) {
                new ContextMenu(MonkeyTalkTabularEditor.this, event).show();
                menueventsCaught = event.time;
            }

        }
    });
    table.addListener(SWT.MouseDoubleClick, new Listener() {
        @Override
        public void handleEvent(Event e) {
            TableItem item = table.getItem(new Point(e.x, e.y));
            if (item == null) {

            } else { // click link case
                String comp = ((TableRow) item.getData()).getComponentType();
                if (comp != null && (comp.equalsIgnoreCase("Script") || comp.equalsIgnoreCase("Test")
                        || comp.equalsIgnoreCase("SetUp") || comp.equalsIgnoreCase("Teardown"))) {
                    try {

                        IEditorPart ieditorpart = MonkeyTalkTabularEditor.this.getEditorSite().getPage()
                                .getActiveEditor();
                        String dotMt = ".mt";
                        if (((TableRow) item.getData()).getMonkeyId().contains(".mt")
                                || ((TableRow) item.getData()).getMonkeyId().contains(".js")) {
                            dotMt = "";
                        }
                        IFile fileToBeOpened = ((IFileEditorInput) ieditorpart.getEditorInput()).getFile()
                                .getProject().getFile(((TableRow) item.getData()).getMonkeyId() + dotMt);

                        IEditorInput editorInput = new FileEditorInput(fileToBeOpened);
                        MonkeyTalkTabularEditor.this.getEditorSite().getPage().openEditor(editorInput,
                                "com.gorillalogic.monkeyconsole.editors.FoneMonkeyTestEditor");
                        commandKeyDown = false;
                    } catch (CoreException e2) {
                        // TODO Auto-generated catch block
                        e2.printStackTrace();
                    }
                }
            }

        }

    });
    table.addListener(SWT.MouseUp, new Listener() {

        @Override
        public void handleEvent(Event e) {
            TableItem item = table.getItem(new Point(e.x, e.y));
            if (item == null) {
                if (e.y < (table.getItemCount() * table.getItemHeight()) + table.getItemHeight()) {
                    appendRow();
                }
            } else { // click link case
                String comp = ((TableRow) item.getData()).getComponentType();
                if (comp != null && commandKeyDown && tv.getCell(new Point(e.x, e.y)).getColumnIndex() == 2
                        && (comp.equalsIgnoreCase("Script") || comp.equalsIgnoreCase("Test")
                                || comp.equalsIgnoreCase("Run") || comp.equalsIgnoreCase("RunWith")
                                || comp.equalsIgnoreCase("SetUp") || comp.equalsIgnoreCase("Teardown"))) {
                    try {

                        IEditorPart ieditorpart = MonkeyTalkTabularEditor.this.getEditorSite().getPage()
                                .getActiveEditor();
                        IFile fileToBeOpened = ((IFileEditorInput) ieditorpart.getEditorInput()).getFile()
                                .getProject().getFile(tv.getCell(new Point(e.x, e.y)).getText() + ".mt");

                        IEditorInput editorInput = new FileEditorInput(fileToBeOpened);
                        MonkeyTalkTabularEditor.this.getEditorSite().getPage().openEditor(editorInput,
                                "com.gorillalogic.monkeyconsole.editors.FoneMonkeyTestEditor");
                        commandKeyDown = false;
                    } catch (CoreException e2) {
                        // TODO Auto-generated catch block
                        e2.printStackTrace();
                    }
                }
            }

        }
    });
    // FOCUS TRAVERSAL
    FocusCellHighlighter highlighter = new FocusCellHighlighter(tv) {

    };

    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(tv, highlighter) {

    };

    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(tv) {
        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;
        }
    };

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

    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    table.addKeyListener(new KeyListener() {

        @Override
        public void keyPressed(KeyEvent arg0) {
            if (arg0.keyCode == SWT.CTRL || arg0.keyCode == SWT.COMMAND) {
                commandKeyDown = true;
            }

        }

        @Override
        public void keyReleased(KeyEvent arg0) {
            if (arg0.keyCode == SWT.CTRL || arg0.keyCode == SWT.COMMAND) {
                commandKeyDown = false;
            }
            if (commandKeyDown && (arg0.character == 'P' || arg0.character == 'p')) {
                if (monkeyControls.isCurrentlyConnected() && !monkeyControls.isRecordingON()
                        && getLimitedComponentSet() == null)
                    monkeyControls.startReplayRange(tv.getTable().getSelectionIndex(),
                            tv.getTable().getSelectionIndex() + tv.getTable().getSelectionCount());
            }
            System.out.println(arg0.keyCode);
            if (arg0.keyCode == SWT.DEL || arg0.keyCode == 8) {
                deleteRows(getTv().getTable().getSelectionIndices());
            }
        }

    });
    int ops = DND.DROP_COPY | DND.DROP_MOVE;
    Transfer[] transfers = new Transfer[] { TextTransfer.getInstance() };
    tv.addDropSupport(ops, transfers, new GadgetTableDropAdapter(tv));
    return composite;
}

From source file:com.hangum.tadpole.engine.sql.util.tables.TableUtil.java

License:Open Source License

/**
 * make selected single column//from w w  w .  j  a v a2 s . c  o  m
 * 
 * @param tv
 */
public static void makeSelectSingleColumn(TableViewer tv) {
    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(tv,
            new FocusCellOwnerDrawHighlighter(tv));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(tv) {
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };
    TableViewerEditor.create(tv, focusCellManager, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
}

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 w  w  .j av a 2  s  .  c o  m
    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.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  va2s . com
            }, 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.laex.cg2d.screeneditor.handlers.EditShapeIDDialog.java

License:Open Source License

/**
 * Create contents of the dialog.//from   w  w  w . j  a  v a 2s.  c  o m
 * 
 * @param parent
 *          the parent
 * @return the control
 */
@Override
protected Control createDialogArea(Composite parent) {
    setTitle("Change Shape ID");
    setMessage("Update the IDs of shapes");
    Composite area = (Composite) super.createDialogArea(parent);
    Composite container = new Composite(area, SWT.NONE);
    container.setLayout(new FillLayout(SWT.HORIZONTAL));
    container.setLayoutData(new GridData(GridData.FILL_BOTH));

    tableViewer = new TableViewer(container, SWT.BORDER | SWT.FULL_SELECTION);
    table = tableViewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    // Tab Editing of Cells.
    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(tableViewer,
            new FocusCellOwnerDrawHighlighter(tableViewer));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(tableViewer) {
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };

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

    TableViewerColumn colOldID = new TableViewerColumn(tableViewer, SWT.NONE);
    final TableColumn tblclmnOldId = colOldID.getColumn();
    tblclmnOldId.setWidth(100);
    tblclmnOldId.setText("Old ID");
    tblclmnOldId.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            tableViewer.getTable().setSortColumn(tblclmnOldId);
            tableViewer.refresh();
        }
    });

    TableViewerColumn colNewID = new TableViewerColumn(tableViewer, SWT.NONE);
    TableColumn tblclmnNewId = colNewID.getColumn();
    tblclmnNewId.setWidth(100);
    tblclmnNewId.setText("New ID");
    colNewID.setEditingSupport(new EditingSupport(tableViewer) {

        IDCreationStrategy ics = IDCreationStrategyFactory.getIDCreator(ScreenEditorUtil.getScreenModel());

        private boolean validate(String idToCheck) {

            // Make a copy of list to check, otherwise we will perpetually be
            // validating false
            for (InternalShapeId isi : shapeIdList) {

                boolean idUsed = ics.isIdUsed(isi.shape.getEditorShapeType(), isi.newId);

                if (idUsed) {
                    setErrorMessage("ID already exists");
                    getButton(OK).setEnabled(false);
                    return false;
                }

            }

            setErrorMessage(null);
            getButton(OK).setEnabled(true);
            return true;
        }

        @Override
        protected void setValue(Object element, Object value) {
            ((InternalShapeId) element).newId = value.toString();
            tableViewer.refresh();

            validate(value.toString());
        }

        @Override
        protected Object getValue(Object element) {
            return ((InternalShapeId) element).newId;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            TextCellEditor tce = new TextCellEditor(tableViewer.getTable());
            return tce;
        }

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }
    });

    tableViewer.setLabelProvider(new TableLabelProvider());
    tableViewer.setContentProvider(new ContentProvider());
    // tableViewer.setComparator(new Comparator());

    tableViewer.setInput(shapeIdList);
    tableViewer.refresh();

    return area;
}

From source file:com.mentor.nucleus.bp.ui.sem.viewers.SEMTableViewer.java

License:Open Source License

public SEMTableViewer(Composite parent, int style) {
    super(parent, style);
    getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    getTable().setHeaderVisible(true);/*from   w  w  w.j  a  va  2 s  .c o  m*/
    getTable().setLinesVisible(true);
    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(this,
            new SEMFocusCellHighlighter(this));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(this) {
        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;
        }
    };

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

}

From source file:com.microsoft.tfs.client.common.ui.framework.celleditor.accessibility.CellEditorAccessibility.java

License:Open Source License

public static void setupAccessibleCellEditors(final TableViewer viewer, final int flags) {
    Check.notNull(viewer, "viewer"); //$NON-NLS-1$

    try {/*  ww w.  j  ava 2  s .c  o  m*/
        final MultiRowHighlighter cellHighlighter = new MultiRowHighlighter(viewer);

        final TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer,
                cellHighlighter);

        final ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(
                viewer) {
            @Override
            protected boolean isEditorActivationEvent(final ColumnViewerEditorActivationEvent event) {
                /*
                 * Deny any cell editor activation if there are multiple
                 * rows selected.
                 */
                if (getViewer().getSelection() != null
                        && getViewer().getSelection() instanceof StructuredSelection
                        && ((StructuredSelection) getViewer().getSelection()).size() > 1) {
                    return false;
                }

                if (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                        && event.keyCode == SWT.CR) {
                    return true;
                }

                return super.isEditorActivationEvent(event);
            }
        };

        TableViewerEditor.create(viewer, focusCellManager, activationStrategy, flags);
    } catch (final Exception e) {
        log.warn("Could not configure cell editor accessibility", e); //$NON-NLS-1$
    }
}

From source file:com.spextreme.jenkins.remote.ui.ConfigurationDialog.java

License:Apache License

/**
 * Creates the section that defines items used to access and control jenkins.
 * //from   w  w w  .  j  a va  2 s  .c o  m
 * @param parent The parent composite.
 */
private void createJenkinsSection(final Composite parent) {
    final GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 1;
    final GridData gridData1 = new GridData();
    gridData1.grabExcessHorizontalSpace = true;
    gridData1.horizontalAlignment = GridData.FILL;
    gridData1.verticalAlignment = GridData.FILL;
    gridData1.grabExcessVerticalSpace = true;

    final Composite compositeTop = new Composite(parent, SWT.NONE);
    compositeTop.setLayout(gridLayout);

    mServerTableViewer = new TableViewer(compositeTop, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER);
    mServerTableViewer.setLabelProvider(new ServerLabelProvider());
    mServerTableViewer.setContentProvider(getContentProvider());
    mServerTableViewer.setSorter(new ViewerSorter());
    mServerTableViewer.getControl().setLayoutData(gridData1);
    createTableColumns(mServerTableViewer);
    createCellEditor(mServerTableViewer);

    mServerTableViewer.setInput(mConfigData.getServers());
    mServerTableViewer.getTable().pack();

    final TableViewerFocusCellManager focusManager = new TableViewerFocusCellManager(mServerTableViewer,
            new FocusCellOwnerDrawHighlighter(mServerTableViewer));

    final ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
            mServerTableViewer) {
        @Override
        protected boolean isEditorActivationEvent(final ColumnViewerEditorActivationEvent event) {
            final boolean result = (event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL)
                    || (event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION)
                    || (event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION)
                    || ((event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED)
                            && (event.keyCode == SWT.CR))
                    || (event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC);

            return result;
        }
    };
    TableViewerEditor.create(mServerTableViewer, focusManager, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    createCompositeTopButtons(compositeTop);
}