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:org.eclipse.jface.snippets.viewers.Snippet027ComboBoxCellEditors.java

License:Open Source License

public Snippet027ComboBoxCellEditors(Shell shell) {
    final Table table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
    final TableViewer v = new TableViewer(table);
    v.setContentProvider(ArrayContentProvider.getInstance());

    TableColumn column = new TableColumn(table, SWT.NONE);
    column.setWidth(200);/*from w ww .j  av  a  2s . c o m*/
    column.setText("Column 1");
    TableViewerColumn viewerColumn = new TableViewerColumn(v, column);
    viewerColumn.setLabelProvider(new ColumnLabelProvider());
    viewerColumn.setEditingSupport(new EditingSupport(v) {

        @Override
        protected void setValue(Object element, Object value) {
            ((MyModel) element).counter = ((Integer) value).intValue() * 10;
            getViewer().update(element, null);
        }

        @Override
        protected Object getValue(Object element) {
            // We need to calculate back to the index
            return Integer.valueOf(((MyModel) element).counter / 10);
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new ComboBoxCellEditor(v.getTable(), new String[] { "Zero", "Ten", "Twenty", "Thirty",
                    "Fourty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety" });
        }

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

    v.setInput(createModel());
    v.getTable().setLinesVisible(true);
    v.getTable().setHeaderVisible(true);
}

From source file:org.eclipse.jface.snippets.viewers.Snippet029VirtualTableViewer.java

License:Open Source License

public Snippet029VirtualTableViewer(Shell shell) {
    final TableViewer v = new TableViewer(shell, SWT.VIRTUAL);
    v.setLabelProvider(new LabelProvider());
    v.setContentProvider(ArrayContentProvider.getInstance());
    v.setUseHashlookup(true);//from   w w  w  .ja  v a 2 s.c o  m
    createColumn(v.getTable(), "Column 1");
    v.setInput(createModel());
    v.getTable().setLinesVisible(true);
}

From source file:org.eclipse.jface.snippets.viewers.Snippet030VirtualLazyTableViewer.java

License:Open Source License

public Snippet030VirtualLazyTableViewer(Shell shell) {
    final TableViewer v = new TableViewer(shell, SWT.VIRTUAL);
    v.setLabelProvider(new LabelProvider());
    v.setContentProvider(new MyContentProvider(v));
    v.setUseHashlookup(true);// w w  w .  j  av a 2  s  .  c  o m
    createColumn(v.getTable(), "Column 1");
    MyModel[] model = createModel();
    v.setInput(model);
    v.setItemCount(model.length); // This is the difference when using a
    // ILazyContentProvider

    v.getTable().setLinesVisible(true);
}

From source file:org.eclipse.jface.snippets.viewers.Snippet031TableViewerCustomTooltipsMultiSelection.java

License:Open Source License

public Snippet031TableViewerCustomTooltipsMultiSelection(Shell shell) {
    final Table table = new Table(shell, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);
    table.setHeaderVisible(true);//w w  w  .  j  a va 2s .  co  m
    table.setLinesVisible(true);

    final TableViewer v = new TableViewer(table);
    TableColumn tableColumn1 = new TableColumn(table, SWT.NONE);
    TableColumn tableColumn2 = new TableColumn(table, SWT.NONE);

    String column1 = "Column 1", column2 = "Column 2";
    /* Setup the table  columns */
    tableColumn1.setText(column1);
    tableColumn2.setText(column2);
    tableColumn1.pack();
    tableColumn2.pack();

    v.setColumnProperties(new String[] { column1, column2 });
    v.setLabelProvider(new MyLableProvider());
    v.setContentProvider(new ArrayContentProvider());
    v.setInput(createModel());

    /**
     * The listener that gets added to the table.  This listener is responsible for creating the tooltips
     * when hovering over a cell item. This listener will listen for the following events:
     *  <li>SWT.KeyDown      - to remove the tooltip</li>
     *  <li>SWT.Dispose      - to remove the tooltip</li>
     *  <li>SWT.MouseMove   - to remove the tooltip</li>
     *  <li>SWT.MouseHover   - to set the tooltip</li>
     */
    Listener tableListener = new Listener() {
        Shell tooltip = null;
        Label label = null;

        @Override
        public void handleEvent(Event event) {
            switch (event.type) {
            case SWT.KeyDown:
            case SWT.Dispose:
            case SWT.MouseMove: {
                if (tooltip == null)
                    break;
                tooltip.dispose();
                tooltip = null;
                label = null;
                break;
            }
            case SWT.MouseHover: {
                Point coords = new Point(event.x, event.y);
                TableItem item = table.getItem(coords);
                if (item != null) {
                    int columnCount = table.getColumnCount();
                    for (int columnIndex = 0; columnIndex < columnCount; columnIndex++) {
                        if (item.getBounds(columnIndex).contains(coords)) {
                            /* Dispose of the old tooltip (if one exists */
                            if (tooltip != null && !tooltip.isDisposed())
                                tooltip.dispose();

                            /* Create a new Tooltip */
                            tooltip = new Shell(table.getShell(), SWT.ON_TOP | SWT.NO_FOCUS | SWT.TOOL);
                            tooltip.setBackground(table.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
                            FillLayout layout = new FillLayout();
                            layout.marginWidth = 2;
                            tooltip.setLayout(layout);
                            label = new Label(tooltip, SWT.NONE);
                            label.setForeground(table.getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
                            label.setBackground(table.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));

                            /* Store the TableItem with the label so we can pass the mouse event later */
                            label.setData("_TableItem_", item);

                            /* Set the tooltip text */
                            label.setText("Tooltip: " + item.getData() + " : " + columnIndex);

                            /* Setup Listeners to remove the tooltip and transfer the received mouse events */
                            label.addListener(SWT.MouseExit, tooltipLabelListener);
                            label.addListener(SWT.MouseDown, tooltipLabelListener);

                            /* Set the size and position of the tooltip */
                            Point size = tooltip.computeSize(SWT.DEFAULT, SWT.DEFAULT);
                            Rectangle rect = item.getBounds(columnIndex);
                            Point pt = table.toDisplay(rect.x, rect.y);
                            tooltip.setBounds(pt.x, pt.y, size.x, size.y);

                            /* Show it */
                            tooltip.setVisible(true);
                            break;
                        }
                    }
                }
            }
            }
        }
    };

    table.addListener(SWT.Dispose, tableListener);
    table.addListener(SWT.KeyDown, tableListener);
    table.addListener(SWT.MouseMove, tableListener);
    table.addListener(SWT.MouseHover, tableListener);
}

From source file:org.eclipse.jface.snippets.viewers.Snippet034CellEditorPerRow.java

License:Open Source License

public Snippet034CellEditorPerRow(Shell shell) {
    final Table table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);

    final TableViewer v = new TableViewer(table);
    v.getTable().setLinesVisible(true);/*from w  w w.ja  v a2s. co  m*/

    TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setText("Column 1");
    column.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            return element.toString();
        }

    });

    column.setEditingSupport(new MyEditingSupport(v));
    v.setContentProvider(ArrayContentProvider.getInstance());
    v.setInput(createModel());
    v.getTable().setHeaderVisible(true);
}

From source file:org.eclipse.jface.snippets.viewers.Snippet035TableCursorCellHighlighter.java

License:Open Source License

public Snippet035TableCursorCellHighlighter(Shell shell) {
    int style = SWT.BORDER | SWT.HIDE_SELECTION | SWT.FULL_SELECTION;
    final TableViewer v = new TableViewer(shell, style);
    v.setContentProvider(ArrayContentProvider.getInstance());

    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(v,
            new CursorCellHighlighter(v, new TableCursor(v)));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {

        @Override/*www .j  a  v  a 2s  . c  om*/
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };

    int features = ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
            | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION;

    TableViewerEditor.create(v, focusCellManager, actSupport, features);

    TableViewerColumn viewerColumn = new TableViewerColumn(v, SWT.NONE);
    viewerColumn.getColumn().setWidth(200);
    viewerColumn.getColumn().setText("Column 1");
    viewerColumn.setEditingSupport(new MyEditingSupport(v, "1"));
    viewerColumn.setLabelProvider(new MyColumnLabelProvider("1"));

    viewerColumn = new TableViewerColumn(v, SWT.NONE);
    viewerColumn.getColumn().setWidth(200);
    viewerColumn.getColumn().setText("Column 2");
    viewerColumn.setEditingSupport(new MyEditingSupport(v, "2"));
    viewerColumn.setLabelProvider(new MyColumnLabelProvider("2"));

    MyModel[] model = createModel();
    v.setInput(model);
    v.getTable().setLinesVisible(true);
    v.getTable().setHeaderVisible(true);
}

From source file:org.eclipse.jface.snippets.viewers.Snippet036FocusBorderCellHighlighter.java

License:Open Source License

public Snippet036FocusBorderCellHighlighter(Shell shell) {
    final TableViewer v = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
    v.setContentProvider(ArrayContentProvider.getInstance());

    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(v,
            new FocusBorderCellHighlighter(v));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
        @Override/*from  www . j  a  va 2 s.c o m*/
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };

    int feature = ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
            | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION;

    TableViewerEditor.create(v, focusCellManager, actSupport, feature);

    String[] columLabels = { "Column 1", "Column 2", "Column 3" };
    int property = 0;
    for (String label : columLabels) {
        createColumnFor(v, label, property++);
    }
    v.setInput(createModel());
    v.getTable().setLinesVisible(true);
    v.getTable().setHeaderVisible(true);
}

From source file:org.eclipse.jface.snippets.viewers.Snippet037FancyCustomTooltips.java

License:Open Source License

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

    TableViewer v = new TableViewer(shell, SWT.FULL_SELECTION);
    v.getTable().setLinesVisible(true);
    v.getTable().setHeaderVisible(true);
    v.setContentProvider(ArrayContentProvider.getInstance());
    FancyToolTipSupport.enableFor(v, ToolTip.NO_RECREATE);

    CellLabelProvider labelProvider = new CellLabelProvider() {

        @Override
        public String getToolTipText(Object element) {
            return "<html><body>Tooltip (" + element
                    + ")<br /><a href='http://www.bestsolution.at' target='_NEW'>www.bestsolution.at</a></body></html>";
        }

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

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

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

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

    TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
    column.setLabelProvider(labelProvider);
    column.getColumn().setText("Column 1");
    column.getColumn().setWidth(100);
    String[] values = new String[] { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine",
            "ten" };
    v.setInput(values);

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

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

    display.dispose();
}

From source file:org.eclipse.jface.snippets.viewers.Snippet040TableViewerSorting.java

License:Open Source License

public Snippet040TableViewerSorting(Shell shell) {
    TableViewer viewer = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
    viewer.setContentProvider(ArrayContentProvider.getInstance());

    TableViewerColumn column = createColumnFor(viewer, "Givenname");
    column.setLabelProvider(new ColumnLabelProvider() {

        @Override/*from w  w  w  .ja  va2 s.co  m*/
        public String getText(Object element) {
            return ((Person) element).givenname;
        }
    });

    column.setEditingSupport(new AbstractEditingSupport(viewer) {

        @Override
        protected Object getValue(Object element) {
            return ((Person) element).givenname;
        }

        @Override
        protected void doSetValue(Object element, Object value) {
            ((Person) element).givenname = value.toString();
        }

    });

    ColumnViewerComparator cSorter = new ColumnViewerComparator(viewer, column) {

        @Override
        protected int doCompare(Viewer viewer, Object e1, Object e2) {
            Person p1 = (Person) e1;
            Person p2 = (Person) e2;
            return p1.givenname.compareToIgnoreCase(p2.givenname);
        }

    };

    column = createColumnFor(viewer, "Surname");
    column.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            return ((Person) element).surname;
        }

    });

    column.setEditingSupport(new AbstractEditingSupport(viewer) {

        @Override
        protected Object getValue(Object element) {
            return ((Person) element).surname;
        }

        @Override
        protected void doSetValue(Object element, Object value) {
            ((Person) element).surname = value.toString();
        }

    });

    new ColumnViewerComparator(viewer, column) {

        @Override
        protected int doCompare(Viewer viewer, Object e1, Object e2) {
            Person p1 = (Person) e1;
            Person p2 = (Person) e2;
            return p1.surname.compareToIgnoreCase(p2.surname);
        }

    };

    column = createColumnFor(viewer, "E-Mail");
    column.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            return ((Person) element).email;
        }

    });

    column.setEditingSupport(new AbstractEditingSupport(viewer) {

        @Override
        protected Object getValue(Object element) {
            return ((Person) element).email;
        }

        @Override
        protected void doSetValue(Object element, Object value) {
            ((Person) element).email = value.toString();
        }

    });

    new ColumnViewerComparator(viewer, column) {

        @Override
        protected int doCompare(Viewer viewer, Object e1, Object e2) {
            Person p1 = (Person) e1;
            Person p2 = (Person) e2;
            return p1.email.compareToIgnoreCase(p2.email);
        }

    };

    viewer.setInput(createModel());
    viewer.getTable().setLinesVisible(true);
    viewer.getTable().setHeaderVisible(true);
    cSorter.setSorter(cSorter, ColumnViewerComparator.ASC);
}

From source file:org.eclipse.jface.snippets.viewers.Snippet041TableViewerAlternatingColors.java

License:Open Source License

public Snippet041TableViewerAlternatingColors(Shell shell) {

    final TableViewer viewer = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.VIRTUAL);

    viewer.setContentProvider(ArrayContentProvider.getInstance());
    String[] labels = { "Column 1", "Column 2" };
    for (String label : labels) {
        createColumnFor(viewer, label);/*w w w  . j a va 2  s.  com*/
    }
    viewer.setInput(createModel());
    viewer.getTable().setLinesVisible(true);
    viewer.getTable().setHeaderVisible(true);

    Button b = new Button(shell, SWT.PUSH);
    b.setText("Press to toggle filter");
    b.addSelectionListener(createAdapterFor(viewer));
}