Example usage for org.eclipse.jface.viewers ColorCellEditor ColorCellEditor

List of usage examples for org.eclipse.jface.viewers ColorCellEditor ColorCellEditor

Introduction

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

Prototype

public ColorCellEditor(Composite parent, int style) 

Source Link

Document

Creates a new color cell editor parented under the given control.

Usage

From source file:cop.swt.widgets.viewers.table.columns.settings.ColorColumn.java

License:LGPL

@Override
public CellEditor getCellEditor(Composite parent) {
    if (editor == null)
        editor = new ColorCellEditor(parent, SWT.NONE);
    return editor;
}

From source file:org.dawnsci.common.widgets.tree.ValueEditingSupport.java

License:Open Source License

protected CellEditor createColorEditor(final ColorNode element) {
    final ColorCellEditor ce = new ColorCellEditor((Composite) viewer.getControl(), SWT.NONE);
    return ce;//  ww  w  .  j a va  2s .c o m
}

From source file:org.eclipse.richbeans.generator.TableCellEditingSupport.java

License:Open Source License

@Override
protected CellEditor getCellEditor(Object element) {
    Class<?> type = (Class<?>) BeanProperties.value(element.getClass(), column.getName()).getValueType();

    if (isInteger(type)) {
        SpinnerCellEditor editor = new SpinnerCellEditor(table, SWT.NONE);
        editor.setMinimum(column.getMinInt());
        editor.setMaximum(column.getMaxInt());
        return editor;
    } else if (isNumber(type)) {
        return new NumberCellEditor(table, type, column.getMinDouble(), column.getMaxDouble(), null, SWT.NONE);
    } else if (isRGB(type)) {
        return new ColorCellEditor(table, SWT.NONE);
    }/*  w  w w .j  a va 2 s  . c  om*/
    return new TextCellEditor(table, SWT.NONE);
}

From source file:org.osate.imv.ui.views.FlowImpView.java

License:Open Source License

protected TableViewer createTableViewer(Composite parent) {
    TableViewer viewer = new TableViewer(parent, SWT.SINGLE | SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION);

    // Configure table.
    final Table table = viewer.getTable();
    table.setHeaderVisible(false);/*from  w  w  w.  ja v  a2  s  .  c  o m*/
    table.setLinesVisible(true);

    // We do NOT want the cell background to be cleared when a row has focus or is selected.
    table.addListener(SWT.EraseItem, new Listener() {

        @Override
        public void handleEvent(Event event) {
            if (event.index == 1) {
                TableItem item = (TableItem) event.item;
                Object data = item.getData();
                if (data instanceof FlowHighlighter) {
                    // Force background to be drawn.
                    GC gc = event.gc;
                    Color oldBg = gc.getBackground();
                    Rectangle clipping = gc.getClipping();
                    Rectangle rect = new Rectangle(clipping.x + 4, clipping.y + 4, clipping.width - 8,
                            clipping.height - 8);
                    gc.setBackground(((FlowHighlighter) data).getColor());
                    gc.fillRoundRectangle(rect.x, rect.y, rect.width, rect.height, 2, 2);
                    gc.setBackground(oldBg);
                }
            }

            if (event.index > 0) {
                event.detail &= ~SWT.SELECTED;
                event.detail &= ~SWT.FOCUSED;
            }
        }

    });

    // The first column contains a check box used for enabling/disabling highlighting for a particular
    // flow.
    TableViewerColumn col1 = createTableViewerColumn("Flow", 0, 300, viewer);
    // The first column contains a check box used for setting the feature
    // category inhibit status.
    col1.setLabelProvider(new EmulatedNativeCheckBoxLabelProvider(col1.getViewer()) {

        @Override
        protected boolean isChecked(Object element) {
            return ((FlowHighlighter) element).isHighlight();
        }

        public String getText(Object element) {
            String label = "";
            if (element instanceof FlowHighlighter) {
                if (((FlowHighlighter) element).getFlowImpl() != null) {
                    label = " " + ((FlowHighlighter) element).getFlowImpl().getSpecification().getName();
                } else
                // phf: added ETEF
                if (((FlowHighlighter) element).getETEF() != null) {
                    label = " " + ((FlowHighlighter) element).getETEF().getName();
                }
            }
            return label;
        }

    });

    col1.setEditingSupport(new EditingSupport(viewer) {

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new CheckboxCellEditor(tableViewer.getTable());
        }

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

        @Override
        protected Object getValue(Object element) {
            return ((FlowHighlighter) element).isHighlight();
        }

        @Override
        protected void setValue(Object element, Object value) {
            // Set new value.
            ((FlowHighlighter) element).setHighlight(((Boolean) value).booleanValue());
            // Update cell.
            tableViewer.refresh();
        }

    });

    // The seconds column contains a combo box editor for selecting the highlighter color.
    TableViewerColumn col2 = createTableViewerColumn("Color", 0, 200, viewer);

    col2.setLabelProvider(new ColumnLabelProvider() {
        public String getText(Object element) {
            return null; // No label is displayed.
        }

    });

    col2.setEditingSupport(new EditingSupport(col2.getViewer()) {
        private ColorCellEditor cellEditor = null;

        @Override
        protected CellEditor getCellEditor(Object element) {
            if (cellEditor == null) {
                cellEditor = new ColorCellEditor((Composite) getViewer().getControl(), SWT.READ_ONLY);
            }
            return cellEditor;
        }

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

        @Override
        protected Object getValue(Object element) {
            if (element instanceof FlowHighlighter) {
                FlowHighlighter highlighter = (FlowHighlighter) element;
                return highlighter.getColor().getRGB();
            }
            return null;
        }

        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof FlowHighlighter && value instanceof RGB) {
                FlowHighlighter highlighter = (FlowHighlighter) element;
                Color newColor = new Color(Display.getCurrent(), (RGB) value);
                // only set new value if it differs from old one
                if (!highlighter.getColor().equals(newColor)) {
                    highlighter.setColor(newColor);
                    tableViewer.update(element, new String[] { FlowHighlighter.COLOR_PROPERTY });
                }
            }
        }
    });

    return viewer;
}