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

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

Introduction

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

Prototype

public FocusCellOwnerDrawHighlighter(ColumnViewer viewer) 

Source Link

Document

Create a new instance which can be passed to a TreeViewerFocusCellManager

Usage

From source file:Snippet048TreeViewerTabWithCheckboxFor3_3.java

License:Open Source License

public Snippet048TreeViewerTabWithCheckboxFor3_3(final Shell shell) {
    final TreeViewer v = new TreeViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
    v.getTree().setLinesVisible(true);/*from  w w w .  j  av a 2  s .c  o m*/
    v.getTree().setHeaderVisible(true);

    final TreeViewerFocusCellManager mgr = new TreeViewerFocusCellManager(v,
            new FocusCellOwnerDrawHighlighter(v));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
        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;
        }
    };

    TreeViewerEditor.create(v, mgr, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    final TextCellEditor textCellEditor = new TextCellEditor(v.getTree());
    final CheckboxCellEditor checkboxCellEditor = new CheckboxCellEditor(v.getTree());

    TreeViewerColumn column = new TreeViewerColumn(v, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setMoveable(true);
    column.getColumn().setText("Column 1");
    column.setLabelProvider(new ColumnLabelProvider() {

        public String getText(Object element) {
            return "Column 1 => " + element.toString();
        }

    });
    column.setEditingSupport(new EditingSupport(v) {
        protected boolean canEdit(Object element) {
            return false;
        }

        protected CellEditor getCellEditor(Object element) {
            return textCellEditor;
        }

        protected Object getValue(Object element) {
            return ((MyModel) element).counter + "";
        }

        protected void setValue(Object element, Object value) {
            ((MyModel) element).counter = Integer.parseInt(value.toString());
            v.update(element, null);
        }
    });

    column = new TreeViewerColumn(v, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setMoveable(true);
    column.getColumn().setText("Column 2");
    column.setLabelProvider(new ColumnLabelProvider() {

        public String getText(Object element) {
            return "Column 2 => " + element.toString();
        }

    });
    column.setEditingSupport(new EditingSupport(v) {
        protected boolean canEdit(Object element) {
            return true;
        }

        protected CellEditor getCellEditor(Object element) {
            return textCellEditor;
        }

        protected Object getValue(Object element) {
            return ((MyModel) element).counter + "";
        }

        protected void setValue(Object element, Object value) {
            ((MyModel) element).counter = Integer.parseInt(value.toString());
            v.update(element, null);
        }
    });

    column = new TreeViewerColumn(v, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setMoveable(true);
    column.getColumn().setText("Column 3");
    column.setLabelProvider(new ColumnLabelProvider() {

        public String getText(Object element) {
            return ((MyModel) element).bool + "";
        }

    });
    column.setEditingSupport(new EditingSupport(v) {
        protected boolean canEdit(Object element) {
            return true;
        }

        protected CellEditor getCellEditor(Object element) {
            return checkboxCellEditor;
        }

        protected Object getValue(Object element) {
            return new Boolean(((MyModel) element).bool);
        }

        protected void setValue(Object element, Object value) {
            ((MyModel) element).bool = ((Boolean) value).booleanValue();
            v.update(element, null);
        }
    });

    v.setContentProvider(new MyContentProvider());
    v.setInput(createModel());
    v.getControl().addTraverseListener(new TraverseListener() {

        public void keyTraversed(TraverseEvent e) {
            if ((e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_TAB_PREVIOUS)
                    && mgr.getFocusCell().getColumnIndex() == 2) {
                ColumnViewerEditor editor = v.getColumnViewerEditor();
                ViewerCell cell = mgr.getFocusCell();

                try {
                    Method m = ColumnViewerEditor.class.getDeclaredMethod("processTraverseEvent",
                            new Class[] { int.class, ViewerRow.class, TraverseEvent.class });
                    m.setAccessible(true);
                    m.invoke(editor,
                            new Object[] { new Integer(cell.getColumnIndex()), cell.getViewerRow(), e });
                } catch (SecurityException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } catch (NoSuchMethodException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } catch (IllegalArgumentException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } catch (IllegalAccessException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } catch (InvocationTargetException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        }

    });
}

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//from  w  w  w.j ava2s  .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);
    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/* w  ww. j  ava2s.co 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.adobe.granite.ide.eclipse.ui.wizards.np.AdvancedSettingsComponent.java

License:Apache License

public void createAdvancedSection(Composite container) {
    Label label;//from  ww w.j a va  2  s  .  c o  m
    GridData gd;

    label = new Label(container, SWT.NULL);
    label.setText("&Version:");

    version = new Text(container, SWT.BORDER | SWT.SINGLE);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    version.setLayoutData(gd);
    version.setText("0.0.1-SNAPSHOT");
    version.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            wizardPage.dialogChanged();
        }
    });

    label = new Label(container, SWT.NULL);
    label.setText("&Package:");

    javaPackage = new Text(container, SWT.BORDER | SWT.SINGLE);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    javaPackage.setLayoutData(gd);
    javaPackageModified = false;
    javaPackage.addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {
            javaPackageModified = true;
        }
    });
    javaPackage.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            wizardPage.dialogChanged();
        }
    });

    label = new Label(container, SWT.NULL);
    gd = new GridData(SWT.LEFT, SWT.TOP, false, false);
    label.setLayoutData(gd);
    label.setText("&Parameters:");

    propertiesViewer = new TableViewer(container, SWT.BORDER | SWT.FULL_SELECTION);
    propertiesTable = propertiesViewer.getTable();
    propertiesTable.setLinesVisible(true);
    propertiesTable.setHeaderVisible(true);
    propertiesTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 2));

    CellNavigationStrategy strategy = new CellNavigationStrategy();
    TableViewerFocusCellManager focusCellMgr = new TableViewerFocusCellManager(propertiesViewer,
            new FocusCellOwnerDrawHighlighter(propertiesViewer), strategy);

    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
            propertiesViewer) {

        @Override
        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;
        }
    };
    int features = ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
            | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION
            | ColumnViewerEditor.KEEP_EDITOR_ON_DOUBLE_CLICK;
    TableViewerEditor.create(propertiesViewer, focusCellMgr, actSupport, features);

    TableColumn propertiesTableNameColumn = new TableColumn(propertiesTable, SWT.NONE);
    propertiesTableNameColumn.setWidth(180);
    propertiesTableNameColumn.setText("Name");

    TableColumn propertiesTableValueColumn = new TableColumn(propertiesTable, SWT.NONE);
    propertiesTableValueColumn.setWidth(300);
    propertiesTableValueColumn.setText("Value");

    propertiesViewer.setColumnProperties(new String[] { KEY_PROPERTY, VALUE_PROPERTY });

    propertiesViewer.setCellEditors(new CellEditor[] { null /* cannot edit the name */,
            new TextCellEditor(propertiesTable, SWT.NONE) });
    propertiesViewer.setCellModifier(new ICellModifier() {
        public boolean canModify(Object element, String property) {
            return true;
        }

        public void modify(Object element, String property, Object value) {
            if (element instanceof TableItem) {
                ((TableItem) element).setText(getTextIndex(property), String.valueOf(value));
                wizardPage.dialogChanged();
            }
        }

        public Object getValue(Object element, String property) {
            if (element instanceof TableItem) {
                return ((TableItem) element).getText(getTextIndex(property));
            }
            return null;
        }
    });

}

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

License:Open Source License

/**
 * make selected single column//  w w  w  .  j a  v a2 s.co  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  ww  .  j av  a  2 s  .  c  om*/
    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 . j av a2s  .c o m*/

    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.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;
                }//from   www. ja  va2s .c om
            }, 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./* www . ja  v a 2  s .  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.rcpcompany.uibindings.internal.ViewerBindingImpl.java

License:Open Source License

@Override
public void finish1() {
    final ColumnViewer viewer = getViewer(); // TODO SWTB
    assertTrue(viewer != null, "No viewer set"); //$NON-NLS-1$
    assertTrue(getList() != null, "No model list"); //$NON-NLS-1$
    assertTrue(!getColumns().isEmpty(), "No columns in viewer"); //$NON-NLS-1$

    final Control control = getControl();
    assertTrue((control.getStyle() & SWT.FULL_SELECTION) != 0, "Viewer must have SWT.FULL_SELECTION set"); //$NON-NLS-1$
    // SWTEventUtils.swtListen(control);

    if (viewer instanceof TableViewer) {
        final ObservableListContentProvider contentProvider = new ObservableListContentProvider();
        viewer.setContentProvider(contentProvider);
        setElements(contentProvider.getKnownElements());
    } else if (viewer instanceof TreeViewer) {
        myTreeFactory = new ViewerBindingTreeFactory(getList(), getArgument(ARG_TREE_ID, String.class, null));
        final ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(
                myTreeFactory, myTreeFactory);
        viewer.setContentProvider(contentProvider);
        myValidationLabelDecorator = new ValidationLabelDecorator();
        myValidationLabelDecorator.setPropagationAdapter(new ValidationLabelDecorator.IPropagationAdapter() {
            @Override/* ww w .j  a v  a  2s  .c om*/
            public Object getParent(Object object) {
                if (isDisposed())
                    return null;
                return contentProvider.getParent(object);
            }
        });
        setElements(contentProvider.getKnownElements());
    } else {
        assertTrue(false, "Viewer not a Table or a Tree?"); //$NON-NLS-1$
    }

    IManager.Factory.getManager().eAdapters().add(myManagerAdapter);
    control.addListener(SWT.PaintItem, myPaintItemListener);
    if ((control.getStyle() & SWT.SINGLE) == SWT.SINGLE) {
        mySelectionChangedListener = new ISelectionChangedListener() {
            @Override
            public void selectionChanged(SelectionChangedEvent event) {
                myLastReportedSelectedElement = ((IStructuredSelection) event.getSelection()).getFirstElement();
            }
        };
        viewer.addSelectionChangedListener(mySelectionChangedListener);
    }
    registerWidget(control);

    /*
     * More or less adapted (read "stolen") from Snippet026TreeViewerTabEditing...
     * 
     * Actually it is more and more less and less...
     */
    final ColumnViewerEditorActivationStrategy actSupport = new CellEditorActivationStrategy(this);

    final FocusCellOwnerDrawHighlighter focusDrawingDelegate = new FocusCellOwnerDrawHighlighter(viewer);
    final int feature = ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
            | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION;
    try {
        if (viewer instanceof TableViewer) {
            final Class<?> cls = Class.forName("org.eclipse.jface.viewers.MyTableViewerFocusCellManager");
            final Constructor<?> constructor = cls.getConstructor(TableViewer.class, FocusCellHighlighter.class,
                    CellNavigationStrategy.class);
            myViewerFocusCellManager = (IMyViewerFocusCellManager) constructor.newInstance(viewer,
                    focusDrawingDelegate, theCellNavigationStrategy);
            TableViewerEditor.create((TableViewer) viewer,
                    (TableViewerFocusCellManager) myViewerFocusCellManager, actSupport, feature);
        } else if (viewer instanceof TreeViewer) {
            final Class<?> cls = Class.forName("org.eclipse.jface.viewers.MyTreeViewerFocusCellManager");
            final Constructor<?> constructor = cls.getConstructor(TreeViewer.class, FocusCellHighlighter.class,
                    CellNavigationStrategy.class);
            myViewerFocusCellManager = (IMyViewerFocusCellManager) constructor.newInstance(viewer,
                    focusDrawingDelegate, theCellNavigationStrategy);
            TreeViewerEditor.create((TreeViewer) viewer, (TreeViewerFocusCellManager) myViewerFocusCellManager,
                    actSupport, feature);
        } else {
            // Not supported
        }
    } catch (final Exception ex) {
        // Do nothing
    }

    if (getList() instanceof IObserving && getList().getElementType() instanceof EReference) {
        // final EObject baseObject = (EObject) ((IObserving) getList()).getObserved();
        // final EReference elementType = (EReference) getList().getElementType();

        myMessagesOnlyValueBinding = getContext().addBinding()
                .ui(control, InternalConstants.ATTR_VIEWERS_MESSAGE_ONLY).model(getList())
                .type(InternalConstants.VIEWERS_MESSAGE_ONLY_TYPE)
                .arg(Constants.ARG_MODEL_OBJECT_MESSAGES, true);
    }
    ColumnViewerToolTipSupport.enableFor(viewer);
    DoubleClickAdapter.adapt(this);
}