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:net.vectorcomputing.photo.ui.widgets.PhotoCatalogsCellLabelProvider.java

License:Apache License

@Override
public void update(ViewerCell cell) {
    Object element = cell.getElement();
    if (element instanceof IPhotoCatalog) {
        IPhotoCatalog catalog = (IPhotoCatalog) element;
        int index = cell.getColumnIndex();
        switch (index) {
        case 0:/*from   w  w w . j a v a  2  s.c o m*/
            cell.setText(catalog.getFileStore().getName());
            break;
        case 1:
            cell.setText(Integer.toString(catalog.getPhotos().size()));
            break;
        case 2:
            IPhotoCatalogUpdateStatistics stats = catalog.getUpdateStatistics();
            if (stats != null) {
                Calendar endTime = stats.getEndTime();
                if (endTime != null) {
                    cell.setText(endTime.toString());
                }
            }
            break;
        default:
            break;
        }
    }
}

From source file:net.vectorcomputing.photo.ui.widgets.PhotoFactoriesCellLabelProvider.java

License:Apache License

@Override
public void update(ViewerCell cell) {
    Object element = cell.getElement();
    if (element instanceof IPhotoFactoryDescriptor) {
        IPhotoFactoryDescriptor factory = (IPhotoFactoryDescriptor) element;
        int index = cell.getColumnIndex();
        switch (index) {
        case 0://w  w w.j a  v a 2 s. c  o m
            cell.setText(factory.getId());
            break;
        case 1:
            cell.setText(factory.getName());
            break;
        default:
            break;
        }
    }
}

From source file:net.yatomiya.e4.ui.viewer.TableViewerColumnManager.java

License:Open Source License

public TableViewerColumnManager(TableViewer viewer) {
    this.viewer = viewer;

    propertyListenerList = new ArrayList<>();

    dataList = new ArrayList<>();

    TableViewerEditor.create(viewer, new InternalEditStrategy(viewer), ColumnViewerEditor.DEFAULT);

    final Display display = viewer.getTable().getDisplay();
    final Listener mouseListener = new Listener() {
        @Override/*  w  ww.  ja  v  a 2 s  .  c  o  m*/
        public void handleEvent(Event event) {
            if (event.widget == viewer.getTable()) {
                ViewerCell cell = viewer.getCell(new Point(event.x, event.y));
                if (cell != null) {
                    ColumnData data = dataList.get(cell.getColumnIndex());

                    boolean doRestoreSelection = false;
                    if (lastSelection != null && SelectionUtils.size(lastSelection) > 1
                            && data.editingSupport != null) {
                        for (Object e : SelectionUtils.toList(lastSelection)) {
                            if (e == cell.getElement())
                                doRestoreSelection = true;
                        }
                    }

                    if (doRestoreSelection) {
                        viewer.setSelection(lastSelection);
                    } else {
                        lastSelection = viewer.getSelection();
                    }
                }
            }
        }
    };
    display.addFilter(SWT.MouseDown, mouseListener);
    viewer.getTable().addDisposeListener(new DisposeListener() {
        @Override
        public void widgetDisposed(DisposeEvent event) {
            display.removeFilter(SWT.MouseDown, mouseListener);
        }
    });
}

From source file:org.apache.sling.ide.eclipse.ui.views.JcrCellLabelProvider.java

License:Apache License

@Override
public void update(ViewerCell cell) {
    int index = cell.getColumnIndex();

    if (!isNewRow(cell)) {
        if (canEdit(cell)) {
            cell.setForeground(normalColor);
        } else {/*from ww w . j a v a2  s  .  c om*/
            cell.setForeground(greyColor);
        }
    }
    if (index == 0) {
        updateName(cell);
        return;
    } else if (index == 1) {
        final Object element = cell.getElement();
        if (element instanceof NewRow) {
            NewRow newRow = (NewRow) element;
            int propertyType = newRow.getType();
            String type = PropertyType.nameFromValue(propertyType);
            cell.setText(type);
        } else if (element instanceof IPropertyDescriptor) {
            IPropertyDescriptor pd = (IPropertyDescriptor) element;
            JcrNode jcrNode = (JcrNode) viewer.getInput();
            Map.Entry me = (Entry) pd.getId();
            final String propertyName = String.valueOf(me.getKey());
            int propertyType = jcrNode.getPropertyType(propertyName);
            if (propertyType <= -1 || propertyType == PropertyType.UNDEFINED) {
                cell.setText("");
            } else {
                final JcrProperty property = jcrNode.getProperty(propertyName);
                String type = PropertyType.nameFromValue(propertyType);
                if (property != null && property.isMultiple()) {
                    type = type + "[]";
                }
                cell.setText(type);
            }
        } else {
            cell.setText("");
        }
        return;
    } else if (index == 2) {
        updateValue(cell);
        return;
    } else {
        final Object element = cell.getElement();
        if (element instanceof NewRow) {
            NewRow newRow = (NewRow) element;
            cell.setText("");
        } else if (element instanceof IPropertyDescriptor) {
            IPropertyDescriptor pd = (IPropertyDescriptor) element;
            JcrNode jcrNode = (JcrNode) viewer.getInput();
            Map.Entry me = (Entry) pd.getId();
            PropertyDefinition prd = jcrNode.getPropertyDefinition(String.valueOf(me.getKey()));
            if (index == 3) {
                // protected
                if (prd != null) {
                    cell.setText(String.valueOf(prd.isProtected()));
                } else {
                    cell.setText("false");
                }
            } else if (index == 4) {
                // mandatory
                if (prd != null) {
                    cell.setText(String.valueOf(prd.isMandatory()));
                } else {
                    cell.setText("false");
                }
            } else if (index == 5) {
                // multiple
                if (prd != null) {
                    cell.setText(String.valueOf(prd.isMultiple()));
                } else {
                    cell.setText(String.valueOf(jcrNode.getProperty(String.valueOf(me.getKey())).isMultiple()));
                }
            } else if (index == 6) {
                // auto creatd
                if (prd != null) {
                    cell.setText(String.valueOf(prd.isAutoCreated()));
                } else {
                    cell.setText("false");
                }
            } else {
                cell.setText("n/a");
                return;
            }
        }

    }
}

From source file:org.apache.sling.ide.eclipse.ui.views.JcrCellLabelProvider.java

License:Apache License

private boolean canEdit(ViewerCell cell) {
    Object element = cell.getElement();
    if (element instanceof NewRow) {
        // can edit everything of a newrow (other than type properties)
        if (cell.getColumnIndex() > 2) {
            return false;
        }//from w ww  . j a va2s  . c o m
        return true;
    } else if (element instanceof IPropertyDescriptor) {
        if (cell.getColumnIndex() > 2 && cell.getColumnIndex() != 5) {
            return false;
        }
        IPropertyDescriptor pd = (IPropertyDescriptor) element;
        JcrNode jcrNode = (JcrNode) viewer.getInput();
        Map.Entry me = (Entry) pd.getId();
        if (me.getKey().equals("jcr:primaryType")) {
            return cell.getColumnIndex() == 2;
        } else {
            return true;
        }
    } else {
        // otherwise this is an unknown/unsupported cell element
        return false;
    }
}

From source file:org.bonitasoft.studio.contract.ui.property.AddRowOnEnterCellNavigationStrategy.java

License:Open Source License

public boolean isContractInputNameColumn(final ViewerCell currentSelectedCell) {
    return currentSelectedCell.getColumnIndex() == 0;
}

From source file:org.codehaus.groovy.eclipse.dsl.inferencing.suggestions.ui.MethodParameterTable.java

License:Apache License

protected void setTableProviders(final TableViewer viewer) {

    viewer.setContentProvider(new IStructuredContentProvider() {

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

        }//w w w  . ja  va2  s.  c o m

        public void dispose() {

        }

        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof List) {
                return ((List<?>) inputElement).toArray();
            }
            return null;
        }
    });

    viewer.setLabelProvider(new ColumnLabelProvider() {

        public void update(ViewerCell cell) {

            Object element = cell.getElement();
            int index = cell.getColumnIndex();
            cell.setText(getColumnText(element, index));
        }

        public String getColumnText(Object element, int index) {
            String text = null;
            if (element instanceof MethodParameter) {
                ColumnTypes[] values = ColumnTypes.values();
                if (index >= 0 && index < values.length) {
                    ColumnTypes type = values[index];
                    MethodParameter arg = (MethodParameter) element;

                    switch (type) {
                    case NAME:
                        text = arg.getName();
                        break;
                    case TYPE:
                        text = arg.getType();
                        break;

                    }
                }
            }
            return text;
        }

    });

    viewer.setInput(parameters);
}

From source file:org.csstudio.display.pace.gui.GUI.java

License:Open Source License

/** Update <code>selected_cell</code> from mouse position */
private void addCellTracker() {
    // This part is a bit unfortunate:
    // The TableViewer handles most of the interfacing between the
    // SWT table and the Model, but it only handles selections
    // on the row/Instance level, while we want to perform certain
    // tasks on the Cell level.
    // This code tracks the currently selected Model Cell, the Cell
    // under the last mouse click.
    // Since the Cell has a reference to its Column,
    // and the TableViewer provides all selected rows/Instances,
    // this then leads to all selected Cells.
    table_viewer.getTable().addListener(SWT.MouseDown, new Listener() {
        @Override/*from  ww  w.  j  a  v  a2  s. com*/
        public void handleEvent(final Event event) {
            // Get cell in SWT Table from mouse position
            final Point point = new Point(event.x, event.y);
            final ViewerCell viewer_cell = table_viewer.getCell(point);
            if (viewer_cell == null) { // Didn't hit table??
                selected_cell = null;
                return;
            }
            // Get Model's row/Instance, then Model's Cell in there
            final Instance instance = (Instance) viewer_cell.getElement();
            final int col_idx = viewer_cell.getColumnIndex();
            if (col_idx <= 0) { // Special first column with instance name
                selected_cell = null;
                return;
            }
            selected_cell = instance.getCell(col_idx - 1);

            // Update selection listeners about newly selected cells
            for (ISelectionChangedListener listener : listeners)
                listener.selectionChanged(new SelectionChangedEvent(GUI.this, getSelection()));
        }
    });
}

From source file:org.csstudio.display.rdbtable.ui.RDBTableRowLabelProvider.java

License:Open Source License

/** @param cell Cell in table that we need to update with info from
 *              the RDBTableRow//from  w ww  .j a v a2s. c  o m
 */
@Override
public void update(final ViewerCell cell) {
    final RDBTableRow row = (RDBTableRow) cell.getElement();
    // Display text of corresponding RDBTable column
    cell.setText(row.getColumn(cell.getColumnIndex()));
    // Highlight changed or deleted cells
    final Display display = cell.getControl().getDisplay();
    if (row.wasDeleted())
        cell.setBackground(display.getSystemColor(SWT.COLOR_GRAY));
    else if (row.wasModified())
        cell.setBackground(display.getSystemColor(SWT.COLOR_YELLOW));
    else
        cell.setBackground(null);
}

From source file:org.csstudio.swt.widgets.natives.SpreadSheetTable.java

License:Open Source License

/**Get row and column index under given point.
 * @param point the widget-relative coordinates
 * @return int[0] is row index, int[1] is column index.
 * null if no cell was found under given point.
 *///from  w w  w.j a v  a2 s.c  om
public int[] getRowColumnIndex(Point point) {
    Table table = tableViewer.getTable();
    ViewerCell cell = tableViewer.getCell(point);
    if (cell == null)
        return null;
    int col = cell.getColumnIndex();
    //        int row = table.indexOf((TableItem) cell.getItem());
    //        return new int[]{row, col};
    int row = -1;
    // get row index
    Rectangle clientArea = table.getClientArea();

    int index = table.getTopIndex();
    while (index < table.getItemCount()) {
        boolean visible = false;
        TableItem item = table.getItem(index);
        Rectangle rect = item.getBounds(col);
        if (rect.contains(point)) {
            row = index;
            return new int[] { row, col };
        }
        if (!visible && rect.intersects(clientArea)) {
            visible = true;
        }

        if (!visible)
            return new int[] { row, col };
        index++;
    }
    return new int[] { row, col };
}