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:com.rcpcompany.uibindings.internal.utils.UIHandlerUtils.java

License:Open Source License

/**
 * Moves the specified element in the viewer of the binding.
 * /*from  ww  w  .  j a v  a2s .c  om*/
 * @param vb the viewer binding
 * @param element the element to move
 * @param delta the amount to move
 * @param testOnly <code>true</code> if the move should only be tested for, but not performed
 * @return <code>true</code> if the element could be moved
 */
public static boolean moveElement(IViewerBinding vb, EObject element, int delta, boolean testOnly) {
    if (Activator.getDefault().TRACE_NAVIGATION_VIEWER) {
        LogUtils.debug(vb, "delta=" + delta + ", testOnly=" + testOnly + ", element=" + element);
    }

    Assert.isNotNull(vb);
    if (element == null)
        return false;

    final ColumnViewer viewer = vb.getViewer();
    /*
     * Don't move if there are any sorter or filters installed as these negates the visual
     * effect.
     */
    if (viewer.getComparator() != null || viewer.getFilters().length > 0)
        return false;

    // The list of objects
    final IObservableList list = vb.getList();

    // Old position
    final int oldPosition = list.indexOf(element);
    if (oldPosition == -1)
        return false;

    // New position
    int newPosition = oldPosition + delta;
    if (newPosition < 0) {
        newPosition = 0;
    }
    if (newPosition >= list.size()) {
        newPosition = list.size() - 1;
    }

    // Can not be moved?
    if (oldPosition == newPosition)
        return false;

    // Move it
    if (!testOnly) {
        final ColumnViewerEditor editor = viewer.getColumnViewerEditor();
        final ViewerCell oldFocusCell = editor.getFocusCell();

        list.move(newPosition, oldPosition);

        vb.setFocus(oldFocusCell.getColumnIndex(), element);
        // ((Table) viewer.getControl()).setSelection(newPosition);
    }
    return true;
}

From source file:com.rcpcompany.uibindings.internal.ViewerBindingImpl.java

License:Open Source License

@Override
public void updateSourceProviderState(ISourceProviderStateContext context) {
    final ColumnViewer viewer = getViewer();

    context.putSourceValue(Constants.SOURCES_ACTIVE_CONTAINER_BINDING, this);
    context.putSourceValue(Constants.SOURCES_ACTIVE_CONTAINER_BINDING_NO_CAF,
            (viewer.getComparator() == null && viewer.getFilters().length == 0));

    context.putSourceValue(Constants.SOURCES_ACTIVE_VIEWER_ELEMENT_TYPE, getModelType());

    EObject element = null;/*from  w w  w  . ja  v a  2  s.c o  m*/
    int columnIndex = -1;
    ContainerCellType type = null;

    ViewerCell cell;
    /*
     * If no specific position is specified in the event (x,y) = (0,0), then try using the
     * current focus cell. This is needed when navigating in the table.
     * 
     * Also do this if the widget of the event is not this viewers control. That happens when
     * extra widgets are mapped to this binding with IBinding.registerWidget()
     */
    final Event event = context.getEvent();
    final Point point = context.getLocation();
    if (event.x == 0 && event.y == 0 || event.widget != getControl()) {
        cell = viewer.getColumnViewerEditor().getFocusCell();
    } else {
        cell = viewer.getCell(point);
    }
    if (cell != null) {
        element = (EObject) cell.getElement();
        columnIndex = cell.getColumnIndex();
        type = ContainerCellType.DATA;
    } else {
        final Control c = viewer.getControl();
        if (c instanceof Table) {
            final Table t = (Table) c;
            final TableItem item = t.getItem(point);
            if (item != null) {
                element = (EObject) item.getData();
                type = ContainerCellType.ROW_TRAILER;
            } else {
                /*
                 * Below or above the table?
                 */
                if (point.y < 0) {
                    type = ContainerCellType.COLUMN_HEADER;
                } else {
                    type = ContainerCellType.COLUMN_TRAILER;
                }
            }
        }
        if (c instanceof Tree) {
            final Tree t = (Tree) c;
            final TreeItem item = t.getItem(point);
            if (item != null) {
                element = (EObject) item.getData();
                type = ContainerCellType.ROW_TRAILER;
            } else {
                /*
                 * Below or above the tree?
                 */
                if (point.y < 0) {
                    type = ContainerCellType.COLUMN_HEADER;
                } else {
                    type = ContainerCellType.COLUMN_TRAILER;
                }
            }
        }
    }

    if (type != null) {
        context.putSourceValue(Constants.SOURCES_ACTIVE_CONTAINER_CELL_TYPE, type.toString());
    }
    if (element != null) {
        context.putSourceValue(Constants.SOURCES_ACTIVE_VIEWER_ELEMENT, element);
        context.putSourceValue(Constants.SOURCES_ACTIVE_VIEWER_ELEMENT_MOVE_UP,
                UIHandlerUtils.moveElement(this, element, -1, true));
        context.putSourceValue(Constants.SOURCES_ACTIVE_VIEWER_ELEMENT_MOVE_DOWN,
                UIHandlerUtils.moveElement(this, element, 1, true));
    }

    if (columnIndex >= getFirstTableColumnOffset() && element != null) {
        final IColumnBindingCellInformation ci = getCell(columnIndex - getFirstTableColumnOffset(), element);
        final IObservableValue objectValue = ci.getObjectValue();
        final Object value = objectValue.getValue();

        final IValueBinding labelBinding = ci.getLabelBinding();
        context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING, labelBinding);
        context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_RO, !ci.isChangeable());
        context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_VALUE, value);
        context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_TYPE, ""); //$NON-NLS-1$
        if (labelBinding != null) {
            context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_MODEL_OBJECT,
                    labelBinding.getModelObject());
            context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_FEATURE, labelBinding.getModelFeature());
            context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_UNSETTABLE,
                    labelBinding.getDataType().isUnsettable());
            context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_IS_SET, isSet(labelBinding));
        }
        context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_VALUE_DISPLAY, ci.getDisplayText());

        context.addObservedValue(ci.getLabelUIAttribute().getCurrentValue());
    }

    context.setSelectionProvider(getViewer());
}

From source file:com.rcpcompany.uibindings.internal.ViewerBindingImpl.java

License:Open Source License

@Override
public IContainerDropContext getDropContext(final DropTargetEvent event) {
    final Control control = getControl();
    final Point point = control.toControl(new Point(event.x, event.y));
    final ViewerCell vcell = getViewer().getCell(point);
    if (vcell == null) //
        return null;
    final IColumnBindingCellInformation cell = getCell(vcell.getColumnIndex() - getFirstTableColumnOffset(),
            vcell.getElement());/*  ww w  . j a  v a  2 s.c om*/

    return new IContainerDropContext() {
        @Override
        public EObject getDropTargetObject() {
            final IObservableValue valueOV = cell.getSourceValue();
            if (valueOV == null)
                return null;
            final Object value = valueOV.getValue();
            if (value instanceof EObject)
                return (EObject) value;
            return null;
            // final Widget item = event.item;
            // if (item == null) return null;
            // if (item.getData() instanceof EObject) return (EObject) item.getData();
            // return null;
        }

        @Override
        public float getDropLocation() {
            final Control control = getControl();
            final Point point = control.toControl(new Point(event.x, event.y));
            final Rectangle bounds;
            if (event.item instanceof TreeItem) {
                bounds = ((TreeItem) event.item).getBounds();
            } else if (event.item instanceof TableItem) {
                bounds = ((TableItem) event.item).getBounds(0);
            } else
                return 0.0F;

            return (float) (point.y - bounds.y) / (float) bounds.height;
        }

        @Override
        public IValueBindingCell getDropCell() {
            return cell;
        }

        @Override
        public List<IChildCreationSpecification> getPossibleChildObjects(EObject parent, EObject sibling) {
            return ViewerBindingImpl.this.getPossibleChildObjects(parent, sibling);
        }
    };
}

From source file:com.starterkit.todo.Tracker.TableColumnTracker.java

License:Open Source License

@Override
public void handleEvent(Event event) {
    Table table = fTableViewer.getTable();
    Point point = Display.getDefault().map(null, table, new Point(event.x, event.y));
    Rectangle clientArea = table.getClientArea();
    fHeaderArea = (clientArea.y <= point.y) && (point.y < (clientArea.y + table.getHeaderHeight()));

    ViewerCell cell = fTableViewer.getCell(point);
    if (cell != null)
        fSelectedColumnIndex = cell.getColumnIndex();

    else {//from  w  w w . ja  va  2s. c  om
        // no cell detected, click on header
        int xOffset = point.x;
        int columnIndex = 0;
        int[] order = table.getColumnOrder();
        while ((columnIndex < table.getColumnCount())
                && (xOffset > table.getColumn(order[columnIndex]).getWidth())) {
            xOffset -= table.getColumn(order[columnIndex]).getWidth();
            columnIndex++;
        }

        fSelectedColumnIndex = (columnIndex < table.getColumnCount()) ? order[columnIndex] : NO_COLUMN;
    }
}

From source file:com.vectrace.MercurialEclipse.ui.AbstractHighlightableTable.java

License:Open Source License

public AbstractHighlightableTable(Composite parent, final HighlightingLabelProvider<E> labelProvider) {
    super(parent, SWT.NONE);

    setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    TableColumnLayout tableColumnLayout = new TableColumnLayout();
    setLayout(tableColumnLayout);/*  w w  w  .  ja va 2  s .c  o m*/

    viewer = new TableViewer(this, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL);

    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(labelProvider);

    List<TableViewerColumn> cols = createColumns(viewer, tableColumnLayout);

    CellLabelProvider clp = new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            E patch = (E) cell.getElement();
            HighlightingLabelProvider<E> lp = (HighlightingLabelProvider<E>) viewer.getLabelProvider();
            cell.setText(labelProvider.getColumnText(patch, cell.getColumnIndex()));
            cell.setImage(labelProvider.getColumnImage(patch, cell.getColumnIndex()));
            if (lp.isHighlighted(patch)) {
                cell.setFont(APPLIED_FONT);
            } else {
                cell.setFont(null);
            }
        }
    };

    for (Iterator<TableViewerColumn> it = cols.iterator(); it.hasNext();) {
        it.next().setLabelProvider(clp);
    }

    Table table = viewer.getTable();
    table.setLinesVisible(true);
    table.setHeaderVisible(true);
}

From source file:de.instanttouch.ui.scaffolding.swt.viewer.lazy.SnakeLazyTableViewer.java

License:Open Source License

private String handleTextOrImage(final ViewerCell cell, SnakeType dataItem,
        final TableViewerColumn viewerColumn) {
    ColumnInfo info = presenter.getVisibleColumns().get(cell.getColumnIndex());

    String urlStr = dataItem.toString();
    Image image = SnakeSwtUtils.createImage(urlStr);
    if (image != null) {
        cell.setImage(image);//from  w w w. j  a  va  2 s  . c  o m
    }

    String converted = layoutText(cell, dataItem, viewerColumn);

    final SnakeType resizeCell = dataItem;
    viewerColumn.getColumn().addControlListener(new ControlListener() {

        @Override
        public void controlResized(ControlEvent e) {
            layoutText(cell, resizeCell, viewerColumn);
        }

        @Override
        public void controlMoved(ControlEvent e) {
        }
    });

    return converted;

}

From source file:de.walware.ecommons.ui.util.ViewerUtil.java

License:Open Source License

public static void installDefaultEditBehaviour(final TableViewer tableViewer) {
    final CellNavigationStrategy naviStrat = new CellNavigationStrategy() {
        @Override/*  w  w w.ja  v  a  2 s  .c  o  m*/
        public ViewerCell findSelectedCell(final ColumnViewer viewer, final ViewerCell currentSelectedCell,
                final Event event) {
            final ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event);
            if (cell != null) {
                tableViewer.getTable().showColumn(tableViewer.getTable().getColumn(cell.getColumnIndex()));
            }
            return cell;
        }

    };
    final TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(tableViewer,
            new FocusCellOwnerDrawHighlighter(tableViewer), naviStrat);
    TableViewerEditor.create(tableViewer, focusCellManager, createActivationStrategy(tableViewer),
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_VERTICAL
                    | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.KEYBOARD_ACTIVATION);
}

From source file:de.walware.ecommons.ui.util.ViewerUtil.java

License:Open Source License

public static void installDefaultEditBehaviour(final TreeViewer treeViewer) {
    final CellNavigationStrategy naviStrat = new CellNavigationStrategy() {
        @Override//from  w w w .  j  av a2  s  .  co m
        public ViewerCell findSelectedCell(final ColumnViewer viewer, final ViewerCell currentSelectedCell,
                final Event event) {
            final ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event);
            if (cell != null) {
                treeViewer.getTree().showColumn(treeViewer.getTree().getColumn(cell.getColumnIndex()));
            }
            return cell;
        }

    };
    final TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(treeViewer,
            new FocusCellOwnerDrawHighlighter(treeViewer), naviStrat);
    TreeViewerEditor.create(treeViewer, focusCellManager, createActivationStrategy(treeViewer),
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_VERTICAL
                    | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.KEYBOARD_ACTIVATION);
}

From source file:edu.cmu.sei.alisa.editor.utils.AlisaLabelProvider.java

License:Apache License

/**
 * @see org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse.jface.viewers.ViewerCell)
 *//*from  w ww .java2 s  .com*/
@Override
public void update(ViewerCell cell) {
    int index = cell.getColumnIndex();
    String text = "N/A";

    if (cell.getElement() instanceof Stakeholder) {
        Stakeholder stakeholder = (Stakeholder) cell.getElement();
        switch (index) {
        case 0:
            text = stakeholder.getName();
            break;
        case 1:
            text = stakeholder.getTitle();
            break;
        case 2:
            text = stakeholder.getDescription();
            break;
        case 3:
            text = stakeholder.getRole();
            break;
        }
    }

    if (cell.getElement() instanceof VerificationActivity) {
        VerificationActivity va = (VerificationActivity) cell.getElement();
        switch (index) {
        case 0:
            text = va.getName();
            break;
        case 1:
            text = va.getTitle();
            break;
        case 2:
            text = va.getDescription();
            break;
        case 3:
            text = va.getMethod();
            break;
        case 4:
            text = Utils.getStakeholderListAsString(va.getAssignedTo());
            break;
        }
    }

    if (cell.getElement() instanceof Goal) {
        Goal goal = (Goal) cell.getElement();
        switch (index) {
        case 0:
            text = goal.getName();
            break;
        case 2:
            text = goal.getTitle();
            break;
        case 3:
            text = goal.getDescription();
            break;
        case 4:
            text = goal.getAssert();
            break;
        case 5:
            text = goal.getRationale();
            break;
        case 6:
            text = Utils.getStringListAsString(goal.getIssue());
            break;
        case 7:
            text = Utils.getStakeholderListAsString(goal.getStakeholderReference());
            break;
        }

    }

    if (cell.getElement() instanceof Requirement) {
        Requirement req = (Requirement) cell.getElement();
        Requirements reqs = (Requirements) req.eContainer();

        String target;
        switch (index) {
        case 0:
            text = Utils.getCategoryListAsString(req.getCategory());
            break;
        case 1:
            text = reqs.getName() + "." + req.getName();
            break;
        case 2:
            NamedElement cl = reqs.getTarget();
            target = req.getTarget();
            text = cl.getName() + (target != null ? "." + target : "");
            break;
        case 3:
            text = req.getTitle();
            break;
        case 4:
            text = req.getDescription();
            break;
        case 5:
            text = req.getAssert();
            break;
        case 6:
            text = req.getRationale();
            break;
        case 7:
            text = Utils.getStringListAsString(req.getIssue());
            break;
        }
    }

    if (cell.getElement() instanceof ExternalDocument) {
        ExternalDocument extdoc = (ExternalDocument) cell.getElement();
        switch (index) {
        case 0:
            text = extdoc.getName();
            break;
        case 1:
            text = extdoc.getExternalReference();
            break;
        }
    }

    cell.setText(text);
    super.update(cell);
}

From source file:es.cv.gvcase.fefem.common.widgets.FilteredLoadResourceDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {

    // If the EditingDomain is available then the dialog shows current loaded resources
    if (this.domain != null) {

        Group resContainer = new Group(parent, SWT.BORDER);
        resContainer.setText(Messages.FilteredLoadResourceDialog_LoadedResources);
        FillLayout rescontainerLayout = new FillLayout();
        rescontainerLayout.type = SWT.VERTICAL;
        rescontainerLayout.marginHeight = 5;
        rescontainerLayout.marginWidth = 5;
        rescontainerLayout.spacing = 5;//from   w w w .  j  a v a2  s  . c  o  m
        resContainer.setLayout(rescontainerLayout);
        resContainer.setLayoutData(new GridData(GridData.FILL_BOTH));

        Table table = new Table(resContainer, SWT.BORDER | SWT.FULL_SELECTION | SWT.SINGLE);

        String[] columnNames = { Messages.FilteredLoadResourceDialog_ResourceLocation };

        TableViewer tableViewer = new TableViewer(table);
        tableViewer.setContentProvider(new ArrayContentProvider());
        tableViewer.setInput(this.domain.getResourceSet().getResources());
        tableViewer.setColumnProperties(columnNames);
        tableViewer.setLabelProvider(new CellLabelProvider() {

            @Override
            public void update(ViewerCell cell) {

                cell.setText(((Resource) cell.getElement()).getURI().toString());

            }

        });

        TableColumn tc0 = new TableColumn(table, SWT.LEFT);
        tc0.setText(columnNames[0]);
        tc0.setWidth(150);

        table.setHeaderVisible(true);
        table.setLinesVisible(true);
    }

    Group container = new Group(parent, SWT.BORDER);
    container.setText(Messages.FilteredLoadResourceDialog_ResourcePatterns);
    FillLayout containerLayout = new FillLayout();
    containerLayout.type = SWT.VERTICAL;
    containerLayout.marginHeight = 5;
    containerLayout.marginWidth = 5;
    containerLayout.spacing = 5;
    container.setLayout(containerLayout);
    container.setLayoutData(new GridData(GridData.FILL_BOTH));

    Table table = new Table(container, SWT.CHECK | SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);

    String[] columnNames = { Messages.FilteredLoadResourceDialog_ResourcePattern,
            Messages.FilteredLoadResourceDialog_ResourcePatternDescription };

    TableColumn tc0 = new TableColumn(table, SWT.LEFT);
    tc0.setText(columnNames[0]);
    tc0.setWidth(100);
    TableColumn tc1 = new TableColumn(table, SWT.LEFT);
    tc1.setText(columnNames[1]);
    tc1.setWidth(140);

    CheckboxTableViewer tableViewer = new CheckboxTableViewer(table);
    tableViewer.setContentProvider(new ArrayContentProvider());
    tableViewer.setInput(resourcePatterns);
    tableViewer.setColumnProperties(columnNames);
    tableViewer.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {

            if (cell.getColumnIndex() == 0)
                cell.setText(((ResourceFilePattern) cell.getElement()).getPattern());
            else if (cell.getColumnIndex() == 1)
                cell.setText(((ResourceFilePattern) cell.getElement()).getDescription());

        }

    });

    tableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent e) {
            ResourceFilePattern r = (ResourceFilePattern) e.getElement();

            if (!filter.isRegisteredExtensionPattern(r.getPattern())) {
                filter.registerExtensionPattern(r.getPattern());
            } else
                filter.unregisterExtensionPattern(r.getPattern());
        }
    });

    tableViewer.setAllChecked(true);

    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    return super.createDialogArea(parent);
}