Example usage for org.eclipse.jface.viewers ViewerCell getColumnIndex

List of usage examples for org.eclipse.jface.viewers ViewerCell getColumnIndex

Introduction

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

Prototype

public int getColumnIndex() 

Source Link

Document

Get the index of the cell.

Usage

From source file:org.eclipse.e4mf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport.java

License:Open Source License

protected boolean shouldCreateToolTip(Event event) {
    ViewerCell cell = getToolTipArea(event);
    if (cell != null && !cell.equals(currentCell)) {
        control.setToolTipText("");
        currentCell = cell;/*from   w ww  .j a  va2  s .co m*/
        ViewerRow row = cell.getViewerRow();
        if (row != null) {
            Object element = row.getItem().getData();
            CellLabelProvider labelProvider = viewer.getLabelProvider(cell.getColumnIndex());
            text = labelProvider.getToolTipText(element);
            boolean useNative = labelProvider.useNativeToolTip(element);
            if (useNative || text == null) {
                control.setToolTipText(text);
            } else {
                foregroundColor = labelProvider.getToolTipForegroundColor(element);
                backgroundColor = labelProvider.getToolTipBackgroundColor(element);
                font = labelProvider.getToolTipFont(element);
                return text != null;
            }
        }
    } else {
        currentCell = cell;
    }

    return false;
}

From source file:org.eclipse.egit.ui.internal.history.CommitGraphTableHoverManager.java

License:Open Source License

private Information computeInformationForCommit(SWTCommit commit, ViewerCell cell, MouseEvent e) {
    final int columnIndex = cell.getColumnIndex();
    switch (columnIndex) {
    case 1://from   www.j  av  a  2  s.  com
        return computeInformationForRef(commit, cell, e);
    case 2:
        return computeInformationForName(commit.getAuthorIdent(), cell);
    case 3:
        return computeInformationForDate(commit.getAuthorIdent(), cell);
    case 4:
        return computeInformationForName(commit.getCommitterIdent(), cell);
    case 5:
        return computeInformationForDate(commit.getCommitterIdent(), cell);
    }
    return null;
}

From source file:org.eclipse.emf.ecp.edit.internal.swt.controls.ECPFocusCellDrawHighlighter.java

License:Open Source License

private void removeSelectionInformation(Event event, ViewerCell cell) {
    // GC gc = event.gc;
    // gc.setBackground(cell.getViewerRow().getBackground(
    // cell.getColumnIndex()));
    // gc.setForeground(cell.getViewerRow().getForeground(
    // cell.getColumnIndex()));
    // gc.fillRectangle(cell.getBounds());
    // event.detail &= ~SWT.SELECTED;
    Color cellBackground = null;//from w  w  w.  ja  v a 2  s.c  om
    Color cellForeground = null;
    final CellLabelProvider labelProvider = viewer.getLabelProvider(cell.getColumnIndex());
    if (labelProvider instanceof IColorProvider) {
        final IColorProvider columnLabelProvider = (IColorProvider) labelProvider;
        cellBackground = columnLabelProvider.getBackground(cell.getElement());
        cellForeground = columnLabelProvider.getForeground(cell.getElement());
    }
    cell.setBackground(cellBackground);
    cell.setForeground(cellForeground);
}

From source file:org.eclipse.emf.examples.library.databinding.common.FocusCellOwnerDrawHighlighter.java

License:Open Source License

protected void focusCellChanged(ViewerCell newCell, ViewerCell oldCell) {
    super.focusCellChanged(newCell, oldCell);

    // Redraw new area
    if (newCell != null) {
        Rectangle rect = newCell.getBounds();
        int x = newCell.getColumnIndex() == 0 ? 0 : rect.x;
        int width = newCell.getColumnIndex() == 0 ? rect.x + rect.width : rect.width;
        // 1 is a fix for Linux-GTK
        newCell.getControl().redraw(x, rect.y - 1, width, rect.height + 1, true);
    }// w w  w .j  av a2s.  c o m

    if (oldCell != null) {
        Rectangle rect = oldCell.getBounds();
        int x = oldCell.getColumnIndex() == 0 ? 0 : rect.x;
        int width = oldCell.getColumnIndex() == 0 ? rect.x + rect.width : rect.width;
        // 1 is a fix for Linux-GTK
        oldCell.getControl().redraw(x, rect.y - 1, width, rect.height + 1, true);
    }
}

From source file:org.eclipse.ice.materials.ui.MaterialCellLabelProvider.java

License:Open Source License

@Override
public void update(ViewerCell cell) {
    String text;//from   w w w  .ja  v  a2 s .  c  o m
    // Switch on the column id and put the keys and values in the right
    // places.
    if (cell.getColumnIndex() == 0) {
        text = ((MaterialProperty) cell.getElement()).key;
    } else {
        text = ((MaterialProperty) cell.getElement()).value.toString();

    }
    cell.setText(text);
}

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

License:Open Source License

@Override
public void activate(ColumnViewerEditorActivationEvent activationEvent) {
    ViewerCell cell = (ViewerCell) activationEvent.getSource();
    index = cell.getColumnIndex();
    row = (ViewerRow) cell.getViewerRow().clone();
    restoredImage = row.getImage(index);
    restoredText = row.getText(index);/*from   ww  w .  ja  v a2s.  co  m*/
    row.setImage(index, null);
    row.setText(index, ""); //$NON-NLS-1$

    if (activationEvent.eventType != ColumnViewerEditorActivationEvent.TRAVERSAL && changeOnActivation) {
        button.setSelection(!button.getSelection());
    }

    //TODO Add a way to enable key traversal when CheckBoxes don't get focus
    //      if( Util.isMac() ) {
    //         button.getParent().addKeyListener(macSelectionListener);
    //      }

    super.activate(activationEvent);
}

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

License:Open Source License

@Override
protected void focusCellChanged(ViewerCell cell) {
    super.focusCellChanged(cell);

    // Redraw new area
    if (cell != null) {
        Rectangle rect = cell.getBounds();
        int x = cell.getColumnIndex() == 0 ? 0 : rect.x;
        int width = cell.getColumnIndex() == 0 ? rect.x + rect.width : rect.width;
        cell.getControl().redraw(x, rect.y, width, rect.height, true);
    }/*from w  ww  . j av  a 2s .c om*/

    if (oldCell != null) {
        Rectangle rect = oldCell.getBounds();
        int x = oldCell.getColumnIndex() == 0 ? 0 : rect.x;
        int width = oldCell.getColumnIndex() == 0 ? rect.x + rect.width : rect.width;
        oldCell.getControl().redraw(x, rect.y, width, rect.height, true);
    }

    this.oldCell = cell;
}

From source file:org.eclipse.jface.snippets.viewers.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);//  ww w. ja v  a  2s  . c o  m
    v.getTree().setHeaderVisible(true);

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

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

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

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

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

        @Override
        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() {

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

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

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

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

        @Override
        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() {

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

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

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

        @Override
        protected Object getValue(Object element) {
            return Boolean.valueOf(((MyModel) element).bool);
        }

        @Override
        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() {

        @Override
        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, Integer.valueOf(cell.getColumnIndex()), cell.getViewerRow(), e);
                } catch (SecurityException | NoSuchMethodException | IllegalArgumentException
                        | IllegalAccessException | InvocationTargetException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        }

    });
}

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

License:Open Source License

public Snippet058CellNavigationIn34(Shell shell) {
    final TableViewer v = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
    v.setContentProvider(ArrayContentProvider.getInstance());

    TableViewerColumn column = null;// w  w w.  j  av  a 2s  . c  om
    column = createColumnFor(v, "Givenname");
    column.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            return ((Person) element).givenname;
        }
    });
    column.setEditingSupport(new AbstractEditingSupport(v) {

        @Override
        protected Object getValue(Object element) {
            return ((Person) element).givenname;
        }

        @Override
        protected void doSetValue(Object element, Object value) {
            ((Person) element).givenname = value.toString();
        }

    });

    column = createColumnFor(v, "Surname");
    column.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            return ((Person) element).surname;
        }

    });
    column.setEditingSupport(new AbstractEditingSupport(v) {

        @Override
        protected Object getValue(Object element) {
            return ((Person) element).surname;
        }

        @Override
        protected void doSetValue(Object element, Object value) {
            ((Person) element).surname = value.toString();
        }

    });

    column = createColumnFor(v, "E-Mail");
    column.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            return ((Person) element).email;
        }

    });
    column.setEditingSupport(new AbstractEditingSupport(v) {

        @Override
        protected Object getValue(Object element) {
            return ((Person) element).email;
        }

        @Override
        protected void doSetValue(Object element, Object value) {
            ((Person) element).email = value.toString();
        }

    });
    column = createColumnFor(v, "Gender");
    column.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            return ((Person) element).gender;
        }

    });

    ComboBoxCellEditor editor = new ComboBoxCellEditor(v.getTable(), new String[] { "M", "F" });
    editor.setActivationStyle(ComboBoxCellEditor.DROP_DOWN_ON_TRAVERSE_ACTIVATION
            | ComboBoxCellEditor.DROP_DOWN_ON_PROGRAMMATIC_ACTIVATION
            | ComboBoxCellEditor.DROP_DOWN_ON_MOUSE_ACTIVATION
            | ComboBoxCellEditor.DROP_DOWN_ON_KEY_ACTIVATION);

    column.setEditingSupport(new AbstractEditingSupport(v, editor) {

        @Override
        protected Object getValue(Object element) {
            if (((Person) element).gender.equals("M"))
                return Integer.valueOf(0);
            return Integer.valueOf(1);
        }

        @Override
        protected void doSetValue(Object element, Object value) {
            if (((Integer) value).intValue() == 0) {
                ((Person) element).gender = "M";
            } else {
                ((Person) element).gender = "F";
            }
        }

    });

    CellNavigationStrategy naviStrat = new CellNavigationStrategy() {

        @Override
        public ViewerCell findSelectedCell(ColumnViewer viewer, ViewerCell currentSelectedCell, Event event) {
            ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event);

            if (cell != null) {
                v.getTable().showColumn(v.getTable().getColumn(cell.getColumnIndex()));
            }
            return cell;
        }

    };

    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(v,
            new FocusCellOwnerDrawHighlighter(v), naviStrat);

    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
        @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 feature = ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
            | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION;

    TableViewerEditor.create(v, focusCellManager, actSupport, feature);

    v.getColumnViewerEditor().addEditorActivationListener(new ColumnViewerEditorActivationListener() {

        @Override
        public void afterEditorActivated(ColumnViewerEditorActivationEvent event) {
        }

        @Override
        public void afterEditorDeactivated(ColumnViewerEditorDeactivationEvent event) {
        }

        @Override
        public void beforeEditorActivated(ColumnViewerEditorActivationEvent event) {
            ViewerCell cell = (ViewerCell) event.getSource();
            v.getTable().showColumn(v.getTable().getColumn(cell.getColumnIndex()));
        }

        @Override
        public void beforeEditorDeactivated(ColumnViewerEditorDeactivationEvent event) {
        }

    });

    Person[] model = createModel();
    v.setInput(model);
    v.getTable().setLinesVisible(true);
    v.getTable().setHeaderVisible(true);
}

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

License:Open Source License

@Override
protected void paint(Event event) {
    if (getSelectedCells().length == 1 && getSelectedCells()[0] == null)
        return;//w  w w.  ja  va2s. c o m
    ViewerCell cell = getSelectedCells()[0];

    GC gc = event.gc;
    Display display = getDisplay();
    gc.setBackground(getBackground());
    gc.setForeground(getForeground());
    gc.fillRectangle(event.x, event.y, event.width, event.height);
    int x = 0;
    Point size = getSize();
    Image image = cell.getImage();
    if (image != null) {
        Rectangle imageSize = image.getBounds();
        int imageY = (size.y - imageSize.height) / 2;
        gc.drawImage(image, x, imageY);
        x += imageSize.width;
    }
    String text = cell.getText();
    if (text != "") { //$NON-NLS-1$
        Rectangle bounds = cell.getBounds();
        Point extent = gc.stringExtent(text);
        // Temporary code - need a better way to determine table trim
        if (Util.isWin32()) {
            if (((Table) getParent()).getColumnCount() == 0 || cell.getColumnIndex() == 0) {
                x += 2;
            } else {
                int alignmnent = ((Table) getParent()).getColumn(cell.getColumnIndex()).getAlignment();
                switch (alignmnent) {
                case SWT.LEFT:
                    x += 6;
                    break;
                case SWT.RIGHT:
                    x = bounds.width - extent.x - 6;
                    break;
                case SWT.CENTER:
                    x += (bounds.width - x - extent.x) / 2;
                    break;
                }
            }
        } else {
            if (((Table) getParent()).getColumnCount() == 0) {
                x += 5;
            } else {
                int alignmnent = ((Table) getParent()).getColumn(cell.getColumnIndex()).getAlignment();
                switch (alignmnent) {
                case SWT.LEFT:
                    x += 5;
                    break;
                case SWT.RIGHT:
                    x = bounds.width - extent.x - 2;
                    break;
                case SWT.CENTER:
                    x += (bounds.width - x - extent.x) / 2 + 2;
                    break;
                }
            }
        }
        int textY = (size.y - extent.y) / 2;
        gc.drawString(text, x, textY);
    }
    if (isFocusControl()) {
        gc.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
        gc.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
        gc.drawFocus(0, 0, size.x, size.y);
    }
}