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: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.  jav  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:au.gov.ga.earthsci.bookmark.part.editor.LayersPropertyEditor.java

License:Apache License

@Override
public Control createControl(Composite parent) {
    container = new Composite(parent, SWT.NONE);
    container.setLayoutData(new GridData(GridData.FILL_BOTH));
    container.setLayout(new GridLayout(1, false));

    Label l = new Label(container, SWT.TITLE);
    l.setText(Messages.LayersPropertyEditor_LayerStateLabel);

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

    layerTable = new CheckboxTableViewer(table);
    layerTable.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    layerTable.setContentProvider(ArrayContentProvider.getInstance());
    layerTable.getTable().setHeaderVisible(true);
    layerTable.getTable().setLinesVisible(true);

    TableViewerColumn col = new TableViewerColumn(layerTable, SWT.NONE);
    col.getColumn().setWidth(200);/*  w  w w.java 2  s .c  om*/
    col.getColumn().setText(Messages.LayersPropertyEditor_LayerStateLabelColumnLabel);
    col.getColumn().setResizable(true);
    col.getColumn().setMoveable(false);

    col = new TableViewerColumn(layerTable, SWT.NONE);
    col.getColumn().setWidth(100);
    col.getColumn().setText(Messages.LayersPropertyEditor_LayerStateOpacityColumnLabel);
    col.getColumn().setResizable(true);
    col.getColumn().setMoveable(false);
    col.setEditingSupport(new EditingSupport(col.getViewer()) {

        @Override
        protected CellEditor getCellEditor(Object element) {
            TextCellEditor textCellEditor = new TextCellEditor(layerTable.getTable());
            textCellEditor.setValidator(new ICellEditorValidator() {
                @Override
                public String isValid(Object value) {
                    try {
                        Double.parseDouble((String) value);
                        return null;
                    } catch (Exception e) {
                        return Messages.LayersPropertyEditor_InvalidOpacityMessage;
                    }
                }
            });
            return textCellEditor;
        }

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }

        @SuppressWarnings("unchecked")
        @Override
        protected Object getValue(Object element) {
            return Double.toString(((Entry<URI, Double>) element).getValue());
        }

        @SuppressWarnings("unchecked")
        @Override
        protected void setValue(Object element, Object value) {
            ((Entry<URI, Double>) element).setValue(Util.clamp(Double.parseDouble((String) value), 0, 1));
            layerTable.refresh(element, true);
        }

    });

    layerTable.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            @SuppressWarnings("unchecked")
            Entry<URI, Double> entry = (Entry<URI, Double>) cell.getElement();
            if (cell.getColumnIndex() == 0) {
                cell.setText(entry.getKey().toString());
            } else {
                cell.setText(Double.toString(entry.getValue()));
            }
        }
    });

    fillFieldsFromProperty(getProperty());

    return container;
}

From source file:au.gov.ga.earthsci.bookmark.ui.editor.LayersPropertyEditor.java

License:Apache License

@Override
public Control createControl(Composite parent) {
    container = new Composite(parent, SWT.NONE);
    container.setLayoutData(new GridData(GridData.FILL_BOTH));
    container.setLayout(new GridLayout(1, false));

    Label l = new Label(container, SWT.TITLE);
    l.setText(Messages.LayersPropertyEditor_LayerStateLabel);

    Table table = new Table(container,
            SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.CHECK);
    tableColumns = new ArrayList<TableViewerColumn>();
    colToName = new ConcurrentHashMap<Integer, String>();
    colToName.put(0, "id");
    colToName.put(1, "opacity");

    layerTable = new CheckboxTableViewer(table);
    layerTable.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    layerTable.setContentProvider(new IStructuredContentProvider() {

        @Override//from w w  w.j a va  2s. com
        public void inputChanged(Viewer arg0, Object oldItem, Object newItem) {
            for (TableViewerColumn col : tableColumns) {
                col.getColumn().dispose();
            }
            tableColumns.clear();
            colToName.clear();
            if (newItem != null) {
                Collection<String> cols = null;
                if (newItem instanceof Map) {
                    cols = getColumnsNeeded((Map) newItem);
                }

                for (String s : cols) {
                    if (!s.equals("id")) {
                        createTableColumn(s, s.equals(LayersPropertyPersister.OPACITY_ATTRIBUTE_NAME));
                    }
                }
                createTableColumn("id", false);
            }
        }

        @Override
        public void dispose() {

        }

        @Override
        public Object[] getElements(Object element) {
            List items = new ArrayList();
            Map<String, Map<String, String>> stateinfo = (Map<String, Map<String, String>>) element;
            for (Entry<String, Map<String, String>> entry : stateinfo.entrySet()) {
                items.add(entry);
            }
            return items.toArray(new Object[0]);
        }
    });

    layerTable.getTable().setHeaderVisible(true);
    layerTable.getTable().setLinesVisible(true);
    labelProv = new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            @SuppressWarnings("unchecked")
            Entry<String, Map<String, String>> entry = (Entry<String, Map<String, String>>) cell.getElement();
            int index = cell.getColumnIndex();
            String colName = colToName.get(index);
            cell.setText(colName.equals("id") ? entry.getKey() : entry.getValue().get(colName));
        }
    };

    fillFieldsFromProperty(getProperty());

    return container;
}

From source file:bndtools.editor.common.PropertiesTableLabelProvider.java

License:Open Source License

@Override
public void update(ViewerCell cell) {
    ColumnViewer viewer = getViewer();/*from   w ww  .jav  a  2  s  .  c o  m*/
    @SuppressWarnings("unchecked")
    Map<String, String> map = (Map<String, String>) viewer.getInput();

    String key = (String) cell.getElement();

    if (cell.getColumnIndex() == 0) {
        cell.setText(key);
    } else if (cell.getColumnIndex() == 1) {
        cell.setText(map.get(key));
    }
}

From source file:bndtools.editor.components.ComponentSvcRefTableLabelProvider.java

License:Open Source License

@Override
public void update(ViewerCell cell) {
    ComponentSvcReference svcRef = (ComponentSvcReference) cell.getElement();
    int columnIndex = cell.getColumnIndex();
    StyledString styledString;/* w w w .  jav  a  2 s. c  o  m*/
    switch (columnIndex) {
    case 0:
        styledString = new StyledString(svcRef.getName());

        String bind = svcRef.getBind();
        String unbind = svcRef.getUnbind();
        if (bind != null) {
            StringBuilder buffer = new StringBuilder();
            buffer.append(" {").append(bind).append('/');
            if (unbind != null) {
                buffer.append(unbind);
            }
            buffer.append('}');
            styledString.append(buffer.toString(), StyledString.DECORATIONS_STYLER);
        }
        cell.setImage(svcRef.isDynamic() ? dynamicImg : staticImg);
        cell.setText(styledString.toString());
        cell.setStyleRanges(styledString.getStyleRanges());
        break;
    case 1:
        styledString = new StyledString(svcRef.getServiceClass(), StyledString.QUALIFIER_STYLER);
        cell.setText(styledString.toString());
        cell.setStyleRanges(styledString.getStyleRanges());
        break;
    case 2:
        char[] cardinality = new char[] { svcRef.isOptional() ? '0' : '1', '.', '.',
                svcRef.isMultiple() ? 'n' : '1' };
        styledString = new StyledString(new String(cardinality), StyledString.COUNTER_STYLER);
        cell.setText(styledString.toString());
        cell.setStyleRanges(styledString.getStyleRanges());
        break;
    case 3:
        String target = svcRef.getTargetFilter();
        cell.setText(target != null ? target : "");
        break;
    }
}

From source file:bndtools.model.importanalysis.ImportsExportsTreeLabelProvider.java

License:Open Source License

@Override
public void update(ViewerCell cell) {
    if (IMPORTS_PLACEHOLDER.equals(cell.getElement())) {
        if (cell.getColumnIndex() == 0) {
            cell.setImage(pkgFolderImg);
            cell.setText("Import Packages");
        }//from   w  w w. jav a2s. c om
    } else if (EXPORTS_PLACEHOLDER.equals(cell.getElement())) {
        if (cell.getColumnIndex() == 0) {
            cell.setImage(pkgFolderImg);
            cell.setText("Export Packages");
        }
    } else if (REQUIRED_PLACEHOLDER.equals(cell.getElement())) {
        if (cell.getColumnIndex() == 0) {
            cell.setImage(bundleFolderImg);
            cell.setText("Required Bundles");
        }
    } else if (cell.getElement() instanceof ImportUsedByPackage) {
        if (cell.getColumnIndex() == 0) {
            StyledString styledString = new StyledString("Used By: ", UIConstants.ITALIC_QUALIFIER_STYLER);
            styledString.append(((ImportUsedByPackage) cell.getElement()).usedByName);
            cell.setText(styledString.getString());
            cell.setStyleRanges(styledString.getStyleRanges());
        }
    } else if (cell.getElement() instanceof ImportUsedByClass) {
        if (cell.getColumnIndex() == 0) {
            ImportUsedByClass importUsedBy = (ImportUsedByClass) cell.getElement();
            String fqn = importUsedBy.clazz.getFQN();
            String className = fqn.substring(fqn.lastIndexOf('.') + 1);
            cell.setText(className);
            cell.setImage(classImg);
        }
    } else if (cell.getElement() instanceof ExportUsesPackage) {
        if (cell.getColumnIndex() == 0) {
            StyledString styledString = new StyledString("Uses: ", UIConstants.ITALIC_QUALIFIER_STYLER);
            styledString.append(((ExportUsesPackage) cell.getElement()).name);
            cell.setText(styledString.getString());
            cell.setStyleRanges(styledString.getStyleRanges());
        }
    } else if (cell.getElement() instanceof RequiredBundle) {
        RequiredBundle rb = (RequiredBundle) cell.getElement();
        switch (cell.getColumnIndex()) {
        case 0:
            StyledString label;
            if (rb.isSatisfied())
                label = new StyledString(rb.getName(), StyledString.QUALIFIER_STYLER);
            else
                label = new StyledString(rb.getName());

            String version = rb.getAttribs().get(Constants.BUNDLE_VERSION_ATTRIBUTE);
            if (version != null)
                label.append(" " + version, StyledString.COUNTER_STYLER);

            String resolution = rb.getAttribs().get(Constants.RESOLUTION_DIRECTIVE);
            boolean optional = org.osgi.framework.Constants.RESOLUTION_OPTIONAL.equals(resolution);
            if (resolution != null)
                label.append(" <" + resolution + ">", UIConstants.ITALIC_QUALIFIER_STYLER);

            cell.setText(label.getString());
            cell.setStyleRanges(label.getStyleRanges());

            if (optional)
                cell.setImage(requiredBundleOptImg);
            else if (rb.isSatisfied())
                cell.setImage(requiredBundleSatisfiedImg);
            else
                cell.setImage(requiredBundleImg);
            break;
        case 1:
            cell.setText(formatAttribs(rb.getAttribs()));
            break;
        default:
            break;
        }
    } else if (cell.getElement() instanceof ImportPackage || cell.getElement() instanceof ExportPackage) {
        HeaderClause entry = (HeaderClause) cell.getElement();
        switch (cell.getColumnIndex()) {
        case 0:
            boolean selfImport = false;
            if (entry instanceof ImportPackage) {
                selfImport = ((ImportPackage) entry).isSelfImport();
            }

            StyledString styledString;
            if (selfImport) {
                styledString = new StyledString(entry.getName(), StyledString.QUALIFIER_STYLER);
            } else {
                styledString = new StyledString(entry.getName());
            }

            String version = entry.getAttribs().get(Constants.VERSION_ATTRIBUTE);
            if (version != null)
                styledString.append(" " + version, StyledString.COUNTER_STYLER);

            String resolution = entry.getAttribs().get(Constants.RESOLUTION_DIRECTIVE);
            boolean optional = org.osgi.framework.Constants.RESOLUTION_OPTIONAL.equals(resolution);
            if (resolution != null) {
                styledString.append(" <" + resolution + ">", UIConstants.ITALIC_QUALIFIER_STYLER);
            }

            cell.setText(styledString.getString());
            cell.setStyleRanges(styledString.getStyleRanges());
            if (optional) {
                cell.setImage(packageOptImg);
            } else if (selfImport) {
                cell.setImage(packageImpExpImg);
            } else {
                cell.setImage(packageImg);
            }
            break;
        case 1:
            cell.setText(formatAttribs(entry.getAttribs()));
            break;
        default:
            break;
        }
    }
}

From source file:br.ufes.inf.nemo.ontouml.transformation.onto2info.ui.util.BooleanCellEditor.java

License:Open Source License

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);//w ww . j a  v  a 2s  . com
    row.setImage(index, null);
    row.setText(index, ""); //$NON-NLS-1$

    if (activationEvent.eventType != ColumnViewerEditorActivationEvent.TRAVERSAL && changeOnActivation) {
        //System.out.println("!!!!!!!! activate() !!!!!!!!\n");
        //button.setSelection(!button.getSelection()); // original code

        // rcarraretto (this almost works)
        /* The problem is: the class that calls [Boolean]CellEditor.activate() also calls, further on, other methods of CellEditor 
         * So, since I programmed this SWT.Selection to fireApplyEditorValue()
         * This will deactivate() this CellEditor and will generate a NullPointerException
         * Perhaps, a way to solve this is to extend and override the class and the method that calls [Boolean]CellEditor.activate()
         */
        //button.notifyListeners(SWT.Selection, new Event());
    }

    // 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:ca.uvic.chisel.javasketch.ui.internal.search.TraceSearchResultLabelProvider.java

License:Open Source License

@Override
public void update(ViewerCell cell) {
    Object element = cell.getElement();
    int columnIndex = cell.getColumnIndex();
    cell.setImage(getColumnImage(element, columnIndex));
    if (element instanceof Match) {
        String text = "";
        switch (columnIndex) {
        case 0://from   w ww.  j  a  v a  2  s .c om
            setMatchText(cell);
            break;
        case 1:
            ITraceModelProxy mElement = (ITraceModelProxy) ((Match) element).getElement();
            switch (mElement.getKind()) {
            case ITraceModel.ACTIVATION:
                text = "Activation";
                break;
            case ITraceModel.TRACE_CLASS:
                text = "Class";
                break;
            case ITraceModel.TRACE_CLASS_METHOD:
                text = "Method";
                break;
            case ITraceModel.THREAD:
                text = "Thread";
                break;
            case ITraceModel.TRACE:
                text = "Trace";
                break;
            }
            if ((mElement.getKind() & ITraceModel.MESSAGE) == ITraceModel.MESSAGE) {
                text = "Message";
            }
            cell.setText(text);
        }
    } else {
        cell.setText(getColumnText(element, columnIndex));
    }
}

From source file:ca.uvic.chisel.javasketch.ui.internal.views.TraceNavigatorLabelProvider.java

License:Open Source License

@Override
public void update(ViewerCell cell) {
    Object element = cell.getElement();
    IProgramSketch sketch = null;//  w  w w . ja v a  2  s.  c o  m
    Image image = null;
    if (element instanceof IProgramSketch) {
        sketch = (IProgramSketch) element;
    } else if (element instanceof IThread) {
        IThread thread = (IThread) element;
        sketch = SketchPlugin.getDefault().getSketch(thread);
    }
    switch (cell.getColumnIndex()) {
    case TraceNavigator.ACTIVE_TRACE_COLUMN:
        if (sketch != null) {
            if (sketch.equals(SketchPlugin.getDefault().getActiveSketch())) {
                cell.setImage(SketchPlugin.getDefault().getImageRegistry()
                        .get(ISketchImageConstants.ICON_TRACE_ACTIVE));
            } else {
                cell.setImage(SketchPlugin.getDefault().getImageRegistry()
                        .get(ISketchImageConstants.ICON_TRACE_INACTIVE));
            }
        }
        break;
    case TraceNavigator.LABEL_COLUMN:
        cell.setText(getText(element));
        cell.setImage(getImage(element));
        break;
    case TraceNavigator.VISIBLE_TRACE_COLUMN:
        if (sketch != null) {
            IDegreeOfInterest doi = SketchPlugin.getDefault().getDOI();
            IProgramSketch activeSketch = SketchPlugin.getDefault().getActiveSketch();
            if (activeSketch != null) {
                if (activeSketch.getTracedLaunchConfiguration().equals(sketch.getTracedLaunchConfiguration())) {
                    TraceNavigator navigator = (TraceNavigator) PlatformUI.getWorkbench()
                            .getActiveWorkbenchWindow().getActivePage().findView(TraceNavigator.VIEW_ID);
                    if (navigator != null) {
                        if (doi.isSketchHidden(sketch)) {
                            image = SketchPlugin.getDefault().getImageRegistry()
                                    .get(ISketchImageConstants.ICON_ELEMENT_FILTERED);
                        } else {
                            image = SketchPlugin.getDefault().getImageRegistry()
                                    .get(ISketchImageConstants.ICON_ELEMENT_VISIBLE);
                        }
                    }
                }
            }
        }
        cell.setImage(image);
        break;
    }
}

From source file:com.android.ddmuilib.logcat.LogCatMessageLabelProvider.java

License:Apache License

@Override
public void update(ViewerCell cell) {
    Object element = cell.getElement();
    if (!(element instanceof LogCatMessage)) {
        return;/*w ww  .j  a  v a  2s  . co  m*/
    }
    LogCatMessage m = (LogCatMessage) element;

    String text = getCellText(m, cell.getColumnIndex());
    cell.setText(text);
    cell.setFont(mLogFont);
    cell.setForeground(getForegroundColor(m));
}