Example usage for org.eclipse.jface.viewers TableViewer setContentProvider

List of usage examples for org.eclipse.jface.viewers TableViewer setContentProvider

Introduction

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

Prototype

@Override
public void setContentProvider(IContentProvider provider) 

Source Link

Document

Sets the content provider used by this AbstractTableViewer.

Usage

From source file:com.nextep.designer.vcs.ui.dialogs.VersionSettingsDialog.java

License:Open Source License

@Override
public Control create(Composite p) {
    for (IVersionable<?> v : context.getVersionables()) {
        if (v.getContainer() instanceof IWorkspace) {
            versionablesToReview.add(v);
        }//from   www  .  j a  va2s  .com
    }
    // Main composite
    Composite parent = new Composite(p, SWT.NONE);
    parent.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    parent.setLayout(new GridLayout(2, false));
    // Activity controls
    Label activityLabel = new Label(parent, SWT.RIGHT);
    activityLabel.setText(VCSUIMessages.getString("dialog.versionSettings.activity")); //$NON-NLS-1$
    activityLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
    activityCombo = new Combo(parent, SWT.BORDER);
    activityCombo.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
    activityCombo.setText(getActivityText());
    List<IActivity> activities = VCSPlugin.getService(IVersioningService.class).getRecentActivities();
    for (IActivity a : activities) {
        activityCombo.add(a.getName());
    }
    // Sash form
    SashForm editor = new SashForm(parent, SWT.HORIZONTAL);
    editor.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));

    // Listing of versionables to review
    TableViewer viewer = new TableViewer(editor, SWT.BORDER);
    viewer.setLabelProvider(new DecoratingStyledCellLabelProvider(new VersionableNewLabelProvider(),
            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator(), null));
    viewer.setContentProvider(new VersionableTableContentProvider());
    viewer.setInput(versionablesToReview);

    // Editor pane for version selection
    editorPane = new Composite(editor, SWT.BORDER);
    editorPane.setLayout(new GridLayout());
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            final ISelection s = event.getSelection();
            if (s instanceof IStructuredSelection && !s.isEmpty()) {
                Object o = ((IStructuredSelection) s).getFirstElement();
                if (o instanceof IVersionable<?>) {
                    editVersionable((IVersionable<?>) o);
                }
            }
        }
    });
    viewer.setSelection(new StructuredSelection(versionablesToReview.iterator().next()));
    editor.setWeights(new int[] { 2, 5 });
    return parent;
}

From source file:com.nextep.designer.vcs.ui.preferences.NamingPreferencePage.java

License:Open Source License

@Override
protected Control createContents(Composite parent) {
    final Composite editor = new Composite(parent, SWT.NONE);
    GridLayout l = new GridLayout(2, false);
    l.marginBottom = l.marginHeight = l.marginLeft = l.marginRight = l.marginTop = l.marginWidth = 0;
    editor.setLayout(l);/*w  w w .  j  av a 2s . c o  m*/
    Label varDesc = new Label(editor, SWT.NONE);
    varDesc.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
    varDesc.setText(VCSUIMessages.getString("namePatternsPrefPageVars"));
    Table t = new Table(editor, SWT.BORDER | SWT.FULL_SELECTION);
    t.setLinesVisible(true);
    t.setHeaderVisible(true);
    TableColumn varCol = new TableColumn(t, SWT.NONE);
    varCol.setText("Variable");
    varCol.setWidth(150);
    TableColumn descCol = new TableColumn(t, SWT.NONE);
    descCol.setText("Description");
    descCol.setWidth(300);
    GridData gd1 = new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1);
    gd1.heightHint = 120;
    t.setLayoutData(gd1);
    TableViewer v = new TableViewer(t);
    v.setContentProvider(new VarProvider());
    v.setLabelProvider(new VarLabelProvider());
    v.setInput(NamingService.getInstance().listProviders());

    // Naming pattern section
    Label patternLbl = new Label(editor, SWT.NONE);
    patternLbl.setText(VCSUIMessages.getString("namePatternsPrefPagePatterns"));
    patternLbl.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
    Table patternTab = new Table(editor, SWT.BORDER | SWT.FULL_SELECTION);
    patternTab.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 3));
    patternTab.setLinesVisible(true);
    patternTab.setHeaderVisible(true);
    TableColumn typeCol = new TableColumn(patternTab, SWT.NONE);
    typeCol.setText("Element");
    typeCol.setWidth(150);
    TableColumn patternCol = new TableColumn(patternTab, SWT.NONE);
    patternCol.setText("Naming pattern");
    patternCol.setWidth(300);
    final TableViewer patViewer = new TableViewer(patternTab);
    final NamingPatternContentProvider contentProvider = new NamingPatternContentProvider(patViewer);
    patViewer.setContentProvider(contentProvider);
    patViewer.setLabelProvider(new NamingPatternLabelProvider());

    // Building editors
    CellEditor[] cellEditors = new CellEditor[2];
    List<String> types = new ArrayList<String>();
    for (IElementType typ : sortedTypes) {
        types.add(typ.getName());
    }
    ComboBoxCellEditor typeEditor = new ComboBoxCellEditor(patternTab, types.toArray(new String[types.size()]),
            SWT.READ_ONLY);
    cellEditors[0] = typeEditor;
    TextCellEditor patternEditor = new TextCellEditor(patternTab);
    cellEditors[1] = patternEditor;
    patViewer.setCellEditors(cellEditors);
    patViewer.setColumnProperties(new String[] { "TYPE", "PATTERN" });
    patViewer.setCellModifier(new ICellModifier() {

        @Override
        public boolean canModify(Object element, String property) {
            return "TYPE".equals(property) || "PATTERN".equals(property);
        }

        @Override
        public Object getValue(Object element, String property) {
            final INamingPattern p = (INamingPattern) element;
            if ("TYPE".equals(property)) {
                return sortedTypes.indexOf(p.getRelatedType());
            } else if ("PATTERN".equals(property)) {
                return notNull(p.getPattern());
            }
            return null;
        }

        @Override
        public void modify(Object element, String property, Object value) {
            final INamingPattern p = (INamingPattern) ((TableItem) element).getData();
            if ("TYPE".equals(property)) {
                p.setRelatedType(sortedTypes.get((Integer) value));
            } else if ("PATTERN".equals(property)) {
                p.setPattern((String) value);
            }

        }

    });
    patViewer.setInput(NamingService.getInstance().listPatterns());

    //Building add / remove buttons
    final Button addButton = new Button(editor, SWT.PUSH);
    addButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
    addButton.setText("Add");
    addButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            INamingPattern p = new NamingPattern();
            p.setRelatedType(IElementType.getInstance(IVersionContainer.TYPE_ID));
            contentProvider.add(p);
        }
    });
    final Button remButton = new Button(editor, SWT.PUSH);
    remButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
    remButton.setText("Remove");
    remButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            ISelection s = patViewer.getSelection();
            if (s instanceof IStructuredSelection) {
                INamingPattern p = (INamingPattern) ((IStructuredSelection) s).getFirstElement();
                if (p != null) {
                    contentProvider.remove(p);
                }
            }
        }
    });
    return editor;
}

From source file:com.nokia.carbide.cpp.internal.project.ui.editors.images.ExportedImageLocationTableComposite.java

License:Open Source License

private TableViewer createTableViewer(Composite parent) {
    TableViewer tableViewer = new TableViewer(parent, SWT.FLAT + SWT.BORDER + SWT.FULL_SELECTION);

    final Table table = tableViewer.getTable();
    table.setToolTipText(//  w  ww  . j  a va2s. c  o  m
            "For each image selected above,\nthere is one row in this table which shows\nwhere the file will be exported to the device.\n\nEdit the target path and/or filename as needed.\n\nYou may clear the target path to revert to the default.");
    GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    gridData.minimumHeight = 150;
    table.setLayoutData(gridData);
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    TableViewerColumn column = new TableViewerColumn(tableViewer, SWT.LEFT);
    column.getColumn().setResizable(true);
    column.getColumn()
            .setText(Messages.getString("ExportedImageLocationTableComposite.ImageFileNameColumnHeader")); //$NON-NLS-1$

    column = new TableViewerColumn(tableViewer, SWT.LEFT);
    column.getColumn().setResizable(true);
    column.getColumn()
            .setText(Messages.getString("ExportedImageLocationTableComposite.TargetPathColumnHeader")); //$NON-NLS-1$
    column.setEditingSupport(new EditingSupport(tableViewer) {

        CellEditor editor = new TextCellEditor(table);

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

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

        @Override
        protected Object getValue(Object element) {
            return ((Map.Entry<IFileImageModel, IPath>) element).getValue().removeLastSegments(1).toOSString();
        }

        @Override
        protected void setValue(Object element, Object value) {
            Map.Entry<IFileImageModel, IPath> entry = (Entry<IFileImageModel, IPath>) element;
            IPath origPath = new Path(entry.getValue().toString());
            String newPath = value.toString();
            if (newPath.length() == 0) {
                newPath = getExpandedDefaultPath().toOSString();
            }
            entry.setValue(new Path(newPath).append(origPath.lastSegment()));
            getViewer().update(element, null);
        }

    });

    column = new TableViewerColumn(tableViewer, SWT.LEFT);
    column.getColumn().setResizable(true);
    column.getColumn()
            .setText(Messages.getString("ExportedImageLocationTableComposite.TargetFilenameColumnHeader")); //$NON-NLS-1$
    column.setEditingSupport(new EditingSupport(tableViewer) {

        CellEditor editor = new TextCellEditor(table);

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

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

        @Override
        protected Object getValue(Object element) {
            return ((Map.Entry<IFileImageModel, IPath>) element).getValue().lastSegment();
        }

        @Override
        protected void setValue(Object element, Object value) {
            Map.Entry<IFileImageModel, IPath> entry = (Entry<IFileImageModel, IPath>) element;
            IPath origPath = entry.getValue().removeLastSegments(1);
            String fileName = value.toString();
            if (fileName.length() == 0) {
                fileName = entry.getValue().lastSegment();
            }
            entry.setValue(origPath.append(fileName));
            getViewer().update(element, null);
        }

    });

    tableViewer.setContentProvider(new IStructuredContentProvider() {

        public Object[] getElements(Object inputElement) {
            return mapping.entrySet().toArray();
        }

        public void dispose() {
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            viewer.refresh();
        }

    });
    tableViewer.setLabelProvider(new ITableLabelProvider() {

        public Image getColumnImage(Object element, int columnIndex) {
            return null;
        }

        public String getColumnText(Object element, int columnIndex) {
            Map.Entry<IFileImageModel, IPath> entry = (Entry<IFileImageModel, IPath>) element;
            if (columnIndex == 0)
                return entry.getKey().getSourcePath().toOSString();
            else if (columnIndex == 1)
                return entry.getValue().removeLastSegments(1).toOSString();
            else if (columnIndex == 2)
                return entry.getValue().lastSegment();
            else
                return null;
        }

        public void dispose() {

        }

        public boolean isLabelProperty(Object element, String property) {
            return true;
        }

        public void addListener(ILabelProviderListener listener) {
        }

        public void removeListener(ILabelProviderListener listener) {
        }

    });

    tableViewer.setFilters(new ViewerFilter[] { new ViewerFilter() {

        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            Map.Entry<IFileImageModel, IPath> entry = (Entry<IFileImageModel, IPath>) element;
            return selectedImages.contains(entry.getKey());
        }

    } });
    tableViewer.setInput(mapping);

    TableLayout tableLayout = new TableLayout();
    table.setLayout(tableLayout);

    tableLayout.addColumnData(new ColumnWeightData(100));
    tableLayout.addColumnData(new ColumnWeightData(100));
    tableLayout.addColumnData(new ColumnWeightData(100));
    return tableViewer;
}

From source file:com.nokia.carbide.search.system.internal.ui.text.FileSearchPage.java

License:Open Source License

protected void configureTableViewer(TableViewer viewer) {
    viewer.setUseHashlookup(true);//www . j  a v a2s  .  c om
    FileLabelProvider innerLabelProvider = new FileLabelProvider(this, fCurrentSortOrder);
    viewer.setLabelProvider(new SystemLabelProvider(this));
    viewer.setContentProvider(new FileTableContentProvider(this));
    //      viewer.setComparator(new DecoratorIgnoringViewerSorter(innerLabelProvider));
    viewer.setSorter(new TableSorter());
    addColumns(viewer);
    fContentProvider = (IFileSearchContentProvider) viewer.getContentProvider();
    addDragAdapters(viewer);
}

From source file:com.nokia.carbide.search.system.internal.ui.text.SearchAgainConfirmationDialog.java

License:Open Source License

private TableViewer createTableViewer(List input, Composite result) {
    TableViewer viewer = new TableViewer(result);
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(new ProxyLabelProvider());
    viewer.setInput(input);/*from w  w w . j av a  2 s  .  c  o  m*/
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.widthHint = convertWidthInCharsToPixels(70);
    gd.heightHint = convertHeightInCharsToPixels(5);
    viewer.getControl().setLayoutData(gd);
    return viewer;
}

From source file:com.nokia.s60tools.imaker.internal.dialogs.ProductSelectionDialog.java

License:Open Source License

private void setContentProvider(TableViewer viewer) {
    viewer.setContentProvider(new ConfMLFilesContentProvider());
}

From source file:com.nokia.tools.s60.editor.ui.dialogs.FailureListDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    if (title != null) {
        parent.getShell().setText(title);
    }/*from w ww  .j  a v a  2 s .  com*/

    Composite composite = (Composite) super.createDialogArea(parent);
    Composite fc = new Composite(composite, SWT.NONE);
    fc.setLayoutData(new GridData(GridData.FILL_BOTH));

    GridLayout gridLayout = new GridLayout();
    fc.setLayout(gridLayout);

    Label msgLabel = new Label(fc, SWT.NONE);
    msgLabel.setText(Messages.FailureListDialog_message);

    TableViewer viewer = new TableViewer(fc, SWT.BORDER | SWT.FULL_SELECTION | SWT.VERTICAL);
    table = viewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    TableColumn tableColumn = new TableColumn(table, SWT.NONE);
    tableColumn.setWidth(25);
    TableColumn tableColumn1 = new TableColumn(table, SWT.NONE);
    tableColumn1.setWidth(500);
    tableColumn1.setText(Messages.FailureListDialog_element_lbl);
    TableColumn tableColumn2 = new TableColumn(table, SWT.NONE);
    tableColumn2.setWidth(300);
    tableColumn2.setText(Messages.FailureListDialog_detail_lbl);
    table.setLayoutData(new GridData(600, 200));

    new Label(fc, SWT.NONE);

    Label detailLabel = new Label(fc, SWT.NONE);
    detailLabel.setText(Messages.FailureListDialog_description_lbl);

    detail = new StyledText(fc, SWT.BORDER | SWT.VERTICAL | SWT.HORIZONTAL);
    GridData gridData = new GridData();
    gridData.grabExcessHorizontalSpace = false;
    gridData.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
    gridData.grabExcessVerticalSpace = true;
    gridData.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
    gridData.heightHint = 200;
    gridData.widthHint = 600;
    detail.setLayoutData(gridData);

    viewer.setContentProvider(new IStructuredContentProvider() {
        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof List) {
                return ((List) inputElement).toArray();
            }
            return null;
        }

        public void dispose() {
        }

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

    viewer.setLabelProvider(new ITableLabelProvider() {
        Image err_image = S60WorkspacePlugin.getImageDescriptor("icons/error_tsk.gif").createImage();

        Image warn_image = S60WorkspacePlugin.getImageDescriptor("icons/warn_tsk.gif").createImage();

        Image info_image = S60WorkspacePlugin.getImageDescriptor("icons/info_tsk.gif").createImage();

        public Image getColumnImage(Object element, int columnIndex) {
            if (columnIndex == 0) {
                ESeverity severity = (((IFailure) element).getSeverity());
                if (ESeverity.INFO == severity) {
                    return info_image;
                } else if (ESeverity.WARN == severity) {
                    return warn_image;
                } else if (ESeverity.ERROR == severity) {
                    return err_image;
                }
            }
            return null;
        }

        public String getColumnText(Object element, int columnIndex) {
            if (columnIndex == 1) {
                return ((IFailure) element).getSource();
            }

            if (columnIndex == 2) {
                return ((IFailure) element).getMessage();
            }
            return null;
        }

        public void addListener(ILabelProviderListener listener) {
        }

        public void dispose() {
            err_image.dispose();
            warn_image.dispose();
            info_image.dispose();
        }

        public boolean isLabelProperty(Object element, String property) {
            return false;
        }

        public void removeListener(ILabelProviderListener listener) {
        }

    });

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection sel = (IStructuredSelection) event.getSelection();
            if (sel.isEmpty()) {
                detail.setText("");
            } else {
                IFailure f = (IFailure) sel.getFirstElement();
                detail.setText(f.getDetail());
            }
        }
    });

    viewer.setInput(failures);

    viewer.setSelection(new StructuredSelection(failures.get(0)));

    return composite;
}

From source file:com.nokia.tools.theme.s60.ui.preferences.ThirdPartyIconsPrefPage.java

License:Open Source License

private void initializeThirdPartyIconTableViewer(final TableViewer tableViewer) {
    Table table = tableViewer.getTable();

    final TableColumn colType = new TableColumn(table, SWT.LEFT);
    colType.setText(thirdPartyIconColumnNames[0]);

    final TableColumn colName = new TableColumn(table, SWT.LEFT);
    colName.setText(thirdPartyIconColumnNames[1]);

    final TableColumn colUid = new TableColumn(table, SWT.LEFT);
    colUid.setText(thirdPartyIconColumnNames[2]);

    final TableColumn colMajorId = new TableColumn(table, SWT.LEFT);
    colMajorId.setText(thirdPartyIconColumnNames[3]);

    final TableColumn colMinorId = new TableColumn(table, SWT.LEFT);
    colMinorId.setText(thirdPartyIconColumnNames[4]);

    table.setHeaderVisible(true);/*from www .  ja v a 2s.co  m*/
    table.setLinesVisible(true);

    tableViewer.setColumnProperties(thirdPartyIconColumnNames);
    tableViewer.setContentProvider(tpiTableViewerContentProvider);
    tableViewer.setLabelProvider(tpiTableViewerLabelProvider);

    tableViewer.getTable().addListener(SWT.Resize, new Listener() {

        public void handleEvent(Event event) {
            if (updateColSize) {
                Table tbl = tableViewer.getTable();
                int w = tbl.getClientArea().width;
                int c1 = 85;
                int c2 = 100;
                int c3 = 85;
                int c4 = 75;
                updateColSize = false;
                colType.setWidth(c1);
                colName.setWidth(c2);
                colUid.setWidth(c3);
                colMajorId.setWidth(c4);
                colMinorId.setWidth(w - c1 - c2 - c3 - c4);
                updateColSize = true;
            }
        }
    });

    tableViewer.addDoubleClickListener(new IDoubleClickListener() {

        public void doubleClick(DoubleClickEvent event) {
            ISelection selection = event.getSelection();
            if (!selection.isEmpty() && selection instanceof IStructuredSelection) {
                ThirdPartyIcon thirdPartyIcon = (ThirdPartyIcon) ((IStructuredSelection) selection)
                        .getFirstElement();
                if (thirdPartyIcon != null) {
                    ThirdPartyIconDefinitionInputDialog dialog = new ThirdPartyIconDefinitionInputDialog(
                            getShell(), thirdPartyIcon.getThirdPartyIconType(), "Edit Third Party Icon",
                            thirdPartyIcon);
                    if (dialog.open() == IDialogConstants.OK_ID) {
                        refreshViewers();
                        removeAllBackgroundHighlights();
                        highlightConflictDataForTPI(thirdPartyIcon);
                    }
                }
            }
        }

    });
}

From source file:com.nokia.tools.variant.editor.dialogs.SelectConfigurationDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    GridLayout layout3 = (GridLayout) parent.getLayout();
    layout3.marginLeft = 0;/*w  ww  .j  av  a 2 s.c o m*/
    layout3.marginRight = 0;
    layout3.marginTop = 0;
    layout3.marginBottom = 0;
    layout3.horizontalSpacing = 0;
    layout3.verticalSpacing = 0;
    parent.setLayout(layout3);

    Composite dialogArea = (Composite) super.createDialogArea(parent);
    GridLayout layout = new GridLayout(1, false);
    dialogArea.setLayout(layout);

    Composite c = new Composite(dialogArea, SWT.NONE);
    c.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    GridLayout layout2 = new GridLayout(2, false);
    c.setLayout(layout2);
    c.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));

    Label l = new Label(c, SWT.NONE);
    l.setText("The file contains multiple configurations. Select configuration and then press OK.");
    l.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
    GridData layoutData = new GridData(GridData.FILL_HORIZONTAL);
    layoutData.heightHint = 60;
    layoutData.grabExcessHorizontalSpace = true;
    l.setLayoutData(layoutData);

    GridData gridData = new GridData();
    gridData.horizontalAlignment = GridData.HORIZONTAL_ALIGN_END;
    gridData.heightHint = 60;
    Label rightLabel = new Label(c, SWT.NO);
    rightLabel.setLayoutData(gridData);

    ImageDescriptor imageDescriptor = Activator.getImageDescriptor("icons/saveas_wiz.png");
    Image image = imageDescriptor.createImage();

    rightLabel.setImage(image);
    rightLabel.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));

    Rectangle bounds = dialogArea.getShell().getBounds();
    getShell().setBounds(bounds);

    dialogArea.setLayout(new GridLayout());
    configTable = new Table(dialogArea, SWT.FULL_SELECTION);
    final TableViewer viewer = new TableViewer(configTable);

    final Listener labelDisposeListener = new Listener() {
        public void handleEvent(Event event) {
            StyledText styledText = (StyledText) event.widget;
            Shell shell = styledText.getShell();
            switch (event.type) {
            case SWT.MouseDown:
                Event e = new Event();
                e.item = (TableItem) styledText.getData(KEY_TOOLTIPTEXT);
                configTable.setSelection(new TableItem[] { (TableItem) e.item });
                configTable.notifyListeners(SWT.Selection, e);
                // dispose shell on mouse down
            case SWT.MouseExit:
                shell.dispose();
                break;
            }
        }
    };

    Listener toolTipDisplayListener = new Listener() {
        Shell tooltipShell = null;
        StyledText styledText = null;

        public void handleEvent(Event event) {
            switch (event.type) {
            case SWT.Dispose:
            case SWT.KeyDown:
            case SWT.MouseMove:
                if (tooltipShell == null || tooltipShell.isDisposed()) {
                    break;
                }
                tooltipShell.dispose();
                tooltipShell = null;
                styledText = null;
                break;
            case SWT.MouseHover:
                TableItem item = configTable.getItem(new Point(event.x, event.y));
                if (item != null) {
                    if (tooltipShell != null && !tooltipShell.isDisposed()) {
                        tooltipShell.dispose();
                    }
                    tooltipShell = new Shell(configTable.getShell(), SWT.ON_TOP | SWT.TOOL);
                    tooltipShell.setLayout(new FillLayout());
                    styledText = new StyledText(tooltipShell, SWT.NONE);
                    styledText.setEditable(false);
                    styledText.getCaret().setVisible(false);
                    styledText
                            .setBackground(configTable.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
                    styledText
                            .setForeground(configTable.getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
                    styledText.setData(KEY_TOOLTIPTEXT, item);
                    Object data = item.getData();
                    CPFInformation cpfInformation = (CPFInformation) data;
                    styledText.setText(cpfInformation.getLayerPopupInfoText());
                    styledText.addListener(SWT.MouseExit, labelDisposeListener);
                    styledText.addListener(SWT.MouseDown, labelDisposeListener);
                    Point size = tooltipShell.computeSize(SWT.DEFAULT, SWT.DEFAULT);
                    Rectangle rect = item.getBounds(0);
                    Point pt = configTable.toDisplay(rect.x, rect.y);
                    tooltipShell.setBounds(pt.x, pt.y, size.x, size.y);
                    tooltipShell.setVisible(true);
                }
                break;
            }
        }
    };

    configTable.addListener(SWT.Dispose, toolTipDisplayListener);
    configTable.addListener(SWT.KeyDown, toolTipDisplayListener);
    configTable.addListener(SWT.MouseMove, toolTipDisplayListener);
    configTable.addListener(SWT.MouseHover, toolTipDisplayListener);

    configTable.setHeaderVisible(true);
    configTable.setLayoutData(new GridData(GridData.FILL_BOTH));

    configTable.addSelectionListener(new SelectionListener() {

        public void widgetSelected(SelectionEvent e) {
            selectedConfigurationIndex = configTable.getSelectionIndex();
            viewer.setSelection(new StructuredSelection(viewer.getElementAt(selectedConfigurationIndex)), true);
        }

        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });

    final String[] columnNames = new String[] { "Name", "Version", "Platform", "Release", "Product", "Date" };
    final int[] columnWidths = new int[] { 170, 50, 100, 60, 100, 100 };

    viewer.setColumnProperties(columnNames);

    TableColumn nameColumn = new TableColumn(configTable, SWT.LEFT);
    nameColumn.setText(columnNames[0]);
    nameColumn.setWidth(columnWidths[0]);

    TableColumn versionColumn = new TableColumn(configTable, SWT.LEFT);
    versionColumn.setText(columnNames[1]);
    versionColumn.setWidth(columnWidths[1]);

    TableColumn platformColumn = new TableColumn(configTable, SWT.LEFT);
    platformColumn.setText(columnNames[2]);
    platformColumn.setWidth(columnWidths[2]);

    TableColumn releaseColumn = new TableColumn(configTable, SWT.LEFT);
    releaseColumn.setText(columnNames[3]);
    releaseColumn.setWidth(columnWidths[3]);

    TableColumn productColumn = new TableColumn(configTable, SWT.LEFT);
    productColumn.setText(columnNames[4]);
    productColumn.setWidth(columnWidths[4]);

    TableColumn dateColumn = new TableColumn(configTable, SWT.LEFT);
    dateColumn.setText(columnNames[5]);
    dateColumn.setWidth(columnWidths[5]);

    viewer.setLabelProvider(new ITableLabelProvider() {

        public void removeListener(ILabelProviderListener listener) {
        }

        public boolean isLabelProperty(Object element, String property) {
            return false;
        }

        public void dispose() {
        }

        public void addListener(ILabelProviderListener listener) {
        }

        public String getColumnText(Object element, int columnIndex) {
            if (!(element instanceof CPFInformation)) {
                return null;
            }
            CPFInformation ci = (CPFInformation) element;
            switch (columnIndex) {
            case 0:
                return ci.getName();
            case 1:
                return ci.getVersion();
            case 2:
                return ci.getPlatform();
            case 3:
                return ci.getRelease();
            case 4:
                return ci.getProduct();
            case 5:
                return ci.getDate();
            }
            return null;
        }

        public Image getColumnImage(Object element, int columnIndex) {
            return null;
        }
    });

    ArrayContentProvider provider = new ArrayContentProvider();
    viewer.setContentProvider(provider);

    viewer.setInput(configurations);

    int itemCount = configTable.getItemCount();
    for (int i = 0; i < itemCount; i++) {
        TableItem item = configTable.getItem(i);
        // ToolTip.createToolTip(item, "");
    }
    viewer.setSelection(new StructuredSelection(viewer.getElementAt(0)), true);
    dialogArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
    return dialogArea;
}

From source file:com.palantir.typescript.search.SearchResultPage.java

License:Apache License

@Override
protected void configureTableViewer(TableViewer viewer) {
    checkNotNull(viewer);/*  w ww .j  a v  a 2 s .  c o m*/

    viewer.setContentProvider(new SearchResultTableContentProvider());
    viewer.setLabelProvider(new DelegatingStyledCellLabelProvider(new SearchResultLabelProvider(this, false)));
    viewer.setUseHashlookup(true);
}