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

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

Introduction

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

Prototype

public void add(Object[] elements) 

Source Link

Document

Adds the given elements to this table viewer.

Usage

From source file:org.eclipse.linuxtools.internal.docker.ui.launch.RunImageEnvironmentTab.java

License:Open Source License

private SelectionListener onAddEnvironmentVariable(final TableViewer environmentVariablesTableViewer) {
    return new SelectionAdapter() {
        @Override/*from   w w w  .ja  va 2s. c  o m*/
        public void widgetSelected(final SelectionEvent e) {
            final ContainerEnvironmentVariableDialog dialog = new ContainerEnvironmentVariableDialog(
                    getShell());
            dialog.create();
            if (dialog.open() == IDialogConstants.OK_ID) {
                model.getEnvironmentVariables().add(dialog.getEnvironmentVariable());
                environmentVariablesTableViewer.add(dialog.getEnvironmentVariable());
                environmentVariablesTableViewer.refresh();
                updateLaunchConfigurationDialog();
            }
        }
    };
}

From source file:org.eclipse.linuxtools.internal.docker.ui.launch.RunImageLabelsTab.java

License:Open Source License

private SelectionListener onAddLabelVariable(final TableViewer labelVariablesTableViewer) {
    return new SelectionAdapter() {
        @Override//www.j a va  2s. co  m
        public void widgetSelected(final SelectionEvent e) {
            final ContainerLabelVariableDialog dialog = new ContainerLabelVariableDialog(getShell());
            dialog.create();
            if (dialog.open() == IDialogConstants.OK_ID) {
                model.getLabelVariables().add(dialog.getLabelVariable());
                labelVariablesTableViewer.add(dialog.getLabelVariable());
                labelVariablesTableViewer.refresh();
                updateLaunchConfigurationDialog();
            }
        }
    };
}

From source file:org.eclipse.linuxtools.internal.docker.ui.wizards.ConfigureLabelsPage.java

License:Open Source License

private SelectionListener onAddLabelVariable(final TableViewer labelVariablesTableViewer) {
    return new SelectionAdapter() {
        @Override/*from w ww  .  j a va2  s.  co m*/
        public void widgetSelected(final SelectionEvent e) {
            final ContainerLabelVariableDialog dialog = new ContainerLabelVariableDialog(getShell());
            dialog.create();
            if (dialog.open() == IDialogConstants.OK_ID) {
                model.getLabelVariables().add(dialog.getLabelVariable());
                labelVariablesTableViewer.add(dialog.getLabelVariable());
                labelVariablesTableViewer.refresh();
            }
        }
    };
}

From source file:org.eclipse.mylyn.java.tests.ProblemsListTest.java

License:Open Source License

public void testInterestSorting() throws CoreException, InvocationTargetException, InterruptedException {
    IViewPart problemsPart = JavaPlugin.getActivePage().showView("org.eclipse.ui.views.ProblemView");
    assertNotNull(problemsPart);/*from ww w  . j a v a 2s.com*/

    IMethod m1 = type1.createMethod("void m1() { int a; }\n", null, true, null);
    IMethod m2 = type1.createMethod("void m2() { int b; }\n", null, true, null);
    type1.createMethod("void m3() { c; }", null, true, null);
    project.build();

    manager.processInteractionEvent(mockInterestContribution(m1.getHandleIdentifier(), 3f));
    manager.processInteractionEvent(mockInterestContribution(m2.getHandleIdentifier(), 2f));

    TableViewer viewer = new TableViewer(new Table(problemsPart.getViewSite().getShell(), SWT.NULL));
    viewer.setSorter(new MarkerViewerInterestSorter());

    IMarker[] markers = type1.getResource().findMarkers(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER, false,
            IResource.DEPTH_INFINITE);
    List<ProblemMarker> problemMarkers = new ArrayList<ProblemMarker>();
    for (IMarker marker2 : markers) {
        ProblemMarker marker = new ProblemMarker(marker2);
        problemMarkers.add(marker);
        viewer.add(marker);
    }

    // TODO: re-enable
    // // item 0 should be error
    // assertEquals(problemMarkers.get(0),
    // viewer.getTable().getItem(1).getData());
    // viewer.refresh();
    // manager.handleInteractionEvent(mockInterestContribution(m2.getHandleIdentifier(),
    // 4f));
    // for (int i = 0; i < markers.length; i++) viewer.add(new
    // ProblemMarker(markers[i]));
    // assertEquals(problemMarkers.get(1),
    // viewer.getTable().getItem(1).getData());
}

From source file:org.eclipse.n4js.ui.workingsets.WorkingSetManualAssociationWizard.java

License:Open Source License

@Override
public void addPages() {
    addPage(new WizardPage("") {

        private Text nameText;
        private final Collection<IProject> workspaceProjects = newTreeSet(PROJECT_NAME_COMPARATOR);
        private final Collection<IProject> workingSetProjects = newTreeSet(PROJECT_NAME_COMPARATOR);

        @Override// w ww.j av  a  2 s . c  om
        public void createControl(Composite parent) {

            final Composite composite = new Composite(parent, NONE);
            composite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).create());
            composite.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).create());

            new Label(composite, NONE).setText("Working set name:");
            nameText = new Text(composite, BORDER);
            nameText.setLayoutData(fillDefaults().align(FILL, CENTER).grab(true, false).create());

            Composite tableComposite = new Composite(composite, NONE);
            tableComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(3).equalWidth(false).create());
            tableComposite.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).span(2, 1).create());

            Group workspaceGroup = new Group(tableComposite, SHADOW_IN);
            workspaceGroup.setText("Available workspace projects");
            workspaceGroup.setLayout(GridLayoutFactory.fillDefaults().create());
            workspaceGroup.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).create());

            final TableViewer allProjectsViewer = new TableViewerBuilder(singletonList("")).setHasBorder(true)
                    .setHeaderVisible(false).setLinesVisible(false).setMultipleSelection(true)
                    .setColumnWidthsInPixel(Ints.asList(350)).setLabelProvider(labelProvider)
                    .build(workspaceGroup);

            Composite buttonComposite = new Composite(tableComposite, NONE);
            buttonComposite.setLayout(GridLayoutFactory.fillDefaults().create());
            // buttonComposite.setLayoutData(fillDefaults().align(CENTER, CENTER).grab(false, false).create());

            final Button addButton = new Button(buttonComposite, PUSH);
            addButton.setImage(ImageRef.RIGHT_ARROW.asImage().orNull());
            addButton.setToolTipText("Add all selected workspace projects");
            addButton.setEnabled(false);

            final Button removeButton = new Button(buttonComposite, PUSH);
            removeButton.setImage(ImageRef.LEFT_ARROW.asImage().orNull());
            removeButton.setToolTipText("Remove all selected working set element projects");
            removeButton.setEnabled(false);

            Group workingSetGroup = new Group(tableComposite, SHADOW_IN);
            workingSetGroup.setText("Associated working set projects");
            workingSetGroup.setLayout(GridLayoutFactory.fillDefaults().create());
            workingSetGroup.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).create());

            final TableViewer associatedProjectsViewer = new TableViewerBuilder(singletonList(""))
                    .setHasBorder(true).setHeaderVisible(false).setLinesVisible(false)
                    .setMultipleSelection(true).setColumnWidthsInPixel(Ints.asList(350))
                    .setLabelProvider(labelProvider).build(workingSetGroup);

            addButton.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    IStructuredSelection selection = allProjectsViewer.getStructuredSelection();
                    if (selection != null && !selection.isEmpty()) {
                        final IProject[] projects = Arrays2.filter(selection.toArray(), IProject.class);
                        allProjectsViewer.remove(projects);
                        associatedProjectsViewer.add(projects);
                        workspaceProjects.removeAll(Arrays.asList(projects));
                        workingSetProjects.addAll(Arrays.asList(projects));
                        setPageComplete(validatePage());
                    }
                }
            });

            removeButton.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    IStructuredSelection selection = associatedProjectsViewer.getStructuredSelection();
                    if (selection != null && !selection.isEmpty()) {
                        final IProject[] projects = Arrays2.filter(selection.toArray(), IProject.class);
                        associatedProjectsViewer.remove(projects);
                        allProjectsViewer.add(projects);
                        workingSetProjects.removeAll(Arrays.asList(projects));
                        workspaceProjects.addAll(Arrays.asList(projects));
                        setPageComplete(validatePage());
                    }
                }
            });

            associatedProjectsViewer.addSelectionChangedListener(event -> {
                final IStructuredSelection selection = associatedProjectsViewer.getStructuredSelection();
                removeButton.setEnabled(null != selection && !selection.isEmpty());
            });

            allProjectsViewer.addSelectionChangedListener(event -> {
                final IStructuredSelection selection = allProjectsViewer.getStructuredSelection();
                addButton.setEnabled(null != selection && !selection.isEmpty());
            });

            setPageComplete(false);
            setControl(composite);

            final Optional<WorkingSet> editedWorkingSet = getEditedWorkingSet();
            workspaceProjects.addAll(Arrays.asList(ResourcesPlugin.getWorkspace().getRoot().getProjects()));
            if (editedWorkingSet.isPresent()) {
                final ManualAssociationWorkingSet workingSet = (ManualAssociationWorkingSet) editedWorkingSet
                        .get();
                workingSetRef.set(workingSet);
                nameText.setText(workingSet.getName());
                nameText.selectAll();
                workingSetProjects.addAll(workingSet.getAssociatedProjects());
                workspaceProjects.removeAll(workingSetProjects);
                originalName.set(workingSet.getName());
            }

            composite.getDisplay().asyncExec(() -> {
                setTitle(TITLE);
                setDescription(DESCRIPTION);
                allProjectsViewer.setInput(workspaceProjects);
                associatedProjectsViewer.setInput(workingSetProjects);
            });

            nameText.addModifyListener(e -> setPageComplete(validatePage()));

        }

        @Override
        public void setVisible(boolean visible) {
            if (visible) {
                Rectangle location = UIUtils.getConstrainedShellBounds(getShell(), SHELL_SIZE);
                getShell().setBounds(location);
            }
            super.setVisible(visible);
        }

        @SuppressWarnings("null")
        private boolean validatePage() {

            String errorMessage = null;

            final String name = nameText.getText();
            final WorkingSetManager manager = getManager();

            if (manager == null) {
                errorMessage = "No active working set manager is available.";
            }

            if (errorMessage == null) {
                if (name == null || name.trim().length() == 0) {
                    errorMessage = "Working set name should be specified.";
                }
            }

            if (errorMessage == null) {
                if (!name.equals(originalName.get())
                        // This case ID and name are equal. Intentionally name.
                        && getAllWorkingSets().stream().anyMatch(ws -> ws.getName().equals(name))) {
                    errorMessage = "A working set already exists with name '" + name + "'.";
                }
            }

            if (errorMessage != null) {
                workingSetRef.set(null);
            } else {
                final Iterable<String> projectNames = from(workingSetProjects).transform(p -> p.getName());
                workingSetRef.set(new ManualAssociationWorkingSet(projectNames, name, manager));
            }

            setMessage(errorMessage, ERROR);
            return errorMessage == null;
        }

    });
}

From source file:org.eclipse.nebula.widgets.pagination.PageLoaderStrategyHelper.java

License:Open Source License

/**
 * This method loads the paginated list by using the given page loader
 * {@link IPageLoader} and information about pagination from the given
 * controller {@link PageableController}. After loading paginated list
 * returned in a pagination structure {@link PageResult}, this method :
 * //  ww w  .  j  a v a  2 s  . co m
 * <ul>
 * <li>update the total elements of the given controller
 * {@link PageableController}</li>
 * <li>refresh the given {@link Viewer} by replacing data with the new
 * paginated list.</li>
 * </ul>
 * 
 * @param controller
 *            the controller to use to load paginated list and update the
 *            total elements.
 * @param viewer
 *            the viewer to refresh with new paginated list.
 * @param pageLoader
 *            the page loader used to load paginated list.
 * @pageContentProvider the page content provider to retrieves total
 *                      elements+paginated list from the page result
 *                      structure returned by the pageLoader.
 * @param handler
 *            the page loader handler to observe before/after page loading
 *            process. If null no observation is done.
 */
public static void loadPageAndAddItems(final PageableController controller, final TableViewer viewer,
        final IPageLoader<?> pageLoader, final IPageContentProvider pageContentProvider,
        final IPageLoaderHandler<PageableController> handler) {
    Object page = loadPageAndUpdateTotalElements(controller, pageLoader, pageContentProvider, handler);
    if (page != null) {
        List<?> content = pageContentProvider.getPaginatedList(page);
        if (content != null && !content.isEmpty()) {
            viewer.add(content.toArray());
            int count = viewer.getTable().getItemCount();
            if (count > 0) {
                TableItem item = viewer.getTable().getItem(count - 1);
                item.setData(LazyItemsSelectionListener.LAST_ITEM_LOADED, true);
            }
        }
    }
}

From source file:org.eclipse.rcptt.ctx.parameters.ui.ParametersContextEditor.java

License:Open Source License

private TableViewer createTable(Composite parent, FormToolkit toolkit) {
    table = new Table(parent, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
    GridDataFactory.fillDefaults().grab(true, true).hint(100, 50).applyTo(table);
    table.setHeaderVisible(true);//from  ww w  .ja  va 2 s .c  om
    toolkit.adapt(table);
    table.setLinesVisible(true);

    nameColumn = new TableColumn(table, SWT.LEFT);
    nameColumn.setText("Name");
    nameColumn.setWidth(200);
    nameColumn.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            sortBy(nameColumn);
        }
    });

    valueColumn = new TableColumn(table, SWT.LEFT);
    valueColumn.setText("Value");
    valueColumn.setWidth(350);
    valueColumn.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            sortBy(valueColumn);
        }
    });

    table.addKeyListener(new KeyAdapter() {

        public void keyPressed(KeyEvent e) {
            switch (e.keyCode) {
            case SWT.DEL:
            case SWT.BS:
                removeSelected();
                break;
            case SWT.INSERT:
                addNew();
                break;
            case SWT.CR:
            case SWT.F2:
                lastNewName = "";
                Object el = ((StructuredSelection) viewer.getSelection()).getFirstElement();
                if (el != null)
                    viewer.editElement(el, 0);
                else
                    viewer.editElement(newParameterItem, 0);
                break;
            }
        }
    });

    final TableViewer viewer = new TableViewer(table);
    viewer.setContentProvider(new IStructuredContentProvider() {

        public void dispose() {
            // do nothing
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // do nothing
        }

        public Object[] getElements(Object inputElement) {
            ParametersContext ctx = (ParametersContext) inputElement;

            List<Parameter> elements = new ArrayList<Parameter>();
            elements.addAll(ctx.getParameters());
            elements.add(newParameterItem);

            return elements.toArray();
        }

    });

    // --

    TableViewerColumn nameViewerColumn = new TableViewerColumn(viewer, nameColumn);
    nameViewerColumn.setLabelProvider(new ColumnLabelProvider() {

        public String getText(Object element) {
            Parameter p = (Parameter) element;
            return p.getName();
        }

        public Image getImage(Object element) {
            return element == newParameterItem
                    ? Images.getImageDescriptor(ISharedImages.IMG_OBJ_ADD).createImage()
                    : Images.getImage(Images.PARAMETER);
        }

        public Font getFont(Object element) {
            if (element == newParameterItem) {
                Font tableFont = table.getFont();
                FontData fd = tableFont.getFontData()[0];
                fd.setStyle(fd.getStyle() | SWT.ITALIC);

                return new Font(tableFont.getDevice(), fd);
            } else
                return null;
        }
    });

    nameViewerColumn.setEditingSupport(new EditingSupport(viewer) {

        protected CellEditor getCellEditor(final Object element) {
            final TextCellEditor editor = new TextCellEditor(table);
            editor.getControl().addTraverseListener(new TraverseListener() {

                public void keyTraversed(TraverseEvent e) {
                    Text text = (Text) editor.getControl();

                    switch (e.detail) {
                    case SWT.TRAVERSE_TAB_NEXT:
                        if (validateName(element, text.getText()))
                            viewer.editElement(element, 1);
                        e.detail = SWT.TRAVERSE_NONE;
                        e.doit = false;
                        break;
                    case SWT.TRAVERSE_ARROW_NEXT:
                        if (e.keyCode == SWT.ARROW_DOWN) {
                            if (table.getItemCount() > table.getSelectionIndex() + 1
                                    && (isNewAndBlank(element, text.getText())
                                            || validateName(element, text.getText())))
                                viewer.editElement(viewer.getElementAt(table.getSelectionIndex() + 1), 0);
                            e.detail = SWT.TRAVERSE_NONE;
                            e.doit = false;
                        }
                        break;
                    case SWT.TRAVERSE_ARROW_PREVIOUS:
                        if (e.keyCode == SWT.ARROW_UP) {
                            if (table.getSelectionIndex() > 0 && (isNewAndBlank(element, text.getText())
                                    || validateName(element, text.getText())))
                                viewer.editElement(viewer.getElementAt(table.getSelectionIndex() - 1), 0);
                            e.detail = SWT.TRAVERSE_NONE;
                            e.doit = false;
                        }
                        break;
                    }
                }

            });
            return editor;
        }

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

        protected Object getValue(Object element) {
            if (lastNewName.length() > 0)
                return lastNewName;
            else if (element == newParameterItem)
                return "";
            else {
                Parameter p = (Parameter) element;
                return p.getName();
            }
        }

        protected void setValue(final Object element, Object value) {
            String name = (String) value;
            Parameter param = (Parameter) element;
            ParametersContext ctx = getContextElement();

            if (isNewAndBlank(element, name)) {
                lastNewName = "";
                return;
            }

            if (!validateName(element, name)) {
                table.getDisplay().asyncExec(new Runnable() {

                    public void run() {
                        if (!table.isDisposed())
                            viewer.editElement(element, 0);
                    }
                });

                return;
            }

            if (param != newParameterItem) {
                if (!param.getName().equals(name)) {
                    Integer index = nameToIndex.get(param.getName());
                    nameToIndex.remove(param.getName());
                    nameToIndex.put(name, index);

                    param.setName(name);
                    viewer.update(element, NAME_PROPERTIES);
                }
            } else {
                final Parameter newParam = ParametersFactory.eINSTANCE.createParameter();
                newParam.setName(name);
                newParam.setValue("");

                nameToIndex.put(name, table.getItemCount() - 1);

                ctx.getParameters().add(newParam);
                viewer.add(newParam);

                viewer.setSelection(new StructuredSelection(newParam), true);
                table.getDisplay().asyncExec(new Runnable() {

                    public void run() {
                        viewer.editElement(newParam, 1);
                    }
                });
            }
        }

    });

    // --

    TableViewerColumn valueViewerColumn = new TableViewerColumn(viewer, valueColumn);
    valueViewerColumn.setLabelProvider(new ColumnLabelProvider() {
        public String getText(Object element) {
            Parameter p = (Parameter) element;
            return p.getValue();
        }
    });

    valueViewerColumn.setEditingSupport(new EditingSupport(viewer) {

        protected CellEditor getCellEditor(final Object element) {
            final TextCellEditor editor = new TextCellEditor(table);
            editor.getControl().addTraverseListener(new TraverseListener() {

                public void keyTraversed(TraverseEvent e) {
                    Text text = (Text) editor.getControl();

                    switch (e.detail) {
                    case SWT.TRAVERSE_TAB_PREVIOUS:
                        if (validateName(element, text.getText()))
                            viewer.editElement(element, 0);
                        e.detail = SWT.TRAVERSE_NONE;
                        e.doit = false;
                        break;
                    case SWT.TRAVERSE_ARROW_NEXT:
                        if (e.keyCode == SWT.ARROW_DOWN) {
                            if (table.getItemCount() > table.getSelectionIndex() + 1)
                                viewer.editElement(viewer.getElementAt(table.getSelectionIndex() + 1), 1);
                            e.detail = SWT.TRAVERSE_NONE;
                            e.doit = false;
                        }
                        break;
                    case SWT.TRAVERSE_ARROW_PREVIOUS:
                        if (e.keyCode == SWT.ARROW_UP) {
                            if (table.getSelectionIndex() > 0)
                                viewer.editElement(viewer.getElementAt(table.getSelectionIndex() - 1), 1);
                            e.detail = SWT.TRAVERSE_NONE;
                            e.doit = false;
                        }
                        break;
                    }
                }

            });
            return editor;
        }

        protected boolean canEdit(Object element) {
            return element != newParameterItem;
        }

        protected Object getValue(Object element) {
            Parameter p = (Parameter) element;
            return p.getValue();
        }

        protected void setValue(Object element, Object value) {
            Parameter p = (Parameter) element;
            String v = (String) value;
            if (!p.getValue().equals(v)) {
                p.setValue((String) value);
                viewer.update(element, VALUE_PROPERTIES);
            }
        }

    });

    // --

    updateIndexes();
    viewer.setComparator(new Comparator());

    // --

    viewer.setInput(getContextElement());

    return viewer;
}

From source file:org.eclipse.rcptt.ui.editors.ScenarioProperties.java

License:Open Source License

private TableViewer createTable(Composite parent, FormToolkit toolkit) {
    table = new Table(parent, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
    GridDataFactory.fillDefaults().grab(true, true).hint(100, 50).applyTo(table);
    table.setHeaderVisible(true);/* w w  w . ja v  a  2  s .c o  m*/
    toolkit.adapt(table);
    table.setLinesVisible(true);

    nameColumn = new TableColumn(table, SWT.LEFT);
    nameColumn.setText("Name");
    nameColumn.setWidth(200);
    nameColumn.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            sortBy(nameColumn);
        }
    });

    valueColumn = new TableColumn(table, SWT.LEFT);
    valueColumn.setText("Value");
    valueColumn.setWidth(350);
    valueColumn.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            sortBy(valueColumn);
        }
    });

    table.addKeyListener(new KeyAdapter() {

        public void keyPressed(KeyEvent e) {
            switch (e.keyCode) {
            case SWT.DEL:
                removeSelected();
                break;
            case SWT.INSERT:
                addNew();
                break;
            case SWT.CR:
            case SWT.F2:
                lastNewName = "";
                Object el = ((StructuredSelection) viewer.getSelection()).getFirstElement();
                if (el != null)
                    viewer.editElement(el, 0);
                else
                    viewer.editElement(newParameterItem, 0);
                break;
            }
        }
    });

    final TableViewer viewer = new TableViewer(table);

    table.addMouseListener(new MouseListener() {
        @Override
        public void mouseUp(MouseEvent e) {
        }

        @Override
        public void mouseDown(MouseEvent e) {
            TableItem item = table.getItem(new Point(e.x, e.y));
            if (item == null) {
                viewer.cancelEditing();
            }
        }

        @Override
        public void mouseDoubleClick(MouseEvent e) {
            // TODO Auto-generated method stub

        }
    });

    viewer.setContentProvider(new IStructuredContentProvider() {

        public void dispose() {
            // do nothing
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // do nothing
        }

        public Object[] getElements(Object inputElement) {
            Scenario ctx = (Scenario) inputElement;

            List<ScenarioProperty> elements = new ArrayList<ScenarioProperty>();
            elements.addAll(ctx.getProperties());
            elements.add(newParameterItem);

            return elements.toArray();
        }

    });

    // --

    TableViewerColumn nameViewerColumn = new TableViewerColumn(viewer, nameColumn);
    nameViewerColumn.setLabelProvider(new ColumnLabelProvider() {

        public String getText(Object element) {
            ScenarioProperty p = (ScenarioProperty) element;
            return p.getName();
        }

        public Image getImage(Object element) {
            return element == newParameterItem
                    ? Images.getImageDescriptor(ISharedImages.IMG_OBJ_ADD).createImage()
                    : Images.getImage(Images.PARAMETER);
        }

        public Font getFont(Object element) {
            if (element == newParameterItem) {
                Font tableFont = table.getFont();
                FontData fd = tableFont.getFontData()[0];
                fd.setHeight(fd.getHeight() - 2);

                return new Font(tableFont.getDevice(), fd);
            } else
                return null;
        }
    });

    nameViewerColumn.setEditingSupport(new EditingSupport(viewer) {

        protected CellEditor getCellEditor(final Object element) {
            final Scenario scenario = getNamedElement();
            final List<SuggestionItem> suggestions = PropertySuggestionManager.getInstance()
                    .getScenarioProperties(scenario);
            final PropertyCellEditor editor = new PropertyCellEditor(table, suggestions) {
                public void completeEdit() {
                    viewer.applyEditorValue();
                };
            };
            editor.setFilterEnabled(false);
            editor.getControl().addTraverseListener(new TraverseListener() {

                public void keyTraversed(TraverseEvent e) {
                    Text text = (Text) editor.getControl();

                    switch (e.detail) {
                    case SWT.TRAVERSE_TAB_NEXT:
                        //                     if (validateName(element, text.getText()))
                        viewer.editElement(element, 1);
                        e.detail = SWT.TRAVERSE_NONE;
                        e.doit = false;
                        break;
                    }
                }

            });

            return editor;
        }

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

        protected Object getValue(Object element) {
            if (lastNewName.length() > 0)
                return lastNewName;
            else if (element == newParameterItem)
                return "";
            else {
                ScenarioProperty p = (ScenarioProperty) element;
                return p.getName();
            }
        }

        protected void setValue(final Object element, Object value) {
            String name = (String) value;
            ScenarioProperty param = (ScenarioProperty) element;
            Scenario ctx = getNamedElement();

            if (isNewAndBlank(element, name)) {
                lastNewName = "";
                return;
            }

            //            if (!validateName(element, name)) {
            //               table.getDisplay().asyncExec(new Runnable() {
            //
            //                  public void run() {
            //                     if (!table.isDisposed())
            //                        viewer.editElement(element, 0);
            //                  }
            //               });

            //               return;
            //            }

            if (param != newParameterItem) {
                if (!param.getName().equals(name)) {
                    Integer index = nameToIndex.get(param.getName());
                    nameToIndex.remove(param.getName());
                    nameToIndex.put(name, index);

                    param.setName(name);
                    viewer.update(element, NAME_PROPERTIES);
                }
            } else {
                final ScenarioProperty newParam = ScenarioFactory.eINSTANCE.createScenarioProperty();
                newParam.setName(name);
                newParam.setValue("");

                nameToIndex.put(name, table.getItemCount() - 1);

                ctx.getProperties().add(newParam);
                viewer.add(newParam);

                viewer.setSelection(new StructuredSelection(newParam), true);
                table.getDisplay().asyncExec(new Runnable() {

                    public void run() {
                        viewer.editElement(newParam, 1);
                    }
                });
            }
        }

    });

    // --

    TableViewerColumn valueViewerColumn = new TableViewerColumn(viewer, valueColumn);
    valueViewerColumn.setLabelProvider(new ColumnLabelProvider() {
        public String getText(Object element) {
            ScenarioProperty p = (ScenarioProperty) element;
            return p.getValue();
        }
    });

    valueViewerColumn.setEditingSupport(new EditingSupport(viewer) {

        protected CellEditor getCellEditor(final Object element) {
            final ScenarioProperty param = (ScenarioProperty) element;
            final List<SuggestionItem> suggestions = PropertySuggestionManager.getInstance()
                    .getScenarioPropertySuggestions(param.getName());
            final PropertyCellEditor editor = new PropertyCellEditor(table, suggestions) {
                public void completeEdit() {
                    viewer.applyEditorValue();
                };
            };
            editor.setFilterEnabled(true);
            editor.getControl().addTraverseListener(new TraverseListener() {

                public void keyTraversed(TraverseEvent e) {
                    Text text = (Text) editor.getControl();

                    switch (e.detail) {
                    case SWT.TRAVERSE_TAB_PREVIOUS:
                        //                     if (validateName(element, text.getText()))
                        viewer.editElement(element, 0);
                        e.detail = SWT.TRAVERSE_NONE;
                        e.doit = false;
                        break;
                    }
                }

            });

            return editor;
        }

        protected boolean canEdit(Object element) {
            return element != newParameterItem;
        }

        protected Object getValue(Object element) {
            ScenarioProperty p = (ScenarioProperty) element;
            return p.getValue();
        }

        protected void setValue(Object element, Object value) {
            ScenarioProperty p = (ScenarioProperty) element;
            String v = (String) value;
            if (!p.getValue().equals(v)) {
                p.setValue((String) value);
                viewer.update(element, VALUE_PROPERTIES);
            }
        }

    });

    // --

    updateIndexes();
    viewer.setComparator(new Comparator());

    // --

    viewer.setInput(getNamedElement());

    return viewer;
}

From source file:org.eclipse.sirius.diagram.ui.tools.internal.dialogs.ExtendedFeatureEditorDialog.java

License:Open Source License

private void setRemoveButtonListener(final Button removeButton, final TableViewer choiceTableViewer,
        final TableViewer featureTableViewer, final Text choiceText) {
    removeButton.addSelectionListener(new SelectionAdapter() {
        // event is null when featureTableViewer is double clicked
        @Override//w  w w . j  a v  a2s . com
        public void widgetSelected(final SelectionEvent event) {
            final IStructuredSelection selection = (IStructuredSelection) featureTableViewer.getSelection();
            Object firstValue = null;
            final Iterator<?> i = selection.iterator();
            while (i.hasNext()) {
                final Object value = i.next();
                if (firstValue == null) {
                    firstValue = value;
                }
                values.getChildren().remove(value);
                choiceTableViewer.add(value);
            }

            if (!values.getChildren().isEmpty()) {
                featureTableViewer.setSelection(new StructuredSelection(values.getChildren().get(0)));
            }

            if (choiceTableViewer != null) {
                choiceTableViewer.setSelection(selection);
            } else if (choiceText != null) {
                if (firstValue != null) {
                    // String value = EcoreUtil.convertToString((EDataType)
                    // eClassifier, firstValue);
                    // choiceText.setText(value);
                }
            }
        }
    });
}

From source file:org.eclipse.wst.common.ui.internal.search.SearchResultTableContentProvider.java

License:Open Source License

public void elementsChanged(Object[] updatedElements) {
    TableViewer viewer = getViewer();
    // cs : I've comment 'tableLimited' related code out for now.  We need to review the changes to the base class and react accordingly.
    // Even more importantly we need to discuss with the base guys to get API lined up for this (see bug 163177).
    //boolean tableLimited= SearchPreferencePage.isTableLimited();
    for (int i = 0; i < updatedElements.length; i++) {
        if (fResult.getMatchCount(updatedElements[i]) > 0) {
            if (viewer.testFindItem(updatedElements[i]) != null)
                viewer.update(updatedElements[i], null);
            else {
                //if (!tableLimited || viewer.getTable().getItemCount() < SearchPreferencePage.getTableLimit())
                viewer.add(updatedElements[i]);
            }//ww  w.ja  v  a2  s.com
        } else
            viewer.remove(updatedElements[i]);
    }
}