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.Snippet044TableViewerKeyboardEditing.java

License:Open Source License

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

    TableViewerColumn viewerColumn = new TableViewerColumn(v, SWT.NONE);
    viewerColumn.getColumn().setWidth(200);
    viewerColumn.getColumn().setText("Column 0");

    viewerColumn.setLabelProvider(new MyColumnLabelProvider(v.getTable(), 0));
    viewerColumn.setEditingSupport(new MyEditingSupport(v, "1"));

    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(v,
            new FocusBorderCellHighlighter(v));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
        @Override//from   w  w  w.  j a v a  2  s.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;
        }
    };

    TableViewerEditor.create(v, focusCellManager, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

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

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

License:Open Source License

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

    TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
    column.setWidth(200);//from  w ww.  j a va  2s  .com
    column.setText("Column 1");

    column = new TableColumn(v.getTable(), SWT.NONE);
    column.setWidth(200);
    column.setText("Column 2");

    final List<MyModel> model = new ArrayList<>();
    model.add(new MyModel(0));
    model.add(new MyModel(0));
    model.add(new MyModel(0));
    v.setInput(model);
    v.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            MyModel m1 = (MyModel) e1;
            MyModel m2 = (MyModel) e2;
            return m2.counter - m1.counter;
        }

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

    TimerTask task = new TimerTask() {

        @Override
        public void run() {
            shell.getDisplay().syncExec(() -> {
                MyModel el = new MyModel(++COUNTER);
                v.add(el);
                model.add(el);
            });
        }
    };

    Timer timer = new Timer(true);
    timer.scheduleAtFixedRate(task, 3000, 1000);
}

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

License:Open Source License

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

    TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
    column.setWidth(200);//from  w w w.j  av  a  2s.c  o m
    column.setText("Column 1");

    column = new TableColumn(v.getTable(), SWT.NONE);
    column.setWidth(200);
    column.setText("Column 2");

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

    Button b = new Button(shell, SWT.PUSH);
    b.setText("Start Long Task");
    b.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            b.setText("Update running..");
            b.setEnabled(false);
            final Thread t = new Thread() {

                @Override
                public void run() {
                    for (int i = 0; i < model.length; i++) {
                        if (v.getTable().isDisposed()) {
                            return;
                        }
                        final int j = i;
                        v.getTable().getDisplay().asyncExec(() -> {
                            if (model[j].finished) {
                                model[j].finished = false;
                            } else {
                                model[j].finished = true;
                            }
                            v.update(model[j], null);
                        });
                        try {
                            Thread.sleep(new Random().nextInt(1000) + 100);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }

                    v.getTable().getDisplay().asyncExec(() -> {
                        b.setText("Start Long Task");
                        b.setEnabled(true);
                    });
                }
            };
            t.start();
        }
    });
}

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

License:Open Source License

public Composite createPartControl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);

    composite.setLayout(new GridLayout(1, true));

    Label label = new Label(composite, SWT.NONE);
    label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    label.setText("Viewer with a StyledCellLabelProvider:"); //$NON-NLS-1$

    final TableViewer tableViewer = new TableViewer(composite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);

    // Multi-font support only works in JFace 3.5 and above (specifically, 3.5 M4 and above).
    // With JFace 3.4, the font information (bold in this example) will be ignored.
    FontData[] boldFontData = getModifiedFontData(tableViewer.getTable().getFont().getFontData(), SWT.BOLD);

    Font boldFont = new Font(Display.getCurrent(), boldFontData);
    ExampleLabelProvider labelProvider = new ExampleLabelProvider(boldFont);
    FileSystemContentProvider contentProvider = new FileSystemContentProvider();

    tableViewer.setContentProvider(contentProvider);
    tableViewer.setLabelProvider(labelProvider);

    GridData data = new GridData(GridData.FILL, GridData.FILL, true, true);
    tableViewer.getControl().setLayoutData(data);
    tableViewer.setInput(new Object());

    return composite;
}

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

License:Open Source License

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

    TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
    column.getColumn().setWidth(200);/*from  ww w .ja  va 2 s .  c o m*/
    column.getColumn().setText("Column 1");
    column.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            return "Column 1 => " + element + ((((MyModel) element).counter % 2 != 0) ? " barcode" : "");
        }
    });

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

        @Override
        protected Image getImage(Object element) {
            if (((MyModel) element).counter % 2 == 0) {
                return images[((MyModel) element).counter / 2 % 4];
            }
            return null;
        }

    });

    // OwnerDrawLabelProvider.setUpOwnerDraw(v);

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

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

License:Open Source License

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

    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(viewer) {
        @Override/*w ww.j av  a  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.PROGRAMMATIC;
        }
    };

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

    TableViewerEditor.create(viewer, actSupport, feature);

    String[] labels = { "Column 1", "Column 2", "Column 3" };
    String[] properties = new String[] { "1", "2", "3" };
    int i = 0;
    for (String label : labels) {
        createColumnFor(viewer, label, properties[i++]);
    }
    viewer.setInput(createModel());
    viewer.getTable().setLinesVisible(true);
    viewer.getTable().setHeaderVisible(true);
}

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

License:Open Source License

public Snippet054NativeControlsInViewers(Shell shell) {
    final TableViewer viewer = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
    viewer.setContentProvider(ArrayContentProvider.getInstance());
    viewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));

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

        @Override/*from w  w  w . ja  v  a 2 s .  c o  m*/
        public String getText(Object element) {
            return element.toString();
        }

    });

    column = createColumnFor(viewer, "Column 2");
    column.setLabelProvider(createCellLabelProvider());

    viewer.setInput(createModel(10));
    viewer.getTable().setLinesVisible(true);
    viewer.getTable().setHeaderVisible(true);

    Button b = createButtonFor(shell, "Modify Input");
    b.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            viewer.setInput(createModel((int) (Math.random() * 10)));
        }

    });

    b = createButtonFor(shell, "Refresh");
    b.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            viewer.refresh();
        }

    });
}

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

License:Open Source License

public Snippet057TableViewerSkipHiddenCells(Shell shell) {

    final TableViewer tableviewer = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
    tableviewer.setContentProvider(ArrayContentProvider.getInstance());
    MenuManager mgr = new MenuManager();
    mgr.add(new Action("toggle surname visibility") {

        @Override//w w  w .  j  a va 2s .com
        public void run() {
            if (tableviewer.getTable().getColumn(1).getWidth() == 0) {
                tableviewer.getTable().getColumn(1).setWidth(200);
            } else {
                tableviewer.getTable().getColumn(1).setWidth(0);
            }

        }

    });
    tableviewer.getControl().setMenu(mgr.createContextMenu(tableviewer.getControl()));

    // Column 1
    TableViewerColumn column = new TableViewerColumn(tableviewer, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setText("Givenname");
    column.getColumn().setMoveable(false);
    column.setLabelProvider(new ColumnLabelProvider() {

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

    });

    column.setEditingSupport(new AbstractEditingSupport(tableviewer) {

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

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

    });

    // Column 2 is zero-width hidden
    column = new TableViewerColumn(tableviewer, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setText("Surname");
    column.getColumn().setMoveable(false);
    column.getColumn().setResizable(false);
    column.setLabelProvider(new ColumnLabelProvider() {

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

    });

    column.setEditingSupport(new AbstractEditingSupport(tableviewer) {

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

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

    });

    // column 3
    column = new TableViewerColumn(tableviewer, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setText("E-Mail");
    column.getColumn().setMoveable(false);
    column.setLabelProvider(new ColumnLabelProvider() {

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

    });

    column.setEditingSupport(new AbstractEditingSupport(tableviewer) {

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

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

    });

    Person[] model = this.createModel();
    tableviewer.setInput(model);
    tableviewer.getTable().setLinesVisible(true);
    tableviewer.getTable().setHeaderVisible(true);

    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(tableviewer,
            new FocusCellOwnerDrawHighlighter(tableviewer));

    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(tableviewer) {

        @Override
        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;

        }

    };

    TableViewerEditor.create(tableviewer, focusCellManager, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

}

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

License:Open Source License

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

    TableViewerColumn column = null;/*from  w w w  .java2 s.  c  o  m*/
    column = createColumnFor(v, "Givenname");
    column.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            return ((Person) element).givenname;
        }
    });
    column.setEditingSupport(new AbstractEditingSupport(v) {

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

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

    });

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

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

    });
    column.setEditingSupport(new AbstractEditingSupport(v) {

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

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

    });

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

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

    });
    column.setEditingSupport(new AbstractEditingSupport(v) {

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

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

    });
    column = createColumnFor(v, "Gender");
    column.setLabelProvider(new ColumnLabelProvider() {

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

    });

    ComboBoxCellEditor editor = new ComboBoxCellEditor(v.getTable(), new String[] { "M", "F" });
    editor.setActivationStyle(ComboBoxCellEditor.DROP_DOWN_ON_TRAVERSE_ACTIVATION
            | ComboBoxCellEditor.DROP_DOWN_ON_PROGRAMMATIC_ACTIVATION
            | ComboBoxCellEditor.DROP_DOWN_ON_MOUSE_ACTIVATION
            | ComboBoxCellEditor.DROP_DOWN_ON_KEY_ACTIVATION);

    column.setEditingSupport(new AbstractEditingSupport(v, editor) {

        @Override
        protected Object getValue(Object element) {
            if (((Person) element).gender.equals("M"))
                return Integer.valueOf(0);
            return Integer.valueOf(1);
        }

        @Override
        protected void doSetValue(Object element, Object value) {
            if (((Integer) value).intValue() == 0) {
                ((Person) element).gender = "M";
            } else {
                ((Person) element).gender = "F";
            }
        }

    });

    CellNavigationStrategy naviStrat = new CellNavigationStrategy() {

        @Override
        public ViewerCell findSelectedCell(ColumnViewer viewer, ViewerCell currentSelectedCell, Event event) {
            ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event);

            if (cell != null) {
                v.getTable().showColumn(v.getTable().getColumn(cell.getColumnIndex()));
            }
            return cell;
        }

    };

    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(v,
            new FocusCellOwnerDrawHighlighter(v), naviStrat);

    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
        @Override
        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);

    v.getColumnViewerEditor().addEditorActivationListener(new ColumnViewerEditorActivationListener() {

        @Override
        public void afterEditorActivated(ColumnViewerEditorActivationEvent event) {
        }

        @Override
        public void afterEditorDeactivated(ColumnViewerEditorDeactivationEvent event) {
        }

        @Override
        public void beforeEditorActivated(ColumnViewerEditorActivationEvent event) {
            ViewerCell cell = (ViewerCell) event.getSource();
            v.getTable().showColumn(v.getTable().getColumn(cell.getColumnIndex()));
        }

        @Override
        public void beforeEditorDeactivated(ColumnViewerEditorDeactivationEvent event) {
        }

    });

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

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

License:Open Source License

public Snippet060TextCellEditorWithContentProposal(Shell shell) {
    final TableViewer viewer = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
    final Table table = viewer.getTable();
    table.setLinesVisible(true);/* w  w w  .j  av a2  s.  co  m*/
    table.setHeaderVisible(true);

    final TableViewerColumn colorColumn = new TableViewerColumn(viewer, SWT.LEFT);
    colorColumn.getColumn().setText("Color name");
    colorColumn.getColumn().setWidth(200);
    colorColumn.setLabelProvider(new ColumnLabelProvider());
    colorColumn.setEditingSupport(new ColorNameEditingSupport(viewer));

    viewer.setContentProvider(new ArrayContentProvider());

    ColumnViewerEditorActivationStrategy activationSupport = new ColumnViewerEditorActivationStrategy(viewer) {
        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == KeyLookupFactory.getDefault()
                                    .formalKeyLookup(IKeyLookup.ENTER_NAME));
        }
    };
    activationSupport.setEnableEditorActivationWithKeyboard(true);

    /*
     * Without focus highlighter, keyboard events will not be delivered to
     * ColumnViewerEditorActivationStragety#isEditorActivationEvent(...) (see above)
     */
    FocusCellHighlighter focusCellHighlighter = new FocusCellOwnerDrawHighlighter(viewer);
    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer,
            focusCellHighlighter);

    TableViewerEditor.create(viewer, focusCellManager, activationSupport,
            ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    viewer.setInput(createModel());
}