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

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

Introduction

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

Prototype

public Widget getItem() 

Source Link

Document

Return the item for the receiver.

Usage

From source file:org.dawnsci.breadcrumb.navigation.table.AbstractLazyLabelProvider.java

License:Open Source License

public void update(ViewerCell cell) {

    if (disposed)
        return;//from ww w  .ja v a  2s  .  co  m
    if (cell.getItem().isDisposed())
        return;

    Object element = cell.getElement();

    try {
        final int index = cell.getColumnIndex();
        final String fastText = getFastText(element, index - columnOffset);
        if (fastText != null) {
            cell.setText(fastText);
        } else if (allowLazyText) {
            viewerCellTextQueue.add(new ViewCellBean(cell, element, index));
        } else {
            cell.setText(getSlowText(element, index - columnOffset));
        }

        Image image = getImage(element, index - columnOffset);
        cell.setImage(image);
        cell.setBackground(getBackground(element));
        //cell.setForeground(getForeground(element));
        //cell.setFont(getFont(element));

    } catch (Exception ne) {
        logger.error("Error in table ", ne);
    }

}

From source file:org.eclipse.e4.tools.ui.designer.wizards.part.PropertiesComposite.java

License:Open Source License

protected Composite createClient(Composite parent) {
    Composite client = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    client.setLayout(layout);/*ww  w .jav  a 2s. co  m*/

    Label label = new Label(client, SWT.NONE);
    label.setText("Show Members:");

    Composite tableComp = new Composite(client, SWT.NONE);
    TableColumnLayout tableLayout = new TableColumnLayout();
    tableComp.setLayout(tableLayout);
    tableComp.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    tableViewer = CheckboxTableViewer.newCheckList(tableComp,
            SWT.BORDER | SWT.FULL_SELECTION | SWT.HIDE_SELECTION);
    propertiesProvider = new PropertiesContentProvider();
    tableViewer.setContentProvider(propertiesProvider);

    final Table table = tableViewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    TableColumn propertyColumn = new TableColumn(table, SWT.CENTER);
    propertyColumn.reskin(0);
    propertyColumn.setText("Property");
    tableLayout.setColumnData(propertyColumn, new ColumnWeightData(10));
    TableViewerColumn propertyViewerColumn = new TableViewerColumn(tableViewer, propertyColumn);
    final PDCTypeLabelProvider labelProvider = new PDCTypeLabelProvider();
    propertyViewerColumn.setLabelProvider(new ColumnLabelProvider() {
        public String getText(Object element) {
            return PDC.getPropertyDisplayName(element);
        }

        public Image getImage(Object element) {
            return labelProvider.getImage(element);
        }
    });

    TableColumn masterColumn = new TableColumn(table, SWT.LEFT);
    masterColumn.setText("Selection Provider");
    tableLayout.setColumnData(masterColumn, new ColumnWeightData(10));

    TableViewerColumn masterViewerColumn = new TableViewerColumn(tableViewer, masterColumn);
    masterViewerColumn.setLabelProvider(new CellLabelProvider() {
        public void update(ViewerCell cell) {
            final TableItem item = (TableItem) cell.getItem();
            DisposeListener listener = new DisposeListener() {

                public void widgetDisposed(DisposeEvent e) {
                    if (item.getData("EDITOR") != null) {
                        TableEditor editor = (TableEditor) item.getData("EDITOR");
                        editor.getEditor().dispose();
                        editor.dispose();
                    }
                }

            };

            if (item.getData("EDITOR") != null) {
                TableEditor editor = (TableEditor) item.getData("EDITOR");
                if (editor.getEditor() != null) {
                    editor.getEditor().dispose();
                }
                editor.dispose();
            }

            if (item.getData("DISPOSELISTNER") != null) {
                item.removeDisposeListener((DisposeListener) item.getData("DISPOSELISTNER"));
            }
            final Object data = item.getData();
            if (!dataContext.isPropertyMany(data)) {
                return;
            }
            TableEditor editor = new TableEditor(item.getParent());
            item.setData("EDITOR", editor);
            final Button checkBox = new Button(item.getParent(), SWT.CHECK);
            checkBox.pack();
            checkBox.setEnabled(dataContext.containsProperty(data));
            checkBox.setBackground(table.getBackground());
            checkBox.setSelection(dataContext.containsMaster(data));
            checkBox.addListener(SWT.Selection, new Listener() {
                public void handleEvent(Event event) {
                    if (checkBox.getSelection()) {
                        dataContext.addMasterProperty(data);
                    } else {
                        dataContext.removeMasterProperty(data);
                    }
                }
            });
            editor.grabHorizontal = true;
            editor.setEditor(checkBox, item, 1);

            item.addDisposeListener(listener);
            item.setData("DISPOSELISTNER", listener);
        }
    });
    tableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            Object element = event.getElement();
            boolean checked = event.getChecked();
            TableItem item = (TableItem) tableViewer.testFindItem(element);
            if (item.getData("EDITOR") != null) {
                TableEditor editor = (TableEditor) item.getData("EDITOR");
                Button control = (Button) editor.getEditor();
                if (control != null) {
                    control.setEnabled(checked);
                    if (!checked && control.getSelection()) {
                        dataContext.removeMasterProperty(element);
                    } else if (checked && control.getSelection()) {
                        dataContext.addMasterProperty(element);
                    }
                }
            }
            if (checked) {
                dataContext.addProperty(element);
            } else {
                dataContext.removeProperty(element);
            }
        }
    });

    resetTable();

    dataContext.addPropertyChangeListener(new PropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent evt) {
            String propertyName = evt.getPropertyName();
            if (PartDataContext.VALUE.equals(propertyName) || PartDataContext.TYPE.equals(propertyName)) {
                resetTable();
            }
        }
    });

    createOptions(client);
    return client;
}

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

License:Open Source License

private void markFocusedCell(Event event, ViewerCell cell) {
    Color background = cell.getControl().isFocusControl() ? getSelectedCellBackgroundColor(cell)
            : getSelectedCellBackgroundColorNoFocus(cell);
    Color foreground = cell.getControl().isFocusControl() ? getSelectedCellForegroundColor(cell)
            : getSelectedCellForegroundColorNoFocus(cell);

    if (foreground != null || background != null || onlyTextHighlighting(cell)) {
        // GC gc = event.gc;

        if (background == null) {
            background = cell.getItem().getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION);
        }//from  w  w w .  ja  v a  2 s . co  m

        if (foreground == null) {
            foreground = cell.getItem().getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT);
        }

        // gc.setBackground(background);
        // gc.setForeground(foreground);
        //
        // if (onlyTextHighlighting(cell)) {
        // Rectangle area = event.getBounds();
        // Rectangle rect = cell.getTextBounds();
        // if( rect != null ) {
        // area.x = rect.x;
        // }
        // gc.fillRectangle(area);
        // } else {
        // gc.fillRectangle(event.getBounds());
        // }
        cell.setBackground(background);
        cell.setForeground(foreground);

        // event.detail &= ~SWT.SELECTED;
    }
}

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

License:Open Source License

private void markFocusedCell(Event event, ViewerCell cell) {
    Color background = (cell.getControl().isFocusControl()) ? getSelectedCellBackgroundColor(cell)
            : getSelectedCellBackgroundColorNoFocus(cell);
    Color foreground = (cell.getControl().isFocusControl()) ? getSelectedCellForegroundColor(cell)
            : getSelectedCellForegroundColorNoFocus(cell);

    if (foreground != null || background != null || onlyTextHighlighting(cell)) {
        GC gc = event.gc;//  ww  w.  j ava 2 s  .  c om

        if (background == null) {
            background = cell.getItem().getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION);
        }

        if (foreground == null) {
            foreground = cell.getItem().getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT);
        }

        gc.setBackground(background);
        gc.setForeground(foreground);

        if (onlyTextHighlighting(cell)) {
            Rectangle area = event.getBounds();
            Rectangle rect = cell.getTextBounds();
            if (rect != null) {
                area.x = rect.x;
            }
            gc.fillRectangle(area);
        } else {
            gc.fillRectangle(event.getBounds());
        }

        event.detail &= ~SWT.SELECTED;
    }
}

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

License:Open Source License

private ColumnLabelProvider createLabelProviderFor(final TableViewer viewer) {
    return new ColumnLabelProvider() {
        boolean isEvenIdx = true;

        @Override/*w  w  w .j  a v a2 s  .c  o  m*/
        public Color getBackground(Object element) {
            Color grayColor = viewer.getTable().getDisplay().getSystemColor(SWT.COLOR_GRAY);

            return (isEvenIdx ? null : grayColor);
        }

        @Override
        public void update(ViewerCell cell) {
            isEvenIdx = searcher.isEven((TableItem) cell.getItem());
            super.update(cell);
        }
    };
}

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

License:Open Source License

private CellLabelProvider createCellLabelProvider() {
    return new CellLabelProvider() {

        @Override/* www .j  a va  2  s  .  c  o  m*/
        public void update(ViewerCell cell) {
            final TableItem item = (TableItem) cell.getItem();
            DisposeListener listener = e -> {
                if (item.getData("EDITOR") != null) {
                    TableEditor editor = (TableEditor) item.getData("EDITOR");
                    editor.getEditor().dispose();
                    editor.dispose();
                }
            };
            if (item.getData("EDITOR") != null) {
                TableEditor editor = (TableEditor) item.getData("EDITOR");
                editor.getEditor().dispose();
                editor.dispose();
            }
            if (item.getData("DISPOSELISTNER") != null) {
                item.removeDisposeListener((DisposeListener) item.getData("DISPOSELISTNER"));
            }
            TableEditor editor = new TableEditor(item.getParent());
            item.setData("EDITOR", editor);
            Composite comp = new Composite(item.getParent(), SWT.NONE);
            comp.setBackground(item.getParent().getBackground());
            comp.setBackgroundMode(SWT.INHERIT_DEFAULT);
            RowLayout l = new RowLayout();
            l.marginHeight = 0;
            l.marginWidth = 0;
            l.marginTop = 0;
            l.marginBottom = 0;
            comp.setLayout(l);
            new Button(comp, SWT.RADIO);
            new Button(comp, SWT.RADIO);
            new Button(comp, SWT.RADIO);

            editor.grabHorizontal = true;
            editor.setEditor(comp, item, 1);

            item.addDisposeListener(listener);
            item.setData("DISPOSELISTNER", listener);
        }

    };
}

From source file:org.eclipse.linuxtools.dataviewers.findreplace.STTableFindReplaceTarget.java

License:Open Source License

private ViewerCell findAndSelect(ViewerCell cell, String findString, boolean searchForward, boolean direction,
        boolean caseSensitive, boolean wholeWord, boolean wrapSearch, boolean regExSearch) {

    if (cell == null)
        return null;

    int dirCell = ViewerCell.RIGHT;

    if (!searchForward)
        dirCell = ViewerCell.LEFT;/*from  ww  w .  j  a v  a 2  s. co m*/

    Table table = _viewer.getTable();

    if (!scope || table.isSelected(table.indexOf((TableItem) cell.getItem()))) {
        ViewerCell cellFound = searchInRow(cell.getViewerRow(), cell.getColumnIndex(), findString,
                searchForward, caseSensitive, wholeWord, dirCell, regExSearch);

        if (cellFound != null)
            return cellFound;
    }

    dirCell = ViewerCell.RIGHT;

    int dirRow = 0;
    if (searchForward)
        dirRow = ViewerRow.BELOW;
    else
        dirRow = ViewerRow.ABOVE;

    ViewerRow row = cell.getViewerRow();

    if (table.getSelectionCount() == 0) {
        while (row.getNeighbor(dirRow, true) != null) {
            row = row.getNeighbor(dirRow, true);
            cell = searchInRow(row, 0, findString, searchForward, caseSensitive, wholeWord, dirCell,
                    regExSearch);
            if (cell != null)
                return cell;
        }
    } else {
        while (row.getNeighbor(dirRow, true) != null) {
            row = row.getNeighbor(dirRow, true);
            if (!scope || table.isSelected(table.indexOf((TableItem) row.getItem()))) {
                cell = searchInRow(row, 0, findString, searchForward, caseSensitive, wholeWord, dirCell,
                        regExSearch);
                if (cell != null)
                    return cell;
            }
        }
    }

    return null;

}

From source file:org.eclipse.mylyn.internal.builds.ui.BuildToolTip.java

License:Open Source License

@Override
protected Composite createToolTipArea(Event event, Composite parent) {
    ViewerCell cell = getData();
    IBuildElement data = (IBuildElement) cell.getItem().getData();

    parent.setLayout(new GridLayout(2, false));

    BuildConnectorUi connectorUi = BuildsUi.getConnectorUi(data.getServer());
    if (data instanceof IBuildPlan) {
        StyledString ss = new StyledString();
        ss.append(data.getLabel(), new Styler() {
            public void applyStyles(TextStyle textStyle) {
                textStyle.font = CommonFonts.BOLD;
                textStyle.foreground = getTitleColor();
            }/*from  w ww.  j av a 2 s .  c  o m*/
        });
        IBuildPlan plan = (IBuildPlan) data;
        if (plan.getStatus() != null) {
            StringBuilder sb = new StringBuilder(" ["); //$NON-NLS-1$
            if (plan.getState() == BuildState.RUNNING) {
                sb.append(NLS.bind("running, ", null));
            }
            if (plan.getFlags().contains(BuildState.QUEUED)) {
                sb.append(NLS.bind("queued, ", null));
            }
            switch (plan.getStatus()) {
            case SUCCESS:
                sb.append(NLS.bind("success", null));
                break;
            case FAILED:
                sb.append(NLS.bind("failed", null));
                break;
            case UNSTABLE:
                sb.append(NLS.bind("unstable", null));
                break;
            case ABORTED:
                sb.append(NLS.bind("aborted", null));
                break;
            case DISABLED:
                sb.append(NLS.bind("disabled", null));
                break;
            default:
                break;
            }
            sb.append(']');
            ss.append(sb.toString(), StyledString.DECORATIONS_STYLER);
        }
        addIconAndLabel(parent, CommonImages.getImage(connectorUi.getImageDescriptor()), ss);
    } else {
        addIconAndLabel(parent, CommonImages.getImage(connectorUi.getImageDescriptor()), data.getLabel(), true);
    }

    Date refreshDate = data.getRefreshDate();
    if (refreshDate != null) {
        String refreshString = DateUtil.getRelative(refreshDate.getTime());
        addIconAndLabel(parent, null, NLS.bind("Refreshed {0}", refreshString), false);
    }

    if (data instanceof IBuildPlan) {
        IBuildPlan plan = (IBuildPlan) data;
        if (plan.getLastBuild() != null) {
            addBuild(parent, plan.getLastBuild());
        }
        addPlan(parent, plan);
    }

    if (data.getElementStatus() != null) {
        addIconAndLabel(parent, CommonImages.getImage(CommonImages.WARNING),
                data.getElementStatus().getMessage());
    }

    if (data instanceof IBuildServer) {
        int passed = 0;
        int failed = 0;
        int unstable = 0;
        int disabled = 0;
        List<IBuildPlan> plans = BuildsUiInternal.getModel().getPlans((BuildServer) data);
        for (IBuildPlan iBuildPlan : plans) {
            if (iBuildPlan.isSelected() && iBuildPlan.getStatus() != null) {
                switch (iBuildPlan.getStatus()) {
                case SUCCESS:
                    passed++;
                    break;
                case FAILED:
                    failed++;
                    break;
                case UNSTABLE:
                    unstable++;
                    break;
                case ABORTED:
                    break;
                case DISABLED:
                    disabled++;
                    break;
                default:
                    break;
                }
            }
        }
        if (passed > 0) {
            addIconAndLabel(parent, CommonImages.getImage(BuildImages.STATUS_PASSED),
                    NLS.bind("{0} passed builds of a total of {1}", new Object[] { passed, plans.size() }));
        }
        if (failed > 0) {
            addIconAndLabel(parent, CommonImages.getImage(BuildImages.STATUS_FAILED),
                    NLS.bind("{0} failed builds", new Object[] { failed }));
        }
        if (unstable > 0) {
            addIconAndLabel(parent, CommonImages.getImage(BuildImages.STATUS_UNSTABLE),
                    NLS.bind("{0} unstable builds", new Object[] { unstable }));
        }
        if (disabled > 0) {
            addIconAndLabel(parent, CommonImages.getImage(BuildImages.STATUS_DISABLED),
                    NLS.bind("{0} disabled builds", new Object[] { disabled }));
        }
        if (unstable > 0) {
            addIconAndLabel(parent, CommonImages.getImage(BuildImages.STATUS_DISABLED),
                    NLS.bind("{0} aborted builds", new Object[] { unstable }));
        }

    }

    return parent;
}

From source file:org.eclipse.nebula.jface.gridviewer.GridViewerEditor.java

License:Open Source License

/**
 * {@inheritDoc}/*from w  w w  .  j  av  a  2s  . c o  m*/
 */
protected void updateFocusCell(ViewerCell focusCell, ColumnViewerEditorActivationEvent event) {
    Grid grid = ((Grid) getViewer().getControl());

    if (event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC
            || event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL) {
        grid.setFocusColumn(grid.getColumn(focusCell.getColumnIndex()));
        grid.setFocusItem((GridItem) focusCell.getItem());

        if (selectionFollowsEditor) {
            grid.setCellSelection(
                    new Point(focusCell.getColumnIndex(), grid.indexOf((GridItem) focusCell.getItem())));
        }
    }

    grid.showColumn(grid.getColumn(focusCell.getColumnIndex()));
    grid.showItem((GridItem) focusCell.getItem());
}

From source file:org.eclipse.rcptt.tesla.recording.core.swt.JFaceRecordingProcessor.java

License:Open Source License

public void activateCellEditor(CellEditor cellEditor, ColumnViewerEditorActivationEvent activationEvent) {
    if (cellEditor == null)
        return;//ww w. j av  a 2  s  . c o m
    if (checkCellEditorOP()) {
        return;
    }
    if (activeCellEditors.contains(cellEditor)) {
        return;
    }
    boolean checkbox = cellEditor instanceof CheckboxCellEditor;
    Control control = cellEditor.getControl();
    lastCellEditorControl = null;
    if (control == null && !checkbox) {
        return;
    }
    Composite parent = null;
    if (checkbox) {
        parent = getCheckboxCellEditorSource(activationEvent);
    } else {
        parent = control.getParent();
    }
    if (parent == null) {
        return;
    }

    activeCellEditors.add(cellEditor);
    // Control[] children = parent.getChildren();
    if (parent instanceof Tree || parent instanceof Table) {
        String[][] selection = Viewers.getMultiPathSelection(getPlayer().wrap(parent));
        ControlEditor editor = TeslaSWTAccess.getControlEditor(parent);
        int column = -1;
        if (activationEvent.getSource() instanceof ViewerCell) {
            ViewerCell cell = (ViewerCell) activationEvent.getSource();
            column = cell.getColumnIndex();
            Widget item = cell.getItem();
            if (item instanceof TreeItem) {
                selection = new String[][] { Viewers.getPathByTreeItem((TreeItem) item) };
            } else if (item instanceof TableItem) {
                selection = new String[][] { Viewers.getPathByTableItem((TableItem) item) };
            }
        } else {
            if (editor instanceof TreeEditor) {
                column = ((TreeEditor) editor).getColumn();
            } else if (editor instanceof TableEditor) {
                column = ((TableEditor) editor).getColumn();
            }
        }
        FindResult result = getLocator().findElement(parent, true, false, false);
        if (result != null && (result.realElement.isTable() || result.realElement.isTree())) {
            ViewerUIElement e = new ViewerUIElement(result.element, getRecorder());
            if (!checkbox) {
                e.setMultiSelection(selection);
                e.activateCellEditor(column);
            } else {
                CheckboxCellEditor checkboxCellEditor = (CheckboxCellEditor) cellEditor;

                int row = -1;
                if (parent instanceof Tree) {
                    Tree tree = (Tree) parent;
                    if (tree.getSelectionCount() > 0)
                        row = tree.indexOf(tree.getSelection()[0]);
                } else if (parent instanceof Table) {
                    Table table = (Table) parent;
                    row = table.getSelectionIndex();
                }

                if (row != -1 && checkboxCellEditor.getValue() != null) {
                    ItemUIElement item = e.item(column, row);

                    CheckItem checkItem = ProtocolFactory.eINSTANCE.createCheckItem();
                    checkItem.setElement(item.getElement());
                    checkItem.setState((Boolean) checkboxCellEditor.getValue());
                    getRecorder().safeExecuteCommand(checkItem);
                }
            }
        }
    } else {
        List<ICellEditsProcessor> processors = TeslaRecorder.getInstance()
                .getProcessors(ICellEditsProcessor.class);

        for (ICellEditsProcessor p : processors)
            if (p.activateCellEdit(cellEditor, activationEvent))
                break;
    }
}