Example usage for org.eclipse.jface.viewers ViewerCell getElement

List of usage examples for org.eclipse.jface.viewers ViewerCell getElement

Introduction

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

Prototype

public Object getElement() 

Source Link

Document

Get the element this row represents.

Usage

From source file:Snippet015CustomTooltipsForTree.java

License:Open Source License

/**
 * @param args//from  w ww .j a  va  2s  .  com
 */
public static void main(String[] args) {
    final Display display = new Display();
    Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());

    TreeViewer v = new TreeViewer(shell, SWT.FULL_SELECTION);
    v.getTree().setLinesVisible(true);
    v.getTree().setHeaderVisible(true);
    ColumnViewerToolTipSupport.enableFor(v);

    v.setContentProvider(new MyContentProvider());

    CellLabelProvider labelProvider = new CellLabelProvider() {

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipText(java.lang.Object)
         */
        public String getToolTipText(Object element) {
            return "Tooltip (" + element + ")";
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipShift(java.lang.Object)
         */
        public Point getToolTipShift(Object object) {
            return new Point(5, 5);
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipDisplayDelayTime(java.lang.Object)
         */
        public int getToolTipDisplayDelayTime(Object object) {
            return 1000;
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipTimeDisplayed(java.lang.Object)
         */
        public int getToolTipTimeDisplayed(Object object) {
            return 50000;
        }

        public void update(ViewerCell cell) {
            cell.setText(cell.getElement().toString());

        }
    };

    v.setLabelProvider(labelProvider);
    v.setInput("");

    shell.setSize(200, 200);
    shell.open();

    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }

    display.dispose();
}

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/*  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(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.JFXBuildConfigurationEditor.java

License:Open Source License

@Override
public void update(ViewerCell cell) {
    Object element = cell.getElement();
    Object[] values = new Object[attributeMaps.length];
    int i = 0;/*from www .  j av  a2  s . c om*/
    for (IObservableMap m : attributeMaps) {
        values[i++] = m.get(element);
        if (values[i - 1] == null) {
            cell.setText(""); //$NON-NLS-1$
            return;
        }
    }
    cell.setText(MessageFormat.format(messagePattern, values));
}

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//  ww  w . j av  a  2 s. co 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:au.gov.ga.earthsci.application.parts.layer.LayerTreePart.java

License:Apache License

@PostConstruct
public void init(Composite parent, EMenuService menuService) {
    LayerOpacityToolControl.setPartContext(context);

    viewer = new CheckboxTreeViewer(parent, SWT.MULTI);
    viewer.getTree().setBackgroundImage(ImageRegistry.getInstance().get(ImageRegistry.ICON_TRANSPARENT));
    context.set(TreeViewer.class, viewer);

    clipboard = new Clipboard(shell.getDisplay());
    context.set(Clipboard.class, clipboard);

    IListProperty childrenProperty = new MultiListProperty(
            new IListProperty[] { BeanProperties.list("children") }); //$NON-NLS-1$

    ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(
            childrenProperty.listFactory(), null);
    viewer.setContentProvider(contentProvider);

    //TreeViewerEditor.create(viewer, new SecondClickColumnViewerEditorActivationStrategy(viewer), ColumnViewerEditor.DEFAULT);

    IObservableSet knownElements = contentProvider.getKnownElements();
    IObservableMap enabledMap = BeanProperties.value("enabled").observeDetail(knownElements); //$NON-NLS-1$
    IObservableMap opacityMap = BeanProperties.value("opacity").observeDetail(knownElements); //$NON-NLS-1$
    IObservableMap nameMap = BeanProperties.value("name").observeDetail(knownElements); //$NON-NLS-1$
    IObservableMap labelMap = BeanProperties.value("label").observeDetail(knownElements); //$NON-NLS-1$
    IObservableMap statusMap = BeanProperties.value("status").observeDetail(knownElements); //$NON-NLS-1$
    IObservableMap anyChildrenEnabledMap = BeanProperties.value("anyChildrenEnabled") //$NON-NLS-1$
            .observeDetail(knownElements);
    IObservableMap allChildrenEnabledMap = BeanProperties.value("allChildrenEnabled") //$NON-NLS-1$
            .observeDetail(knownElements);
    IObservableMap childrenMap = BeanProperties.value("children").observeDetail(knownElements); //$NON-NLS-1$
    IObservableMap expandedMap = BeanProperties.value("expanded").observeDetail(knownElements); //$NON-NLS-1$

    IObservableMap[] labelAttributeMaps = new IObservableMap[] { enabledMap, opacityMap, nameMap, labelMap,
            anyChildrenEnabledMap, allChildrenEnabledMap, statusMap };

    labelProvider = new LayerTreeLabelProvider(labelAttributeMaps);
    viewer.setLabelProvider(labelProvider);
    viewer.setCheckStateProvider(new LayerTreeCheckStateProvider());

    viewer.setInput(model.getRootNode());
    viewer.setExpandedElements(getExpandedNodes());

    IMapChangeListener childrenListener = new IMapChangeListener() {
        @Override/*from   w  w  w  .  j  av  a2  s.  c  o  m*/
        public void handleMapChange(MapChangeEvent event) {
            //for any children added, expand the nodes
            Set<?> addedKeys = event.diff.getAddedKeys();
            for (Object o : addedKeys) {
                if (o instanceof ILayerTreeNode) {
                    ((ILayerTreeNode) o).getParent().getValue().setExpanded(true);
                }
            }
        }
    };
    IMapChangeListener expandedListener = new IMapChangeListener() {
        @Override
        public void handleMapChange(MapChangeEvent event) {
            //ensure the expanded elements are kept in sync with the model
            viewer.getTree().getDisplay().asyncExec(new Runnable() {
                @Override
                public void run() {
                    if (!viewer.getTree().isDisposed()) {
                        viewer.setExpandedElements(getExpandedNodes());
                    }
                }
            });
        }
    };
    childrenMap.addMapChangeListener(childrenListener);
    childrenMap.addMapChangeListener(expandedListener);
    expandedMap.addMapChangeListener(expandedListener);

    viewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            Object element = event.getElement();
            if (element instanceof ILayerTreeNode) {
                ILayerTreeNode node = (ILayerTreeNode) element;
                node.enableChildren(event.getChecked());
            }
        }
    });

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
            List<?> list = selection.toList();
            ILayerTreeNode[] array = list.toArray(new ILayerTreeNode[list.size()]);
            selectionService.setSelection(array.length == 1 ? array[0] : array);
        }
    });

    viewer.addTreeListener(new ITreeViewerListener() {
        @Override
        public void treeExpanded(TreeExpansionEvent event) {
            ILayerTreeNode layerNode = (ILayerTreeNode) event.getElement();
            layerNode.setExpanded(true);
        }

        @Override
        public void treeCollapsed(TreeExpansionEvent event) {
            ILayerTreeNode layerNode = (ILayerTreeNode) event.getElement();
            layerNode.setExpanded(false);
        }
    });

    viewer.getTree().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseDoubleClick(MouseEvent e) {
            ViewerCell cell = viewer.getCell(new Point(e.x, e.y));
            if (cell == null)
                return;

            ILayerTreeNode layer = (ILayerTreeNode) cell.getElement();
            selectLayer(layer);
        }

        @Override
        public void mouseDown(MouseEvent e) {
            ViewerCell cell = viewer.getCell(new Point(e.x, e.y));
            if (cell == null) {
                viewer.setSelection(StructuredSelection.EMPTY);
            }
        }
    });

    viewer.getTree().addTraverseListener(new TraverseListener() {
        @Override
        public void keyTraversed(TraverseEvent e) {
            if (e.detail == SWT.TRAVERSE_RETURN) {
                IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
                if (selection.size() == 1) {
                    ILayerTreeNode layer = (ILayerTreeNode) selection.getFirstElement();
                    selectLayer(layer);
                }
            }
        }
    });

    viewer.setCellEditors(new CellEditor[] { new TextCellEditor(viewer.getTree(), SWT.BORDER) });
    viewer.setColumnProperties(new String[] { "layer" }); //$NON-NLS-1$

    viewer.setCellModifier(new ICellModifier() {
        @Override
        public void modify(Object element, String property, Object value) {
            if (element instanceof Item) {
                element = ((Item) element).getData();
            }
            ((ILayerTreeNode) element).setLabel((String) value);
        }

        @Override
        public Object getValue(Object element, String property) {
            if (element instanceof Item) {
                element = ((Item) element).getData();
            }
            return ((ILayerTreeNode) element).getLabelOrName();
        }

        @Override
        public boolean canModify(Object element, String property) {
            return true;
        }
    });

    ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(viewer) {
        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };
    TreeViewerEditor.create(viewer, activationStrategy, ColumnViewerEditor.KEYBOARD_ACTIVATION);

    //add drag and drop support
    int ops = DND.DROP_COPY | DND.DROP_MOVE;
    viewer.addDragSupport(ops, new Transfer[] { LayerTransfer.getInstance() },
            new LayerTreeDragSourceListener(viewer));
    viewer.addDropSupport(ops, new Transfer[] { LayerTransfer.getInstance(), FileTransfer.getInstance() },
            new LayerTreeDropAdapter(viewer, model, context));

    //add context menu
    menuService.registerContextMenu(viewer.getTree(), "au.gov.ga.earthsci.application.layertree.popupmenu"); //$NON-NLS-1$
}

From source file:au.gov.ga.earthsci.bookmark.part.BookmarksPart.java

License:Apache License

private void initList(Composite parent) {
    Composite tableHolder = new Composite(parent, SWT.NONE);
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.grabExcessHorizontalSpace = true;
    gd.grabExcessVerticalSpace = true;//w w  w .  jav a2  s .  co m
    gd.horizontalAlignment = GridData.FILL;
    tableHolder.setLayoutData(gd);

    TableColumnLayout layout = new TableColumnLayout();
    tableHolder.setLayout(layout);

    bookmarkListTableViewer = new TableViewer(tableHolder,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
    bookmarkListTableViewer.getTable().setHeaderVisible(false);
    bookmarkListTableViewer.getTable().setLinesVisible(false);

    bookmarkListTableViewer.getTable().setLayoutData(gd);

    ObservableListContentProvider contentProvider = new ObservableListContentProvider();
    bookmarkListTableViewer.setContentProvider(contentProvider);

    IObservableMap labelMap = BeanProperties.value("name").observeDetail(contentProvider.getKnownElements()); //$NON-NLS-1$

    TableViewerColumn column = new TableViewerColumn(bookmarkListTableViewer, SWT.LEFT);
    column.setEditingSupport(new BookmarkNameEditingSupport(bookmarkListTableViewer));
    column.setLabelProvider(new ObservableMapCellLabelProvider(labelMap) {
        @Override
        public void update(ViewerCell cell) {
            super.update(cell);
            cell.setText(" " + ((IBookmark) cell.getElement()).getName()); //$NON-NLS-1$
            cell.setImage(ImageRegistry.getInstance().get(ImageRegistry.ICON_BOOKMARKS));
        }
    });
    ColumnLayoutData cld = new ColumnWeightData(12);
    layout.setColumnData(column.getColumn(), cld);

    // Allow edit (rename) only via programmatic access (rename command) 
    ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(
            bookmarkListTableViewer) {
        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };
    TableViewerEditor.create(bookmarkListTableViewer, activationStrategy,
            ColumnViewerEditor.KEYBOARD_ACTIVATION);

    // Populate the current selection with the actual bookmark items
    bookmarkListTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) bookmarkListTableViewer.getSelection();
            List<?> list = selection.toList();
            selectionService.setSelection(list.toArray(new IBookmark[list.size()]));
        }
    });

    // Apply the bookmark on double click
    bookmarkListTableViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            controller.apply((IBookmark) ((IStructuredSelection) event.getSelection()).getFirstElement());
        }
    });

    // Deselect when clicking outside a valid row
    bookmarkListTableViewer.getTable().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseUp(MouseEvent e) {
            if (bookmarkListTableViewer.getTable().getItem(new Point(e.x, e.y)) == null) {
                bookmarkListTableViewer.setSelection(null);
            }
        }
    });

}

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  .  ja v a2s  .c o m
    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.BookmarksPart.java

License:Apache License

private void initList(Composite parent) {
    Composite tableHolder = new Composite(parent, SWT.NONE);
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.grabExcessHorizontalSpace = true;
    gd.grabExcessVerticalSpace = true;/* ww  w .j a va 2  s .  c  om*/
    gd.horizontalAlignment = GridData.FILL;
    tableHolder.setLayoutData(gd);

    TableColumnLayout layout = new TableColumnLayout();
    tableHolder.setLayout(layout);

    bookmarkListTableViewer = new TableViewer(tableHolder,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
    bookmarkListTableViewer.getTable().setHeaderVisible(false);
    bookmarkListTableViewer.getTable().setLinesVisible(false);

    bookmarkListTableViewer.getTable().setLayoutData(gd);

    ObservableListContentProvider<IBookmark> contentProvider = new ObservableListContentProvider<IBookmark>(
            IBookmark.class);
    bookmarkListTableViewer.setContentProvider(contentProvider);

    IObservableSet<IBookmark> knownElements = contentProvider.getKnownElements();
    IObservableMap<IBookmark, String> nameMap = BeanProperties.value(IBookmark.class, "name", String.class) //$NON-NLS-1$
            .observeDetail(knownElements);

    TableViewerColumn column = new TableViewerColumn(bookmarkListTableViewer, SWT.LEFT);
    column.setEditingSupport(new BookmarkNameEditingSupport(bookmarkListTableViewer));
    column.setLabelProvider(new ObservableMapCellLabelProvider<IBookmark, String>(nameMap) {
        @Override
        public void update(ViewerCell cell) {
            super.update(cell);
            cell.setText(" " + ((IBookmark) cell.getElement()).getName()); //$NON-NLS-1$
            cell.setImage(ImageRegistry.getInstance().get(ImageRegistry.ICON_BOOKMARKS));
        }
    });
    ColumnLayoutData cld = new ColumnWeightData(12);
    layout.setColumnData(column.getColumn(), cld);

    // Allow edit (rename) only via programmatic access (rename command)
    ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(
            bookmarkListTableViewer) {
        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };
    TableViewerEditor.create(bookmarkListTableViewer, activationStrategy,
            ColumnViewerEditor.KEYBOARD_ACTIVATION);

    // Populate the current selection with the actual bookmark items
    bookmarkListTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) bookmarkListTableViewer.getSelection();
            List<?> list = selection.toList();
            selectionService.setSelection(list.toArray(new IBookmark[list.size()]));
        }
    });

    // Apply the bookmark on double click
    bookmarkListTableViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            controller.apply((IBookmark) ((IStructuredSelection) event.getSelection()).getFirstElement());
        }
    });

    // Deselect when clicking outside a valid row
    bookmarkListTableViewer.getTable().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseUp(MouseEvent e) {
            if (bookmarkListTableViewer.getTable().getItem(new Point(e.x, e.y)) == null) {
                bookmarkListTableViewer.setSelection(null);
            }
        }
    });

}

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  ww  w .j a va 2s .c o m*/
        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:au.gov.ga.earthsci.discovery.ui.DiscoveryPart.java

License:Apache License

private void createResultsViewer() {
    if (resultsViewer != null) {
        resultsViewer.getControl().dispose();
    }/*from   ww  w  . j  av  a  2 s . c om*/

    resultsViewer = new TableViewer(resultsViewerComposite, SWT.BORDER | SWT.FULL_SELECTION);
    resultsViewer.setContentProvider(discoveryContentProvider);
    resultsViewer.getTable().setLinesVisible(true);
    resultsViewerComposite.layout();

    //keep the column width in sync with the table width
    final TableColumn resultsColumn = new TableColumn(resultsViewer.getTable(), SWT.LEFT);
    Listener resizeListener = new Listener() {
        @Override
        public void handleEvent(Event event) {
            resultsColumn.setWidth(resultsViewer.getTable().getClientArea().width);
        }
    };
    resultsViewer.getControl().addListener(SWT.Resize, resizeListener);
    resultsViewer.getControl().addListener(SWT.Paint, resizeListener);

    new TableViewerSelectionHelper<IDiscoveryResult>(resultsViewer, IDiscoveryResult.class) {
        @Override
        protected void itemSelected(IDiscoveryResult selection) {
            resultSelected(selection);
        }

        @Override
        protected void itemDefaultSelected(IDiscoveryResult selection) {
            resultDefaultSelected(selection);
        }
    };

    resultsViewer.getTable().addMouseMoveListener(new MouseMoveListener() {
        @Override
        public void mouseMove(MouseEvent e) {
            IDiscoveryResult result = null;
            ViewerCell cell = resultsViewer.getCell(new Point(e.x, e.y));
            if (cell != null) {
                result = (IDiscoveryResult) cell.getElement();
            }
            resultMouseOver(result);
        }
    });
    resultsViewer.getTable().addMouseTrackListener(new MouseTrackAdapter() {
        @Override
        public void mouseExit(MouseEvent e) {
            resultMouseOver(null);
        }
    });
}