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

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

Introduction

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

Prototype

public StyledCellLabelProvider() 

Source Link

Document

Creates a new StyledCellLabelProvider.

Usage

From source file:at.bestsolution.eclipse.properties.PropertyContentOutlinePage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    super.createControl(parent);
    TreeViewer viewer = getTreeViewer();
    viewer.setLabelProvider(new StyledCellLabelProvider() {
        @Override/*from  w w w  .j  a  v a  2s  .  c o m*/
        public void update(ViewerCell cell) {
            Object element = cell.getElement();
            if (element instanceof PropertyGroup) {
                cell.setText(((PropertyGroup) element).name);
                cell.setImage(Activator.getDefault().getImageRegistry().get(Activator.GROUP_ICON));
                cell.setStyleRanges(null);
            } else if (element instanceof Property) {
                cell.setImage(Activator.getDefault().getImageRegistry().get(Activator.KEY_ICON));
                StyledString s = new StyledString(((Property) element).pair.key);
                String text = ((Property) element).pair.value;
                if (text.length() > 20) {
                    text = text.substring(0, 20) + "...";
                }
                s.append(" : " + text, StyledString.DECORATIONS_STYLER);
                cell.setStyleRanges(s.getStyleRanges());
                cell.setText(s.getString());
            }
            super.update(cell);
        }
    });

    viewer.setContentProvider(new HierarchicalContentProvider());

    if (isSorted()) {
        setSorted(true);
    }

    createHierarchicalStructure();

    if (isHierarchical()) {
        viewer.setInput(hierarchicalStructure);
    } else {
        viewer.setInput(flatStructure);
    }
}

From source file:at.bestsolution.efxclipse.tooling.jdt.ui.internal.editors.outline.PropertyContentOutlinePage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    super.createControl(parent);
    TreeViewer viewer = getTreeViewer();
    viewer.setLabelProvider(new StyledCellLabelProvider() {
        @Override/*from   w w w.  j a v  a 2 s.  c o m*/
        public void update(ViewerCell cell) {
            Object element = cell.getElement();
            if (element instanceof PropertyGroup) {
                cell.setText(((PropertyGroup) element).name);
                cell.setImage(JavaFXUIPlugin.getDefault().getImageRegistry().get(JavaFXUIPlugin.GROUP_ICON));
                cell.setStyleRanges(null);
            } else if (element instanceof Property) {
                cell.setImage(JavaFXUIPlugin.getDefault().getImageRegistry().get(JavaFXUIPlugin.KEY_ICON));
                StyledString s = new StyledString(((Property) element).pair.key);
                String text = ((Property) element).pair.value;
                if (text.length() > 20) {
                    text = text.substring(0, 20) + "...";
                }
                s.append(" : " + text, StyledString.DECORATIONS_STYLER);
                cell.setStyleRanges(s.getStyleRanges());
                cell.setText(s.getString());
            }
            super.update(cell);
        }
    });

    viewer.setContentProvider(new HierarchicalContentProvider());

    if (isSorted()) {
        setSorted(true);
    }

    createHierarchicalStructure();

    if (isHierarchical()) {
        viewer.setInput(hierarchicalStructure);
    } else {
        viewer.setInput(flatStructure);
    }
}

From source file:com.kopson.cite.views.SmartLogConsole.java

License:Open Source License

/**
 *  This will create the columns for the table
 *  /*from  ww  w. ja  va 2s  .  c o  m*/
 * @param parent
 */
private void createColumns(final Composite parent) {
    headerMenu = new Menu(parent.getShell(), SWT.POP_UP);

    String[] titles = { CITE.SMARTLOG_COLUMN_ID, CITE.SMARTLOG_COLUMN_TYPE, CITE.SMARTLOG_COLUMN_TAG,
            CITE.SMARTLOG_COLUMN_MESSAGE, CITE.SMARTLOG_COLUMN_OBJECT, CITE.SMARTLOG_COLUMN_ASSERT };

    int[] bounds = { 100, 100, 100, 100, 100, 100 };

    TableViewerColumn idColumn = createTableViewerColumn(titles[0], bounds[0], 0);
    idColumn.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            cell.setText("" + ((SmartLogEntry) cell.getElement()).getId());
        }

        @Override
        public String getToolTipText(Object element) {
            return "Tooltip (" + element + ")";
        }

        @Override
        public Point getToolTipShift(Object object) {
            return new Point(5, 5);
        }

        @Override
        public int getToolTipDisplayDelayTime(Object object) {
            return 100;
        }

        @Override
        public int getToolTipTimeDisplayed(Object object) {
            return 5000;
        }

    });

    TableViewerColumn typeColumn = createTableViewerColumn(titles[1], bounds[1], 1);
    typeColumn.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            String search = searchText.getText();
            SmartLogEntry logRow = (SmartLogEntry) cell.getElement();
            String cellText = logRow.getType();
            cell.setText(cellText);
            if (search != null && search.length() > 0) {
                int intRangesCorrectSize[] = SearchUtil.getSearchTermOccurrences(search, cellText);
                List<StyleRange> styleRange = new ArrayList<StyleRange>();
                for (int i = 0; i < intRangesCorrectSize.length / 2; i++) {
                    int start = intRangesCorrectSize[i];
                    int length = intRangesCorrectSize[++i];
                    StyleRange myStyledRange = new StyleRange(start, length, null, colorYellow);

                    styleRange.add(myStyledRange);
                }
                cell.setStyleRanges(styleRange.toArray(new StyleRange[styleRange.size()]));
            } else {
                cell.setStyleRanges(null);
            }

            super.update(cell);

        }
    });

    typeColumn.setEditingSupport(new TypeEditingSupport(viewer));

    TableViewerColumn tagColumn = createTableViewerColumn(titles[2], bounds[2], 2);
    tagColumn.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            cell.setText(((SmartLogEntry) cell.getElement()).getTag());
        }

        @Override
        public String getToolTipText(Object element) {
            return "Tooltip (" + element + ")";
        }

        @Override
        public Point getToolTipShift(Object object) {
            return new Point(5, 5);
        }

        @Override
        public int getToolTipDisplayDelayTime(Object object) {
            return 100;
        }

        @Override
        public int getToolTipTimeDisplayed(Object object) {
            return 5000;
        }

    });
    tagColumn.setEditingSupport(new TagEditingSupport(viewer));

    TableViewerColumn messageColumn = createTableViewerColumn(titles[3], bounds[3], 3);
    messageColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return ((SmartLogEntry) element).getMessage();
        }
    });

    messageColumn.setEditingSupport(new MessageEditingSupport(viewer));

    TableViewerColumn objectColumn = createTableViewerColumn(titles[4], bounds[4], 4);
    objectColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return ((SmartLogEntry) element).getObject();
        }

        //TODO: set meaningful images
        @Override
        public Image getImage(Object element) {
            if (((SmartLogEntry) element).getObject() != null) {
                return CHECKED;
            }
            return UNCHECKED;
        }
    });

    TableViewerColumn assertColumn = createTableViewerColumn(titles[5], bounds[5], 5);
    assertColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return ((SmartLogEntry) element).getAssertion();
        }
    });
    assertColumn.setEditingSupport(new AssertionEditingSupport(viewer));
}

From source file:com.netxforge.netxstudio.screens.ch9.ObjectExpressions.java

License:Open Source License

private void bindExpressionSelector(EMFDataBindingContext bindingContext) {

    List<EReference> expressionEReferences = StudioUtils.expressionEReferences(primaryContextObject);
    for (EReference eref : expressionEReferences) {
        expressionEntries.put(eref.getName(), eref);
    }/*from   w  w  w .  ja  v a2  s  .  co  m*/

    // set the content provider and label provider for the listviewer.
    tableViewer.setContentProvider(new ArrayContentProvider());
    tableViewer.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            Object element = cell.getElement();
            EReference eReference = expressionEntries.get(element);
            Expression exp = (Expression) primaryContextObject.eGet(eReference);

            // Strip some words from the ref name.
            String refName = (String) element;
            String replaceAll = refName.replaceAll("(Expression|Ref)", "");
            StyledString styledString = new StyledString((String) replaceAll);

            if (exp == null) {
                styledString.append(" (not set)", StyledString.COUNTER_STYLER);
            }

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

            super.update(cell);
        }
    });

    tableViewer.setInput(expressionEntries.keySet().toArray());

}

From source file:de.byteholder.geoclipse.mapprovider.DialogMPProfile.java

License:Open Source License

/**
 * create columns for the tree viewer/*from   w ww  .  j  a  va 2  s .co m*/
 * 
 * @param pixelConverter
 */
private void createUI116ViewerColumns(final TreeColumnLayout treeLayout, final PixelConverter pixelConverter) {

    TreeViewerColumn tvc;
    TreeColumn tc;

    /*
     * column: map provider
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_MapProvider);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_MapProvider_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final StyledString styledString = new StyledString();
            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();
                final MP mapProvider = mpWrapper.getMP();

                styledString.append(mapProvider.getName());

                cell.setImage(mpWrapper.isDisplayedInMap() ? _imageMap : _imagePlaceholder);

            } else if (element instanceof TVIWmsLayer) {

                final MtLayer mtLayer = ((TVIWmsLayer) element).getMtLayer();

                styledString.append(mtLayer.getGeoLayer().getTitle());

                styledString.append("  (", StyledString.QUALIFIER_STYLER);//$NON-NLS-1$
                styledString.append(mtLayer.getGeoLayer().getName(), StyledString.QUALIFIER_STYLER);
                styledString.append(")", StyledString.QUALIFIER_STYLER);//$NON-NLS-1$

                cell.setImage(mtLayer.isDisplayedInMap() ? _imageLayer : _imagePlaceholder);

            } else {
                styledString.append(element.toString());
            }

            cell.setText(styledString.getString());
            cell.setStyleRanges(styledString.getStyleRanges());
        }
    });
    treeLayout.setColumnData(tc, new ColumnWeightData(100, true));

    /*
     * column: is visible
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_IsVisible);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_IsVisible_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                cell.setText(Boolean.toString(mpWrapper.isDisplayedInMap()));

            } else if (element instanceof TVIWmsLayer) {

                final MtLayer mtLayer = ((TVIWmsLayer) element).getMtLayer();

                cell.setText(Boolean.toString(mtLayer.isDisplayedInMap()));

            } else {
                cell.setText(UI.EMPTY_STRING);
            }
        }
    });

    tvc.setEditingSupport(new EditingSupport(_treeViewer) {

        private final CheckboxCellEditor fCellEditor = new CheckboxCellEditor(_treeViewer.getTree());

        @Override
        protected boolean canEdit(final Object element) {

            if (element instanceof TVIMapProvider) {

                final TVIMapProvider tvi = (TVIMapProvider) element;
                final MP mapProvider = tvi.getMapProviderWrapper().getMP();

                if (mapProvider instanceof MPWms) {

                    // wms can be toggled when at least one layer is displayed

                    return canWmsBeDisplayed((MPWms) mapProvider);
                }
            }

            return true;
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            return fCellEditor;
        }

        @Override
        protected Object getValue(final Object element) {

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                return mpWrapper.isDisplayedInMap();

            } else if (element instanceof TVIWmsLayer) {

                final MtLayer mtLayer = ((TVIWmsLayer) element).getMtLayer();

                return mtLayer.isDisplayedInMap();
            }

            return null;
        }

        @Override
        protected void setValue(final Object element, final Object value) {

            final boolean isChecked = ((Boolean) value);

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                mpWrapper.setIsDisplayedInMap(isChecked);

                if (isChecked) {

                    /*
                     * remove parent tiles from loading cache because they can have loading
                     * errors (from their children) which prevents them to be loaded again
                     */
                    _mpProfile.resetParentTiles();
                }

                enableProfileMapButton();

            } else if (element instanceof TVIWmsLayer) {

                final TVIWmsLayer tviLayer = (TVIWmsLayer) element;
                final MtLayer mtLayer = tviLayer.getMtLayer();

                mtLayer.setIsDisplayedInMap(isChecked);

                updateMVMapProvider(tviLayer);
            }

            // update viewer
            getViewer().update(element, null);

            updateLiveView();
        }
    });
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10)));

    /*
     * column: alpha
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_Alpha);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_Alpha_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                cell.setText(Integer.toString(mpWrapper.getAlpha()));

            } else {

                cell.setText(UI.EMPTY_STRING);
            }
        }
    });
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10)));

    /*
     * column: brightness
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_Brightness);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_Brightness_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                cell.setText(mpWrapper.isBrightnessForNextMp()
                        ? Integer.toString(mpWrapper.getBrightnessValueForNextMp())
                        : UI.EMPTY_STRING);

            } else {

                cell.setText(UI.EMPTY_STRING);
            }
        }
    });
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10)));

    /*
     * column: empty to prevent scrolling to the right when the right column is selected
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            /*
             * !!! label provider is necessary to prevent a NPE !!!
             */
        }
    });
    tc = tvc.getColumn();
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(4)));

}

From source file:de.dentrassi.eclipse.rpm.editor.HeaderTable.java

License:Open Source License

private void createColumnCell(final AbstractColumnLayout layout, final String name, final int weight,
        final Consumer<ViewerCell> cellUpdater) {
    final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.setLabelProvider(new StyledCellLabelProvider() {

        @Override//from ww  w  . jav a  2  s .c om
        public void update(final ViewerCell cell) {
            cellUpdater.accept(cell);
        }
    });
    col.getColumn().setText(name);
    layout.setColumnData(col.getColumn(), new ColumnWeightData(weight));
}

From source file:de.walware.statet.r.internal.ui.pkgmanager.PkgTab.java

License:Open Source License

private void createDetailRef(final Composite parent, final int type) {
    {//from   w  w  w . j ava 2s  . co  m
        final Label label = new Label(parent, SWT.NONE);
        label.setText((type == 0) ? "Dependencies:" : "Reverse:");
        label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    }

    final TreeViewer viewer = new TreeViewer(parent, (SWT.BORDER | SWT.SINGLE));
    if (type == 0) {
        fDetailDepTable = viewer;
    } else {
        fDetailRevTable = viewer;
    }
    {
        final GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
        gd.heightHint = LayoutUtil.hintHeight(viewer.getTree(), 12);
        gd.widthHint = fDialog.hintWidthInChars(20);
        viewer.getControl().setLayoutData(gd);
    }

    viewer.setContentProvider(new DetailGroup.ContentProvider(5) {
        private static final int DEPENDS = 0;
        private static final int IMPORTS = 1;
        private static final int LINKINGTO = 2;
        private static final int SUGGESTS = 3;
        private static final int ENHANCES = 4;
        {
            fGroups[DEPENDS] = new DetailGroup(0, "Depends");
            fGroups[IMPORTS] = new DetailGroup(1, "Imports");
            fGroups[LINKINGTO] = new DetailGroup(2, "Linking To");
            fGroups[SUGGESTS] = new DetailGroup(3, "Suggests");
            fGroups[ENHANCES] = new DetailGroup(4, "Enhances");
        }

        @Override
        public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) {
            if (newInput instanceof IRPkgData) {
                final IRPkgData pkg = (IRPkgData) newInput;
                fGroups[DEPENDS].setList(pkg.getDepends());
                fGroups[IMPORTS].setList(pkg.getImports());
                fGroups[LINKINGTO].setList(pkg.getLinkingTo());
                fGroups[SUGGESTS].setList(pkg.getSuggests());
                fGroups[ENHANCES].setList(pkg.getEnhances());
            } else {
                fGroups[DEPENDS].clearList();
                fGroups[IMPORTS].clearList();
                fGroups[LINKINGTO].clearList();
                fGroups[SUGGESTS].clearList();
                fGroups[ENHANCES].clearList();
            }
        }
    });
    viewer.setAutoExpandLevel(TreeViewer.ALL_LEVELS);

    viewer.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            final Object element = cell.getElement();
            if (element instanceof DetailGroup) {
                cell.setText(((DetailGroup) element).getLabel());
                cell.setStyleRanges(null);
                return;
            } else if (element instanceof IRPkg) {
                final IRPkg pkg = (IRPkg) element;
                final StyledString text = new StyledString();
                text.append(pkg.getName());
                final String version = pkg.getVersion().toString();
                if (!version.isEmpty()) {
                    text.append(" (", StyledString.QUALIFIER_STYLER); //$NON-NLS-1$
                    text.append(version, StyledString.QUALIFIER_STYLER);
                    text.append(")", StyledString.QUALIFIER_STYLER); //$NON-NLS-1$
                }
                cell.setText(text.getString());
                cell.setStyleRanges(text.getStyleRanges());
                return;
            }
            throw new IllegalStateException();
        }
    });

    viewer.setInput(NO_INPUT);

    viewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(final DoubleClickEvent event) {
            final Object element = ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (element instanceof IRPkg) {
                showPkg(((IRPkg) element).getName());
            }
        }
    });
}

From source file:eu.esdihumboldt.hale.io.csv.ui.LookupTablePage.java

License:Open Source License

private void addPreview(Composite page) {

    tableContainer = new Composite(page, SWT.NONE);
    tableContainer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    TableColumnLayout layout = new TableColumnLayout();
    tableContainer.setLayout(layout);//from   ww w .  j  a v a  2s.  c o m

    tableViewer = new TableViewer(tableContainer, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
    tableViewer.getTable().setLinesVisible(true);
    tableViewer.getTable().setHeaderVisible(true);
    tableViewer.setContentProvider(ArrayContentProvider.getInstance());

    sourceColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    layout.setColumnData(sourceColumn.getColumn(), new ColumnWeightData(1));
    sourceColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            @SuppressWarnings("unchecked")
            Entry<Value, Value> entry = (Entry<Value, Value>) element;
            return entry.getKey().getStringRepresentation();
        }
    });

    targetColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    layout.setColumnData(targetColumn.getColumn(), new ColumnWeightData(1));
    targetColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            @SuppressWarnings("unchecked")
            Entry<Value, Value> entry = (Entry<Value, Value>) cell.getElement();
            if (entry.getValue() == null) {
                StyledString styledString = new StyledString("(unmapped)", StyledString.DECORATIONS_STYLER);
                cell.setText(styledString.getString());
                cell.setStyleRanges(styledString.getStyleRanges());
            } else {
                cell.setText(entry.getValue().getStringRepresentation());
                cell.setStyleRanges(null);
            }
            super.update(cell);
        }
    });
}

From source file:eu.esdihumboldt.hale.ui.functions.core.ClassificationMappingParameterPage.java

License:Open Source License

private Control createManualTabControl(Composite tabParent) {
    // TODO load occurring value sources
    Composite tabContent = new Composite(tabParent, SWT.NONE);
    tabContent.setLayout(new GridLayout(1, true));

    ToolBar toolBar = new ToolBar(tabContent, SWT.NONE);
    toolBar.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));

    Composite tableContainer = new Composite(tabContent, SWT.NONE);
    tableContainer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    TableColumnLayout layout = new TableColumnLayout();
    tableContainer.setLayout(layout);//from w ww.  j  ava2s .c o  m

    tableViewer = new TableViewer(tableContainer, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
    tableViewer.getTable().setLinesVisible(true);
    tableViewer.getTable().setHeaderVisible(true);
    tableViewer.setContentProvider(ArrayContentProvider.getInstance());

    TableViewerColumn sourceColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    sourceColumn.getColumn().setText("Source value");
    layout.setColumnData(sourceColumn.getColumn(), new ColumnWeightData(1));
    sourceColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            @SuppressWarnings("unchecked")
            Entry<Value, Value> entry = (Entry<Value, Value>) element;
            return entry.getKey().getStringRepresentation();
        }
    });

    TableViewerColumn targetColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    targetColumn.getColumn().setText("Target value");
    layout.setColumnData(targetColumn.getColumn(), new ColumnWeightData(1));
    targetColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            @SuppressWarnings("unchecked")
            Entry<Value, Value> entry = (Entry<Value, Value>) cell.getElement();
            if (entry.getValue() == null) {
                StyledString styledString = new StyledString("(unmapped)", StyledString.DECORATIONS_STYLER);
                cell.setText(styledString.getString());
                cell.setStyleRanges(styledString.getStyleRanges());
            } else {
                cell.setText(entry.getValue().getStringRepresentation());
                cell.setStyleRanges(null);
            }
            super.update(cell);
        }
    });

    tableViewer.setInput(lookupTable.entrySet());

    tableViewer.getTable().addMouseListener(new MouseAdapter() {

        @Override
        public void mouseDoubleClick(MouseEvent e) {
            ViewerCell cell = tableViewer.getCell(new Point(e.x, e.y));
            if (cell != null) {
                @SuppressWarnings("unchecked")
                Entry<Value, Value> entry = (Entry<Value, Value>) cell.getElement();
                Value oldValue;
                Value newValue;
                if (cell.getColumnIndex() == 0) {
                    oldValue = entry.getKey();
                    newValue = selectValue(sourceProperty, sourceEntity, "Edit source value",
                            "Enter a new source value", oldValue.getStringRepresentation());
                } else {
                    oldValue = entry.getValue();
                    String initialValue = oldValue == null ? null : oldValue.getStringRepresentation();
                    newValue = selectValue(targetProperty, targetEntity, "Edit target value",
                            "Enter a target value", initialValue);
                }
                if (newValue == null)
                    return;
                if (cell.getColumnIndex() == 0) {
                    if (!newValue.equals(oldValue) && lookupTable.containsKey(newValue)) {
                        showDuplicateSourceWarning(newValue.getStringRepresentation());
                    } else {
                        lookupTable.put(newValue, entry.getValue());
                        lookupTable.remove(oldValue);
                        tableViewer.refresh();
                    }
                } else {
                    entry.setValue(newValue);
                    tableViewer.update(entry, null);
                }
            }
        }
    });

    final ToolItem valueAdd = new ToolItem(toolBar, SWT.PUSH);
    final ToolItem fillValues = new ToolItem(toolBar, SWT.PUSH);
    new ToolItem(toolBar, SWT.SEPARATOR);
    final ToolItem loadButton = new ToolItem(toolBar, SWT.PUSH);
    saveButton = new ToolItem(toolBar, SWT.PUSH);
    new ToolItem(toolBar, SWT.SEPARATOR);
    final ToolItem valueRemove = new ToolItem(toolBar, SWT.PUSH);
    removeAllButton = new ToolItem(toolBar, SWT.PUSH);

    valueAdd.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImages.IMG_ADD));
    valueAdd.setToolTipText("Add source value");
    valueAdd.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            Value newSource = selectValue(sourceProperty, sourceEntity, "Add source value",
                    "Enter a new source value", null);
            if (newSource != null) {
                if (lookupTable.containsKey(newSource))
                    showDuplicateSourceWarning(newSource.getStringRepresentation());
                else {
                    lookupTable.put(newSource, null);
                    removeAllButton.setEnabled(true);
                    saveButton.setEnabled(true);
                    tableViewer.refresh();
                }
            }
        }
    });

    loadButton.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImages.IMG_OPEN));
    loadButton.setToolTipText("Load classification from file");
    loadButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            LookupTableLoadWizard wizard = new LookupTableLoadWizard();
            LookupLoadAdvisor advisor = new LookupLoadAdvisor();
            wizard.setAdvisor(advisor, null);
            Shell shell = Display.getCurrent().getActiveShell();
            HaleWizardDialog dialog = new HaleWizardDialog(shell, wizard);
            dialog.open();

            if (advisor.getLookupTable() != null) {
                lookupTable.putAll(advisor.getLookupTable().getTable().asMap());
                tableViewer.refresh();
                removeAllButton.setEnabled(!lookupTable.isEmpty());
                saveButton.setEnabled(!lookupTable.isEmpty());
            }
        }
    });

    fillValues.setImage(fillValuesIcon);
    fillValues.setToolTipText("Attempt to fill source values with enumerations and occurring values.");
    fillValues.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            // first try enumeration
            Enumeration<?> enumeration = sourceProperty.getPropertyType().getConstraint(Enumeration.class);
            if (enumeration.getValues() != null) {
                addSourceValuesIfNew(enumeration.getValues());
            }

            // then try occurring values
            if (!ovs.updateOccurringValues(sourceEntity)) {
                // values already there or not possible
                addOccurringSourceValues(ovs.getOccurringValues(sourceEntity));
            } else {
                // job is running, listener will be notified
            }
            removeAllButton.setEnabled(!lookupTable.isEmpty());
            saveButton.setEnabled(!lookupTable.isEmpty());
        }
    });

    saveButton.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImages.IMG_SAVE));
    saveButton.setToolTipText("Save classification to file");
    saveButton.setEnabled(false);
    saveButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            LookupTableExportWizard wizard = new LookupTableExportWizard();
            LookupExportAdvisor advisor = new LookupExportAdvisor(
                    new LookupTableInfoImpl(new LookupTableImpl(lookupTable), "current", "not set"));
            wizard.setAdvisor(advisor, null);
            Shell shell = Display.getCurrent().getActiveShell();
            HaleWizardDialog dialog = new HaleWizardDialog(shell, wizard);
            dialog.open();
        }
    });

    valueRemove.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImages.IMG_REMOVE));
    valueRemove.setToolTipText("Remove classification entry");
    valueRemove.setEnabled(false);
    tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            valueRemove.setEnabled(!event.getSelection().isEmpty());
            saveButton.setEnabled(!event.getSelection().isEmpty());
        }
    });
    valueRemove.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            if (tableViewer.getSelection().isEmpty())
                return;

            Object element = ((IStructuredSelection) tableViewer.getSelection()).getFirstElement();
            @SuppressWarnings("unchecked")
            Entry<Value, Value> entry = (Entry<Value, Value>) element;
            lookupTable.remove(entry.getKey());
            tableViewer.refresh();
            removeAllButton.setEnabled(!lookupTable.isEmpty());
            saveButton.setEnabled(!lookupTable.isEmpty());
        }
    });

    removeAllButton.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImages.IMG_TRASH));
    removeAllButton.setEnabled(false);
    removeAllButton.setToolTipText("Remove complete classification");
    removeAllButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            lookupTable.clear();
            tableViewer.refresh();
            removeAllButton.setEnabled(false);
            saveButton.setEnabled(false);
        }
    });

    Label desc = new Label(tabContent, SWT.NONE);
    desc.setText("Double click on a table cell to change its value.");

    return tabContent;
}

From source file:eu.esdihumboldt.hale.ui.templates.webtemplates.WebTemplatesDialog.java

License:Open Source License

@Override
protected void setupViewer(final TreeViewer viewer, WebTemplate initialSelection) {
    // this label provider is used for filtering (I guess)
    viewer.setLabelProvider(new LabelProvider() {

        @Override/*from ww w. ja  va 2s.  co  m*/
        public String getText(Object element) {
            if (element instanceof WebTemplate) {
                return ((WebTemplate) element).getName();
            }
            return super.getText(element);
        }

    });

    viewer.getTree().setHeaderVisible(true);
    //      viewer.getTree().setLinesVisible(true);

    // main column
    TreeViewerColumn mainColumn = new TreeViewerColumn(viewer, SWT.NONE);
    mainColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            Object element = cell.getElement();

            StyledString text = new StyledString();
            if (element instanceof WebTemplate) {
                WebTemplate template = (WebTemplate) element;

                text.append(template.getName());
            } else {
                text.append(element.toString());
            }

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

            super.update(cell);
        }
    });
    mainColumn.getColumn().setText("Template");
    layout.setColumnData(mainColumn.getColumn(), new ColumnWeightData(7));

    // link column
    if (Desktop.isDesktopSupported()) {
        TreeViewerColumn linkColumn = new TreeViewerColumn(viewer, SWT.CENTER);
        linkColumn.setLabelProvider(new LinkLabels());

        // listener that reacts on link cell clicks
        viewer.getTree().addMouseListener(new MouseAdapter() {

            @Override
            public void mouseDown(MouseEvent e) {
                if (e.button == 1) {
                    ViewerCell cell = viewer.getCell(new Point(e.x, e.y));
                    if (cell != null && cell.getColumnIndex() == 1 && cell.getTextBounds().contains(e.x, e.y)) {
                        Object element = cell.getElement();
                        if (element instanceof WebTemplate) {
                            try {
                                Desktop.getDesktop().browse(((WebTemplate) element).getSite());
                            } catch (IOException e1) {
                                log.error("Could not launch browser", e1);
                            }
                        }
                    }
                }
            }
        });

        layout.setColumnData(linkColumn.getColumn(), new ColumnWeightData(1));
    }

    viewer.setComparator(new ViewerComparator());

    viewer.setContentProvider(new WebTemplatesContentProvider());
    viewer.setInput(templates);
}