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.mountainminds.eclemma.internal.ui.dialogs.CoveragePropertyPage.java

License:Open Source License

private Control createTable(Composite parent) {
    final Table table = new Table(parent, SWT.BORDER);
    initializeDialogUnits(table);/*w  w  w  .  ja v a 2 s . c o m*/
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    TableViewer viewer = new TableViewer(table);
    createColumn(viewer, SWT.LEFT, 20, UIMessages.CoveragePropertyPageColumnCounter_label,
            new CellLabelProvider() {
                @Override
                public void update(ViewerCell cell) {
                    final Line line = (Line) cell.getElement();
                    cell.setText(line.label);
                }
            });
    createColumn(viewer, SWT.RIGHT, 20, UIMessages.CoveragePropertyPageColumnCoverage_label,
            new OwnerDrawLabelProvider() {
                @Override
                public void update(ViewerCell cell) {
                    final Line line = (Line) cell.getElement();
                    cell.setText(COVERAGE_VALUE.format(line.counter.getCoveredRatio()));
                }

                @Override
                protected void paint(Event event, Object element) {
                    final Line line = (Line) element;
                    RedGreenBar.draw(event, table.getColumn(1).getWidth(), line.counter);
                }

                @Override
                protected void erase(Event event, Object element) {
                }

                @Override
                protected void measure(Event event, Object element) {
                }
            });
    createColumn(viewer, SWT.RIGHT, 16, UIMessages.CoveragePropertyPageColumnCovered_label,
            new CellLabelProvider() {
                @Override
                public void update(ViewerCell cell) {
                    final Line line = (Line) cell.getElement();
                    cell.setText(COUNTER_VALUE.format(line.counter.getCoveredCount()));
                }
            });
    createColumn(viewer, SWT.RIGHT, 16, UIMessages.CoveragePropertyPageColumnMissed_label,
            new CellLabelProvider() {
                @Override
                public void update(ViewerCell cell) {
                    final Line line = (Line) cell.getElement();
                    cell.setText(COUNTER_VALUE.format(line.counter.getMissedCount()));
                }
            });
    createColumn(viewer, SWT.RIGHT, 16, UIMessages.CoveragePropertyPageColumnTotal_label,
            new CellLabelProvider() {
                @Override
                public void update(ViewerCell cell) {
                    final Line line = (Line) cell.getElement();
                    cell.setText(COUNTER_VALUE.format(line.counter.getTotalCount()));
                }
            });
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.addFilter(new ViewerFilter() {
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            return ((Line) element).counter.getTotalCount() != 0;
        }
    });
    viewer.setInput(getLines());
    return table;
}

From source file:com.mountainminds.eclemma.internal.ui.editors.SessionDataPage.java

License:Open Source License

@Override
protected void createFormContent(IManagedForm managedForm) {
    final FormToolkit toolkit = managedForm.getToolkit();

    final ScrolledForm form = managedForm.getForm();
    form.setText(ExecutionDataEditorSessionsPage_title);
    toolkit.decorateFormHeading(form.getForm());

    final Composite body = form.getBody();
    GridLayoutFactory.swtDefaults().applyTo(body);

    final Table sessionTable = toolkit.createTable(body, SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.BORDER);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(sessionTable);
    sessionTable.setHeaderVisible(true);
    sessionTable.setLinesVisible(true);//from   ww  w  . j  a  va  2  s.co m

    final TableViewer sessionTableViewer = new TableViewer(sessionTable);

    final TableViewerColumn sessionIdColumnViewer = new TableViewerColumn(sessionTableViewer, SWT.NONE);
    sessionIdColumnViewer.setLabelProvider(new SessionIdColumnLabelProvider());
    final TableColumn sessionIdColumn = sessionIdColumnViewer.getColumn();
    sessionIdColumn.setText(ExecutionDataEditorSessionsPageColumnSessionId_label);
    sessionIdColumn.setWidth(300);

    final TableViewerColumn startTimeColumnViewer = new TableViewerColumn(sessionTableViewer, SWT.NONE);
    startTimeColumnViewer.setLabelProvider(new StartTimeColumnLabelProvider());
    final TableColumn startTimeColumn = startTimeColumnViewer.getColumn();
    startTimeColumn.setText(ExecutionDataEditorSessionsPageColumnStartTime_label);
    startTimeColumn.setWidth(200);

    final TableViewerColumn dumpTimeColumnViewer = new TableViewerColumn(sessionTableViewer, SWT.NONE);
    dumpTimeColumnViewer.setLabelProvider(new DumpTimeColumnLabelProvider());
    final TableColumn dumpTimeColumn = dumpTimeColumnViewer.getColumn();
    dumpTimeColumn.setText(ExecutionDataEditorSessionsPageColumnDumpTime_label);
    dumpTimeColumn.setWidth(200);

    sessionTable.setSortColumn(startTimeColumn);
    sessionTable.setSortDirection(SWT.UP);

    sessionTableViewer.setContentProvider(new AbstractExecutionDataContentProvider() {
        public Object[] getElements(ExecutionDataContent content) {
            return content.getSessionInfos();
        }
    });
    sessionTableViewer.setInput(content);
}

From source file:com.mousefeed.eclipse.preferences.ActionInvocationModeControl.java

License:Open Source License

/**
 * Creates a table viewer to initialize {@link #tableViewer}. 
 * @return the new table viewer. Not <code>null</code>.
 *//*from   w w w  . j a v a 2s  .  co  m*/
private TableViewer createTableViewer() {
    final TableViewer viewer = new TableViewer(table);
    viewer.setContentProvider(new ActionInvocationModeTableContentProvider());
    viewer.setLabelProvider(new ActionInvocationModeTableLabelProvider());

    new TableEditor(table);

    viewer.setCellEditors(new CellEditor[] { null, createOnWrongInvocationModeCellEditor() });
    viewer.setColumnProperties(new String[] { Column.LABEL.name(), Column.MODE.name() });

    viewer.setCellModifier(new ActionInvocationModeTableCellModifier(viewer));
    viewer.setInput(actionModes);
    return viewer;
}

From source file:com.nextep.datadesigner.beng.gui.VersionViewDeliveriesEditor.java

License:Open Source License

@Override
public Control createSWTControl(Composite parent) {
    sash = new SashForm(parent, SWT.HORIZONTAL);
    GridData gd = new GridData();
    gd.widthHint = 100;//from  w w w  .  j a v  a  2s  .c  om
    gd.heightHint = 300;
    sash.setLayoutData(gd);

    final Composite leftComposite = new Composite(sash, SWT.NONE);
    final GridLayout grid = new GridLayout(1, false);
    grid.marginBottom = grid.marginHeight = grid.marginLeft = grid.marginRight = grid.marginTop = 0;
    leftComposite.setLayout(grid);

    final Table deliveriesTab = DeliveryListTable.create(leftComposite);
    GridData dlvTabData = new GridData(SWT.FILL, SWT.FILL, true, true);
    dlvTabData.widthHint = 250;
    dlvTabData.heightHint = 300;
    deliveriesTab.setLayoutData(dlvTabData);
    deliveriesTableViewer = new TableViewer(deliveriesTab);
    deliveriesTableViewer.setContentProvider(new VendorDeliveriesContentProvider());
    deliveriesTableViewer.setLabelProvider(new DeliveryInfoTableLabelProvider());
    deliveriesTableViewer.setComparator(new TableColumnSorter(deliveriesTab, deliveriesTableViewer));
    setControl(sash);

    final Composite rightComposite = new Composite(sash, SWT.NONE);
    final GridLayout rightGrid = new GridLayout(1, false);
    rightGrid.marginBottom = rightGrid.marginHeight = rightGrid.marginLeft = rightGrid.marginRight = rightGrid.marginTop = 0;
    rightComposite.setLayout(rightGrid);
    final Table containerInfoTab = ContainerInfoTable.create(rightComposite);
    final TableViewer contentsTable = new TableViewer(containerInfoTab);
    contentsTable.setContentProvider(new DeliveryContainerInfoContentProvider());
    contentsTable.setLabelProvider(new ContainerInfoLabelProvider());
    GridData contData = new GridData(SWT.FILL, SWT.FILL, true, true);
    contData.widthHint = 150;
    contData.heightHint = 300;
    containerInfoTab.setLayoutData(contData);
    deliveriesTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            selectedDelivery = (IDeliveryInfo) selection.getFirstElement();
            contentsTable.setInput(selectedDelivery);
            setPageComplete(true);
        }
    });
    sash.pack();
    return sash;
}

From source file:com.nextep.designer.dbgm.ui.editors.DomainEditorComponent.java

License:Open Source License

@Override
public Control create(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);/*from w  w w. j  a v  a 2s  . c o  m*/

    Table t = DomainTable.create(editor);
    GridData gd = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 2);
    gd.heightHint = 250;
    t.setLayoutData(gd);

    domainViewer = new TableViewer(t);
    final DomainContentProvider provider = new DomainContentProvider();
    domainViewer.setContentProvider(provider);
    domainViewer.setLabelProvider(new DomainLabelProvider());

    CellEditor[] editors = new CellEditor[5];
    editors[1] = new TextCellEditor(t);
    editors[2] = new TextCellEditor(t);
    editors[3] = new TextCellEditor(t);
    editors[4] = new TextCellEditor(t);
    domainViewer.setCellEditors(editors);
    domainViewer.setColumnProperties(new String[] { COL_SEL, COL_NAME, COL_DESC, COL_LENGTH, COL_PRECISION });
    domainViewer.setSorter(new ViewerSorter());
    domainViewer.setCellModifier(new ICellModifier() {

        @Override
        public boolean canModify(Object element, String property) {
            return !COL_SEL.equals(property);
        }

        @Override
        public Object getValue(Object element, String property) {
            final IDomain d = (IDomain) element;
            if (COL_NAME.equals(property)) {
                return notNull(d.getName());
            }
            if (COL_DESC.equals(property)) {
                return notNull(d.getDescription());
            }
            if (COL_LENGTH.equals(property)) {
                return notNull(d.getLengthExpr());
            }
            if (COL_PRECISION.equals(property)) {
                return notNull(d.getPrecisionExpr());
            }
            return null;
        }

        @Override
        public void modify(Object element, String property, Object value) {
            final IDomain d = (IDomain) ((TableItem) element).getData();
            if (COL_NAME.equals(property)) {
                d.setName((String) value);
            } else if (COL_DESC.equals(property)) {
                d.setDescription((String) value);
            } else if (COL_LENGTH.equals(property)) {
                d.setLengthExpr((String) value);
            } else if (COL_PRECISION.equals(property)) {
                d.setPrecisionExpr((String) value);
            }
        }
    });

    Button addButton = new Button(editor, SWT.PUSH);
    addButton.setText(UIMessages.getString("component.typedListBlock.add")); //$NON-NLS-1$
    addButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
    addButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            IDomain d = (IDomain) UIControllerFactory.getController(IElementType.getInstance(IDomain.TYPE_ID))
                    .newInstance(null);
            provider.add(d);
            domainViewer.editElement(d, 1);
        }
    });
    Button removeButton = new Button(editor, SWT.PUSH);
    removeButton.setText(UIMessages.getString("component.typedListBlock.remove")); //$NON-NLS-1$
    removeButton.setLayoutData(new GridData(SWT.FILL, SWT.UP, false, false));
    removeButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            ISelection s = domainViewer.getSelection();
            if (s instanceof IStructuredSelection) {
                for (Object o : ((IStructuredSelection) s).toList()) {
                    final IDomain d = (IDomain) o;
                    // Removing vendor types
                    for (IDomainVendorType t : new ArrayList<IDomainVendorType>(d.getVendorTypes())) {
                        d.removeVendorType(t);
                    }
                    CorePlugin.getIdentifiableDao().delete(d);
                    // Removing domain
                    domainViewer.remove(d);
                }
            }
        }
    });

    final IDatatypeService datatypeService = CorePlugin.getService(IDatatypeService.class);
    datatypeService.reset();
    final Collection<IDomain> domains = datatypeService.getDomains();
    domainViewer.setInput(domains);

    // Domain vendor type section
    final Table typeTab = DomainTable.createDomainType(editor);
    final TableViewer typeViewer = new TableViewer(typeTab);
    GridData typeData = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 2);
    typeData.heightHint = 200;
    typeTab.setLayoutData(typeData);
    Button addTypeButton = new Button(editor, SWT.PUSH);
    addTypeButton.setText(UIMessages.getString("component.typedListBlock.add")); //$NON-NLS-1$
    addTypeButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
    addTypeButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            final IDomain domain = getSelectedDomain();
            if (domain == null) {
                MessageDialog.openWarning(editor.getShell(),
                        DBGMUIMessages.getString("domainPrefNoSelectionTitle"), //$NON-NLS-1$
                        DBGMUIMessages.getString("domainPrefNoSelection")); //$NON-NLS-1$
                return;
            }
            final Object o = UIControllerFactory
                    .getController(IElementType.getInstance(IDomainVendorType.TYPE_ID))
                    .emptyInstance(null, domain);
            typeViewer.editElement(o, 0);
        }
    });
    Button removeTypeButton = new Button(editor, SWT.PUSH);
    removeTypeButton.setText(UIMessages.getString("component.typedListBlock.remove")); //$NON-NLS-1$
    removeTypeButton.setLayoutData(new GridData(SWT.FILL, SWT.UP, false, false));

    typeViewer.setContentProvider(new DomainTypeContentProvider());
    typeViewer.setLabelProvider(new DomainTypeLabelProvider());
    typeViewer.setColumnProperties(new String[] { COL_VENDOR, COL_TYPE, COL_LENGTH, COL_PRECISION });
    CellEditor[] typeEditors = new CellEditor[4];

    typeEditors[0] = new ComboBoxCellEditor(typeTab, sortedVendors.toArray(new String[sortedVendors.size()]),
            SWT.READ_ONLY);
    typeEditors[1] = new TextCellEditor(typeTab);
    typeEditors[2] = new TextCellEditor(typeTab);
    typeEditors[3] = new TextCellEditor(typeTab);
    typeViewer.setCellEditors(typeEditors);
    typeViewer.setCellModifier(new ICellModifier() {

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

        @Override
        public Object getValue(Object element, String property) {
            IDomainVendorType t = (IDomainVendorType) element;
            if (COL_VENDOR.equals(property)) {
                if (t.getDBVendor() != null) {
                    return sortedVendors.indexOf(t.getDBVendor().toString());
                } else {
                    return 0;
                }
            } else if (COL_TYPE.equals(property)) {
                if (t.getDatatype() != null) {
                    return notNull(t.getDatatype().getName());
                } else {
                    return ""; //$NON-NLS-1$
                }
            } else if (COL_LENGTH.equals(property)) {
                if (t.getDatatype() != null && t.getDatatype().getLength() != null) {
                    return String.valueOf(t.getDatatype().getLength());
                } else {
                    return ""; //$NON-NLS-1$
                }
            } else if (COL_PRECISION.equals(property)) {
                if (t.getDatatype() != null && t.getDatatype().getPrecision() != null) {
                    return String.valueOf(t.getDatatype().getPrecision());
                } else {
                    return ""; //$NON-NLS-1$
                }
            }
            return null;
        }

        @Override
        public void modify(Object element, String property, Object value) {
            IDomainVendorType t = (IDomainVendorType) ((TableItem) element).getData();
            if (COL_VENDOR.equals(property)) {
                String val = sortedVendors.get((Integer) value);
                for (DBVendor v : DBVendor.values()) {
                    if (v.toString().equals(val)) {
                        t.setDBVendor(v);
                    }
                }
            } else if (COL_TYPE.equals(property)) {
                if (t.getDatatype() == null) {
                    t.setDatatype(Datatype.getDefaultDatatype());
                }
                t.getDatatype().setName((String) value);
                t.notifyListeners(ChangeEvent.MODEL_CHANGED, null);
            } else if (COL_LENGTH.equals(property)) {
                try {
                    if (value != null && !"".equals(((String) value).trim())) { //$NON-NLS-1$
                        t.getDatatype().setLength(Integer.valueOf((String) value));
                    } else {
                        t.getDatatype().setLength(null);
                    }
                } catch (NumberFormatException e) {
                    t.getDatatype().setLength(null);
                }
                t.notifyListeners(ChangeEvent.MODEL_CHANGED, null);
            } else if (COL_PRECISION.equals(property)) {
                try {
                    if (value != null && !"".equals(((String) value).trim())) { //$NON-NLS-1$
                        t.getDatatype().setPrecision(Integer.valueOf((String) value));
                    } else {
                        t.getDatatype().setPrecision(null);
                    }
                } catch (NumberFormatException e) {
                    t.getDatatype().setPrecision(null);
                }
                t.notifyListeners(ChangeEvent.MODEL_CHANGED, null);
            }
        }
    });

    domainViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            if (event.getSelection() instanceof IStructuredSelection) {
                final IStructuredSelection sel = (IStructuredSelection) event.getSelection();
                if (!sel.isEmpty()) {
                    typeViewer.setInput(sel.getFirstElement());
                } else {
                    typeViewer.setInput(null);
                }
            }
        }
    });
    removeTypeButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            ISelection s = typeViewer.getSelection();
            if (s instanceof IStructuredSelection) {
                final IStructuredSelection sel = (IStructuredSelection) s;
                if (!sel.isEmpty()) {
                    for (Object o : sel.toList()) {
                        if (o instanceof IDomainVendorType) {
                            final IDomainVendorType vt = (IDomainVendorType) o;
                            vt.getDomain().removeVendorType(vt);
                        }
                    }
                }
            }
        }
    });
    return editor;
}

From source file:com.nextep.designer.dbgm.ui.handlers.AddTableToDiagramHandler.java

License:Open Source License

/**
 * Prompts the user to select tables which will be added to the diagram
 * // w w w. j a  v a  2s .c  om
 * @param event handler event
 * @param diagram diagram to add the selection to
 */
private void promptForTableAdditions(ExecutionEvent event, final IDiagram diagram) {
    final Shell s = new Shell(HandlerUtil.getActiveShell(event), SWT.TITLE | SWT.RESIZE | SWT.CLOSE);
    s.setText(DBGMUIMessages.getString("addTablesToDiagramTitle"));
    s.setSize(500, 400);
    Rectangle pRect = s.getParent().getBounds();
    Rectangle cRect = s.getBounds();
    Point location = new Point(Math.max(0, pRect.x + pRect.width / 2 - cRect.width / 2),
            Math.max(0, pRect.y + pRect.height / 2 - cRect.height / 2));
    s.setLocation(location);
    s.setLayout(new GridLayout(1, false));
    final TableViewer viewer = new TableViewer(s, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
    final TablesNotInDiagramContentProvider contentProvider = new TablesNotInDiagramContentProvider(diagram);
    viewer.setContentProvider(contentProvider);
    viewer.setLabelProvider(new VersionableLabelProvider());
    viewer.setInput(VersionHelper.getCurrentView());
    if (contentProvider.isEmpty()) {
        MessageDialog.openInformation(HandlerUtil.getActiveShell(event),
                DBGMUIMessages.getString("allTablesAlreadyInDiagramTitle"),
                DBGMUIMessages.getString("allTablesAlreadyInDiagram"));
        return;
    }
    viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    Button okButton = new Button(s, SWT.PUSH);
    okButton.setText("    Ok    ");
    okButton.setLayoutData(new GridData(SWT.END, SWT.FILL, false, false));
    okButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            addSelectionToDiagram(diagram, viewer.getSelection());
            s.dispose();
        }
    });
    // s.pack();
    s.open();
    while (!s.isDisposed()) {
        try {
            if (!s.getDisplay().readAndDispatch())
                s.getDisplay().sleep();
        } catch (ErrorException e) {
            // An error might happen
            s.dispose();
        }
    }
}

From source file:com.nextep.designer.dbgm.ui.services.impl.DatabaseModelUIService.java

License:Open Source License

@Override
public Composite createColumnEditor(IWorkbenchPart part, Composite parentComposite, IColumnable parent) {
    final Table columnsTable = createColumnsTable(parentComposite);
    columnsTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    final TableViewer columnViewer = new TableViewer(columnsTable);
    columnViewer.setLabelProvider(new ColumnTableLabelProvider());
    columnViewer.setContentProvider(new ColumnsContentProvider());

    // Setting up editors for every column
    CellEditor[] editors = new CellEditor[6];
    editors[0] = new TextCellEditor(columnsTable);
    editors[1] = new TextCellEditor(columnsTable);
    editors[2] = new TextCellEditor(columnsTable);
    editors[3] = new TextCellEditor(columnsTable);
    editors[4] = new CheckboxCellEditor(columnsTable);
    editors[5] = new TextCellEditor(columnsTable);
    columnViewer.setCellEditors(editors);
    columnViewer.setColumnProperties(new String[] { ColumnCellModifier.PROP_NAME,
            ColumnCellModifier.PROP_DATATYPE, ColumnCellModifier.PROP_LENGTH, ColumnCellModifier.PROP_PRECISION,
            ColumnCellModifier.PROP_NOTNULL, ColumnCellModifier.PROP_DEFAULT });

    // Setting up the modifier which fetches information from model and set modifications back
    columnViewer.setCellModifier(new ColumnCellModifier());
    columnViewer.setInput(parent);//w w  w .j a  v  a 2s . c om
    registerContextMenu(columnViewer, part);
    columnViewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            if (event.getSelection() instanceof IStructuredSelection) {
                final ITypedObject o = (ITypedObject) ((IStructuredSelection) event.getSelection())
                        .getFirstElement();
                final ITypedObjectUIController controller = UIControllerFactory.getController(o);
                controller.defaultOpen(o);
            }
        }
    });
    return columnsTable;
}

From source file:com.nextep.designer.sqlgen.ui.impl.SQLSearchViewPage.java

License:Open Source License

@Override
protected void configureTableViewer(TableViewer viewer) {
    provider = new SQLSearchTreeNewContentProvider(viewer);
    viewer.setContentProvider(provider);
    viewer.setLabelProvider(new DecoratingStyledCellLabelProvider(new SQLSearchLabelProvider(this),
            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator(), null));

}

From source file:com.nextep.designer.synch.ui.dialogs.TableSelectionDialog.java

License:Open Source License

private TableViewer createViewer(Composite parent, String title) {
    final Composite labeledEditor = new Composite(parent, SWT.NONE);
    GridData editorData = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 2);
    editorData.widthHint = 150;//from   www.j  ava 2s.  co m
    editorData.heightHint = 250;
    labeledEditor.setLayoutData(editorData);
    final Table table = new Table(labeledEditor, SWT.BORDER | SWT.MULTI);
    final TableColumn col = new TableColumn(table, SWT.NONE);
    col.setWidth(150);
    col.setText(title);
    table.setHeaderVisible(true);
    // Using this specific layout to make sure columns are always 100%
    TableColumnLayout colLayout = new TableColumnLayout();
    colLayout.setColumnData(col, new ColumnWeightData(100));
    labeledEditor.setLayout(colLayout);

    // Initializing our viewer
    final TableViewer viewer = new TableViewer(table);
    viewer.setLabelProvider(new DecoratingStyledCellLabelProvider(new VersionableNewLabelProvider(),
            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator(), null));
    viewer.setContentProvider(new VersionableTableContentProvider());

    return viewer;
}

From source file:com.nextep.designer.vcs.ui.controllers.FindElementController.java

License:Open Source License

/**
 * @see com.nextep.datadesigner.model.IInvokable#invoke(java.lang.Object[])
 *//*from   w w w.j  av  a  2s .  c o m*/
@Override
public Object invoke(Object... arg) {
    IContentProvider provider = (IContentProvider) arg[0];
    Object input = null;
    String title = "Open element...";
    if (arg.length > 1) {
        input = arg[1];
    }
    if (arg.length > 2) {
        title = (String) arg[2];
    }

    Shell s = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
    final Shell dialog = new Shell(s, SWT.TITLE | SWT.CLOSE | SWT.MAX | SWT.RESIZE | SWT.APPLICATION_MODAL);
    dialog.setText(title);
    dialog.setSize(600, 400);
    Rectangle r = s.getBounds();
    dialog.setLocation(r.x + (r.width / 2 - 300), r.y + (r.height / 2 - 200));
    dialog.setLayout(new GridLayout(2, false));
    dialog.setImage(ImageFactory.ICON_DESIGNER_TINY);

    Composite group = new Composite(dialog, SWT.NONE);
    group.setLayout(new GridLayout());
    group.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true, 2, 1));

    Label filterLabel = new Label(group, SWT.NONE);
    filterLabel.setText("Enter element name filter:");
    filterLabel.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));

    final Text filterText = new Text(group, SWT.BORDER);
    filterText.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));

    Label matchLabel = new Label(group, SWT.NONE);
    matchLabel.setText("Matching items:");
    matchLabel.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));

    final TableViewer viewer = new TableViewer(group);
    viewer.getControl().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
    viewer.setContentProvider(provider);
    viewer.setLabelProvider(new VersionableLabelProvider());
    viewer.addFilter(new NameFilter(filterText));
    viewer.setSorter(new TypedViewerComparator());
    if (input != null) {
        viewer.setInput(VersionHelper.getCurrentView());
    }

    Button okButton = new Button(dialog, SWT.NONE);
    okButton.setText("     Ok     ");
    okButton.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, true, false));
    okButton.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            widgetSelected(e);
        }

        @Override
        public void widgetSelected(SelectionEvent e) {
            if (viewer.getSelection() instanceof IStructuredSelection) {
                Object elt = ((IStructuredSelection) viewer.getSelection()).getFirstElement();
                if (elt instanceof ITypedObject) {
                    element = elt;
                    // Closing dialog
                    dialog.dispose();
                }
            }
        }
    });
    viewer.getControl().addListener(SWT.MouseDoubleClick, new Listener() {
        @Override
        public void handleEvent(Event event) {
            if (viewer.getSelection() instanceof IStructuredSelection) {
                Object elt = ((IStructuredSelection) viewer.getSelection()).getFirstElement();
                if (elt instanceof ITypedObject) {
                    element = elt;
                    // Closing dialog
                    dialog.dispose();
                }
            }
        }
    });
    dialog.setDefaultButton(okButton);
    Button cancelButton = new Button(dialog, SWT.NONE);
    cancelButton.setText("   Cancel   ");
    cancelButton.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, false));
    cancelButton.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            element = null;
            widgetSelected(e);
        }

        @Override
        public void widgetSelected(SelectionEvent e) {
            dialog.dispose();
        }
    });
    filterText.addKeyListener(new KeyListener() {

        @Override
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.ARROW_DOWN) {
                int index = viewer.getTable().getSelectionIndex();
                if (index != -1 && viewer.getTable().getItemCount() > index + 1) {
                    viewer.getTable().setSelection(index + 1);
                }
                e.doit = false;
                //               viewer.getTable().setFocus();
            } else if (e.keyCode == SWT.ARROW_UP) {
                int index = viewer.getTable().getSelectionIndex();
                if (index != -1 && index >= 1) {
                    viewer.getTable().setSelection(index - 1);
                    //                  viewer.getTable().setFocus();
                }
                e.doit = false;
            }
            //removeFilter(currentFilter);
            //            viewer.addFilter(currentFilter = new NameFilter(filterText));

        }

        @Override
        public void keyReleased(KeyEvent e) {
            viewer.setFilters(new NameFilter[] { new NameFilter(filterText) });
            if (viewer.getSelection().isEmpty()) {
                if (viewer.getTable().getItemCount() > 0) {
                    viewer.getTable().select(0);
                }
            }
        }

    });
    if (viewer.getTable().getItemCount() > 0) {
        viewer.getTable().select(0);
    }
    dialog.open();

    while (!dialog.isDisposed()) {
        try {
            if (!dialog.getDisplay().readAndDispatch())
                dialog.getDisplay().sleep();
        } catch (ErrorException e) {
            // An error might happen
            dialog.dispose();
        }
    }
    return element;
}