Example usage for org.eclipse.jface.viewers TreeViewer setSelection

List of usage examples for org.eclipse.jface.viewers TreeViewer setSelection

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TreeViewer setSelection.

Prototype

@Override
    protected void setSelection(List<Item> items) 

Source Link

Usage

From source file:net.bioclipse.seneca.actions.EvaluateHandler.java

License:Open Source License

public Object execute(ExecutionEvent event) throws ExecutionException {

    ISelection sel = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection();
    if (!sel.isEmpty()) {
        if (sel instanceof IStructuredSelection) {
            try {
                final IStructuredSelection ssel = (IStructuredSelection) sel;

                final Shell dialog = new Shell(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
                        SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
                dialog.setText("Choose Seneca Job Specification");
                GridLayout layout = new GridLayout();
                dialog.setLayout(layout);
                dialog.setMinimumSize(300, 400);
                layout.numColumns = 2;// w  w  w  .j  a v a  2 s. co  m
                layout.verticalSpacing = 9;

                TreeViewer treeViewer = new TreeViewer(dialog);
                treeViewer.setContentProvider(new SjsFileContentProvider());
                treeViewer.setLabelProvider(new DecoratingLabelProvider(new FolderLabelProvider(),
                        PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
                treeViewer.setUseHashlookup(true);

                // Layout the tree viewer below the text field
                GridData layoutData = new GridData();
                layoutData.grabExcessHorizontalSpace = true;
                layoutData.grabExcessVerticalSpace = true;
                layoutData.horizontalAlignment = GridData.FILL;
                layoutData.verticalAlignment = GridData.FILL;
                layoutData.horizontalSpan = 3;
                final Button ok = new Button(dialog, SWT.PUSH);

                treeViewer.getControl().setLayoutData(layoutData);
                treeViewer.setInput(ResourcesPlugin.getWorkspace().getRoot().findMember("."));
                treeViewer.expandToLevel(2);
                treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {

                    public void selectionChanged(SelectionChangedEvent event) {
                        ISelection sel = event.getSelection();
                        if (sel instanceof IStructuredSelection) {
                            selectedFiles = (IStructuredSelection) sel;
                            try {
                                if (selectedFiles.size() == 1
                                        && selectedFiles.getFirstElement() instanceof IFile
                                        && ((IFile) selectedFiles.getFirstElement()).getName()
                                                .indexOf(".sjs") > -1)
                                    ok.setEnabled(true);
                            } catch (Exception e) {
                                LogUtils.handleException(e, logger, Activator.PLUGIN_ID);
                            }
                        }
                    }
                });
                treeViewer.setSelection(
                        new StructuredSelection(ResourcesPlugin.getWorkspace().getRoot().findMember(".")));
                ok.setText("OK");
                ok.setEnabled(false);
                Button cancel = new Button(dialog, SWT.PUSH);
                cancel.setText("Cancel");
                Listener listener = new Listener() {
                    public void handleEvent(Event event) {
                        if (event.widget == ok) {
                            try {
                                ICDKMolecule mol = net.bioclipse.cdk.business.Activator.getDefault()
                                        .getJavaCDKManager().loadMolecule((IFile) ssel.getFirstElement());
                                mol = (ICDKMolecule) net.bioclipse.cdk.business.Activator.getDefault()
                                        .getJavaCDKManager().removeExplicitHydrogens(mol);
                                mol = (ICDKMolecule) net.bioclipse.cdk.business.Activator.getDefault()
                                        .getJavaCDKManager().addImplicitHydrogens(mol);
                                SenecaJobSpecification sjs = null;
                                sjs = net.bioclipse.seneca.Activator.getDefault().getJavaSenecaManager()
                                        .getJobSpecification(((IFile) selectedFiles.getFirstElement()));
                                JudgeResult result = net.bioclipse.seneca.Activator.getDefault()
                                        .getJavaSenecaManager().evaluateStructure(sjs, mol);
                                MessageDialog.openInformation(dialog, "Scoring Result",
                                        "Overall: " + (result.score / result.maxScore) + " (" + result.score
                                                + "/" + result.maxScore + ").\r\n" + result.scoreDescription);
                            } catch (Exception e) {
                                LogUtils.handleException(e, logger, net.bioclipse.seneca.Activator.PLUGIN_ID);
                            }
                        }
                        dialog.close();
                    }
                };
                ok.addListener(SWT.Selection, listener);
                cancel.addListener(SWT.Selection, listener);
                dialog.pack();
                dialog.open();
            } catch (Exception ex) {
                LogUtils.handleException(ex, logger, Activator.PLUGIN_ID);
            }
        }
    }
    return null;
}

From source file:net.enilink.komma.common.ui.rcp.dialogs.WorkspaceResourceDialog.java

License:Open Source License

protected void newFolderButtonPressed() {
    NewFolderDialog dialog = new NewFolderDialog(getShell(), selectedContainer);
    if (dialog.open() == Window.OK) {
        TreeViewer treeViewer = getTreeViewer();
        treeViewer.refresh(selectedContainer);
        Object createdFolder = dialog.getResult()[0];
        treeViewer.reveal(createdFolder);
        treeViewer.setSelection(new StructuredSelection(createdFolder));
    }/* w  w  w . j  a va2  s. c om*/
}

From source file:net.sf.eclipsensis.dialogs.FileSelectionDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite parent2 = (Composite) super.createDialogArea(parent);
    Composite composite = new Composite(parent2, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    GridLayout layout = new GridLayout(1, true);
    composite.setLayout(layout);//  w  ww  . ja  v  a 2  s  .  c  o  m

    SashForm form = new SashForm(composite, SWT.HORIZONTAL);
    form.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    layout = new GridLayout(1, true);
    form.setLayout(layout);

    composite = new Composite(form, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    layout = new GridLayout(1, true);
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    composite.setLayout(layout);

    Label l = new Label(composite, SWT.NONE);
    l.setText(EclipseNSISPlugin.getResourceString("fileselection.parent.folder.label")); //$NON-NLS-1$
    l.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
    Tree tree = new Tree(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    gridData.widthHint = VIEWER_WIDTH;
    gridData.heightHint = VIEWER_HEIGHT;
    tree.setLayoutData(gridData);
    final TreeViewer tv = new TreeViewer(tree);
    tv.setContentProvider(new ContainerContentProvider());
    tv.setLabelProvider(WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider());
    tv.setSorter(new ViewerSorter());

    composite = new Composite(form, SWT.None);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    layout = new GridLayout(1, true);
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    composite.setLayout(layout);

    l = new Label(composite, SWT.NONE);
    l.setText(EclipseNSISPlugin.getResourceString("fileselection.file.label")); //$NON-NLS-1$
    l.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
    Table table = new Table(composite,
            SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
    gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    gridData.widthHint = VIEWER_WIDTH;
    gridData.heightHint = VIEWER_HEIGHT;
    table.setLayoutData(gridData);
    table.setLinesVisible(false);
    final TableViewer tv2 = new TableViewer(table);
    tv2.setContentProvider(new FilesContentProvider());
    tv2.setLabelProvider(new FilesLabelProvider());
    tv2.setSorter(new ViewerSorter());
    if (mFilter != null) {
        tv2.addFilter(new ViewerFilter() {
            @Override
            public boolean select(Viewer viewer, Object parentElement, Object element) {
                return mFilter.select(element);
            }
        });
    }

    tv.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            tv2.setInput(selection.getFirstElement()); // allow null
        }
    });
    tv.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            ISelection selection = event.getSelection();
            if (selection instanceof IStructuredSelection) {
                Object item = ((IStructuredSelection) selection).getFirstElement();
                if (tv.getExpandedState(item)) {
                    tv.collapseToLevel(item, 1);
                } else {
                    tv.expandToLevel(item, 1);
                }
            }
        }
    });

    tv2.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            if (selection != null && !selection.isEmpty()) {
                mFile = (IFile) selection.getFirstElement();
            } else {
                mFile = null;
            }
            Button button = getButton(IDialogConstants.OK_ID);
            if (button != null) {
                button.setEnabled(selection != null && !selection.isEmpty());
            }
        }
    });
    tv2.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            if (mFile != null) {
                setReturnCode(Window.OK);
                close();
            }
        }
    });

    tv.setInput(ResourcesPlugin.getWorkspace());
    if (mContainer != null) {
        tv.setSelection(new StructuredSelection(mContainer));
        if (mFile != null) {
            tv2.setSelection(new StructuredSelection(mFile));
        } else {
            tv2.setSelection(new StructuredSelection());
        }
    }
    return parent2;
}

From source file:net.sf.gted.tools.properties.FolderSelectionDialog.java

License:Open Source License

/**
* 
*//*from  w w w.j  av a  2 s . com*/
protected void newFolderButtonPressed() {
    final NewFolderDialog dialog = new NewFolderDialog(this.getShell(), this.fSelectedContainer);
    if (dialog.open() == Window.OK) {
        final TreeViewer treeViewer = this.getTreeViewer();
        treeViewer.refresh(this.fSelectedContainer);
        Object createdFolder;
        if (dialog.getResult() != null) {
            createdFolder = dialog.getResult()[0];
            treeViewer.reveal(createdFolder);
            treeViewer.setSelection(new StructuredSelection(createdFolder));
        }
    }
}

From source file:net.sf.j2s.ui.property.J2SAddJarAction.java

License:Open Source License

public void widgetSelected(SelectionEvent e) {
    ViewerFilter filter = new ArchiveFilter(new ArrayList());
    IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
    String rootPath = root.getLocation().toOSString();
    String rootTruePath = new File(rootPath).getAbsolutePath();
    String j2sPath = page.j2sFile.getAbsolutePath();
    String prjName = null;/*from ww  w  .  j  ava 2  s .com*/
    if (j2sPath.startsWith(rootTruePath)) {
        j2sPath = j2sPath.substring(rootTruePath.length());
        if (j2sPath.startsWith(File.separator)) {
            j2sPath = j2sPath.substring(1);
        }
        prjName = j2sPath.substring(0, j2sPath.indexOf(File.separatorChar));
    }
    final IProject project = (prjName != null) ? root.getProject(prjName) : null;
    ILabelProvider lp = new WorkbenchLabelProvider();
    ITreeContentProvider cp = new WorkbenchContentProvider();

    ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(e.display.getActiveShell(), lp, cp) {
        protected TreeViewer createTreeViewer(Composite parent) {
            TreeViewer treeViewer = super.createTreeViewer(parent);

            if (project != null) {
                treeViewer.setSelection(new StructuredSelection(project));
                treeViewer.expandToLevel(project, 2);
            }
            return treeViewer;
        }
    };
    dialog.setValidator(validator);
    dialog.setTitle("Java2Script Resources Selection"); //$NON-NLS-1$
    dialog.setMessage("Choose Java2Scrip resources (*.js and *.css)"); //$NON-NLS-1$
    dialog.addFilter(filter);
    dialog.setInput(root);
    dialog.setSorter(new ResourceSorter(ResourceSorter.NAME));

    if (dialog.open() == Window.OK) {
        Object[] expandedElements = page.viewer.getExpandedElements();
        Object[] elements = dialog.getResult();
        boolean added = false;
        for (int i = 0; i < elements.length; i++) {
            IResource elem = (IResource) elements[i];
            IRuntimeClasspathEntry entry = JavaRuntime.newArchiveRuntimeClasspathEntry(elem);
            if (entry != null) {
                page.classpathModel.resources.add(entry);
                added = true;
            }
        }
        if (added) {
            ScrollBar bar = page.viewer.getTree().getVerticalBar();
            double selection = 0;
            if (bar != null) {
                selection = (0.0 + bar.getSelection()) / bar.getMaximum();
            }
            page.viewer.refresh();
            //viewer.expandToLevel(2);
            page.viewer.setExpandedElements(expandedElements);
            if (bar != null) {
                bar.setSelection((int) Math.round(selection * bar.getMaximum()));
            }
            page.updateButtonGroup();
            page.fireConfigModified();
        }
        //getViewer().addEntries(res);
    }
}

From source file:nu.bibi.breadcrumb.files.FileBreadcrumbViewer.java

License:Open Source License

@Override
protected void configureDropDownViewer(final TreeViewer viewer, final Object input) {
    // copy values
    viewer.setContentProvider(getContentProvider());
    viewer.setLabelProvider(getLabelProvider());
    viewer.setComparator(getComparator());
    viewer.setFilters(getFilters());/*from   w ww  .  j a  v a  2  s. c o  m*/
    viewer.setSelection(getSelection());
    ColumnViewerToolTipSupport.enableFor(viewer);
}

From source file:org.antlr.eclipse.ui.editor.outline.AntlrOutlinePage.java

License:Open Source License

/**
 * Select part of the grammar//from   w  w  w. j  a  va2  s .  co m
 * @param aLine the line to select
 * @param aForceSelect should we force the selection?
 */
public void selectSegment(final int aLine, final boolean aForceSelect) {
    if (aLine > 0) {
        TreeViewer viewer = getTreeViewer();
        ISegment segment = fEditor.getSegment(aLine);
        viewer.removeSelectionChangedListener(this);
        if (segment == null) {
            if (fSelectedSegmentID != null) {
                viewer.setSelection(new StructuredSelection());
                fEditor.resetHighlightRange();
                fSelectedSegmentID = null;
            }
        } else {
            if (aForceSelect || isDifferentSegment(segment)) {
                viewer.setSelection(new StructuredSelection(segment));
                fEditor.highlightSegment(segment, false);
                fSelectedSegmentID = segment.getUniqueID();
            }
            viewer.reveal(segment);
        }
        viewer.addSelectionChangedListener(this);
    }
}

From source file:org.apache.directory.studio.ldapbrowser.ui.editors.entry.EntryEditorOutlinePage.java

License:Apache License

/**
 * {@inheritDoc}//  ww  w. j  av a 2 s .  c o m
 */
public void createControl(Composite parent) {
    // Creating the composite and fake composite
    this.composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new FillLayout());
    this.fakeComposite = new Composite(parent, SWT.NONE);

    // Creating the No Outline composite
    noOutlineComposite = new Composite(composite, SWT.NONE);
    noOutlineComposite.setLayout(new FillLayout());

    Label label = new Label(noOutlineComposite, SWT.WRAP);
    label.setText(Messages.getString("EntryEditorOutlinePage.NoOutline")); //$NON-NLS-1$

    // Creating the Outline tree viewer
    super.createControl(parent);

    final TreeViewer treeViewer = getTreeViewer();
    treeViewer.setLabelProvider(new EntryEditorOutlineLabelProvider());
    treeViewer.setContentProvider(new EntryEditorOutlineContentProvider());

    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            if (!event.getSelection().isEmpty() && event.getSelection() instanceof IStructuredSelection) {
                if (getEntryEditorWidgetTreeViewerInput() != null) {
                    List<Object> selectionList = new ArrayList<Object>();

                    for (Object element : ((IStructuredSelection) event.getSelection()).toArray()) {
                        if (element instanceof IValue) {
                            // select the value
                            IValue value = (IValue) element;
                            selectionList.add(value);
                        } else if (element instanceof IAttribute) {
                            // select attribute and all values
                            IAttribute attribute = (IAttribute) element;
                            selectionList.add(attribute);
                            selectionList.addAll(Arrays.asList(attribute.getValues()));
                        } else if (element instanceof EntryWrapper) {
                            // select all attributes and values
                            IEntry entry = ((EntryWrapper) element).entry;
                            for (IAttribute attribute : entry.getAttributes()) {
                                selectionList.add(attribute);
                                selectionList.addAll(Arrays.asList(attribute.getValues()));
                            }
                        }
                    }

                    IStructuredSelection selection = new StructuredSelection(selectionList);
                    TreeViewer entryEditorWidgetTreeViewer = getEntryEditorWidgetTreeViewer();
                    if (entryEditorWidgetTreeViewer != null) {
                        entryEditorWidgetTreeViewer.setSelection(selection);
                    }
                }
            }
        }
    });

    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            if (event.getSelection() instanceof IStructuredSelection) {
                Object obj = ((IStructuredSelection) event.getSelection()).getFirstElement();
                if (treeViewer.getExpandedState(obj)) {
                    treeViewer.collapseToLevel(obj, 1);
                } else if (((ITreeContentProvider) treeViewer.getContentProvider()).hasChildren(obj)) {
                    treeViewer.expandToLevel(obj, 1);
                }
            }
        }
    });

    this.refresh();
}

From source file:org.bonitasoft.studio.connector.model.definition.wizard.DefinitionInformationWizardPage.java

License:Open Source License

protected void createCategoryViewer(Composite mainComposite) {
    Label categoryLabel = new Label(mainComposite, SWT.NONE);
    categoryLabel.setText(Messages.categoryLabel);
    categoryLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.TOP).create());

    final TreeViewer categoryViewer = new TreeViewer(mainComposite,
            SWT.BORDER | SWT.FULL_SELECTION | SWT.SINGLE);
    categoryViewer.getTree()/*  w  w w. j  av a2 s  .  c  o m*/
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).hint(SWT.DEFAULT, 50).create());
    categoryViewer.addSelectionChangedListener(this);
    categoryViewer.addFilter(new ViewerFilter() {

        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            return element instanceof Category && !Messages.uncategorized.equals(((Category) element).getId());
        }
    });
    categoryViewer.setContentProvider(new DefinitionCategoryContentProvider());
    categoryViewer.setLabelProvider(new ConnectorDefinitionTreeLabelProvider(messageProvider) {
        @Override
        public String getText(Object element) {
            String label = super.getText(element);
            if (label.equals(((Category) element).getId())) {
                label = messageProvider.getCategoryLabel(messages, (Category) element);
            }
            return label;
        }
    });
    final List<Category> allCategories = messageProvider.getAllCategories();
    categoryViewer.setInput(allCategories);
    final Category selectedCategory = getSelectedCategory(allCategories);
    if (selectedCategory != null) {
        categoryViewer.setSelection(new StructuredSelection(selectedCategory));
    }
    categoryViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            if (!((IStructuredSelection) event.getSelection()).isEmpty()) {
                Category selection = (Category) ((IStructuredSelection) event.getSelection()).getFirstElement();
                definition.getCategory().clear();
                definition.getCategory().add(selection);
                List<Category> categories = (List<Category>) categoryViewer.getInput();
                List<Category> parentCategories = new ArrayList<Category>();
                getParentCategories(parentCategories, categories, selection);
                definition.getCategory().addAll(parentCategories);
            }
        }
    });

    final Composite buttonComposite = new Composite(mainComposite, SWT.NONE);
    buttonComposite.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).create());
    buttonComposite
            .setLayout(GridLayoutFactory.fillDefaults().numColumns(1).margins(0, 0).spacing(0, 3).create());

    final Button createButton = new Button(buttonComposite, SWT.FLAT);
    createButton.setText(Messages.newCategory);
    createButton.setLayoutData(GridDataFactory.fillDefaults().grab(true, false)
            .hint(DEFAULT_BUTTON_WIDTH_HINT, SWT.DEFAULT).create());
    createButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            HashSet<String> existingCatIds = new HashSet<String>();
            existingCatIds.addAll(messageProvider.getProvidedCategoriesIds());
            existingCatIds.addAll(messageProvider.getUserCategoriesIds());
            List<Category> input = (List<Category>) categoryViewer.getInput();
            for (Category category : input) {
                existingCatIds.add(category.getId());
            }
            NewCategoryDialog dialog = new NewCategoryDialog(Display.getDefault().getActiveShell(),
                    existingCatIds);
            if (dialog.open() == Dialog.OK) {
                File imageFile = dialog.getIconImageFile();
                Category newCategory = dialog.getCategory();
                String displayName = dialog.getDisplayName();
                messageProvider.setCategoryLabel(messages, newCategory.getId(), displayName);
                if (imageFile != null) {
                    messageProvider.createIcon(imageFile, newCategory.getIcon());
                }
                input = (List<Category>) categoryViewer.getInput();
                input.add(newCategory);
                categoryViewer.setInput(input);
            }
        }
    });
}

From source file:org.bonitasoft.studio.connector.model.definition.wizard.PageWidgetsWizardPage.java

License:Open Source License

protected void createWidgetViewer(Composite parent) {
    final Composite viewerComposite = new Composite(parent, SWT.NONE);
    viewerComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    viewerComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).create());

    final TreeViewer inputsViewer = new TreeViewer(viewerComposite, SWT.BORDER | SWT.FULL_SELECTION);
    inputsViewer.getTree().setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    inputsViewer.getTree().setHeaderVisible(true);
    inputsViewer.addSelectionChangedListener(this);
    inputsViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
    inputsViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
    inputsViewer.getColumnViewerEditor()
            .addEditorActivationListener(new ColumnViewerEditorActivationListener() {

                @Override/*w  ww  . ja v  a2 s . c  o m*/
                public void beforeEditorDeactivated(ColumnViewerEditorDeactivationEvent event) {
                }

                @Override
                public void beforeEditorActivated(ColumnViewerEditorActivationEvent event) {
                }

                @Override
                public void afterEditorDeactivated(ColumnViewerEditorDeactivationEvent event) {
                    inputsViewer.setSelection(new StructuredSelection());
                }

                @Override
                public void afterEditorActivated(ColumnViewerEditorActivationEvent event) {
                }

            });

    final TableLayout layout = new TableLayout();
    layout.addColumnData(new ColumnWeightData(70));
    layout.addColumnData(new ColumnWeightData(30));
    inputsViewer.getTree().setLayout(layout);

    TreeViewerColumn widgetColumn = new TreeViewerColumn(inputsViewer, SWT.FILL);
    widgetColumn.getColumn().setText(Messages.widget);
    widgetColumn.setLabelProvider(new ColumnLabelProvider() {
        WidgetLabelProvider labelProvider = new WidgetLabelProvider();

        @Override
        public String getText(Object element) {
            Component comp = (Component) element;
            String label = messageProvider.getFieldLabel(messages, comp.getId());
            if (label == null || label.isEmpty()) {
                label = comp.getId();
            }
            return labelProvider.getText(comp.eClass()) + " " + label;
        }
    });

    TreeViewerColumn inputNameColumn = new TreeViewerColumn(inputsViewer, SWT.FILL);
    inputNameColumn.getColumn().setText(Messages.input);
    inputNameColumn
            .setEditingSupport(new WidgetInputNameEditingSupport(inputsViewer, definition, page, context));
    inputNameColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof WidgetComponent) {
                return ((WidgetComponent) element).getInputName();
            } else {
                return "";
            }
        }
    });

    context.bindValue(ViewersObservables.observeInput(inputsViewer),
            PojoProperties.value(PageWidgetsWizardPage.class, "page").observe(this));

    inputsViewer.expandAll();

    final Composite buttonComposite = new Composite(viewerComposite, SWT.NONE);
    buttonComposite.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).create());
    buttonComposite
            .setLayout(GridLayoutFactory.fillDefaults().numColumns(1).margins(0, 0).spacing(0, 3).create());

    final Button addButton = new Button(buttonComposite, SWT.FLAT);
    addButton.setText(Messages.Add);
    addButton.setLayoutData(GridDataFactory.fillDefaults().grab(true, false)
            .hint(DEFAULT_BUTTON_WIDTH_HINT, SWT.DEFAULT).create());
    addButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            SelectPageWidgetDialog dialog = new SelectPageWidgetDialog(Display.getDefault().getActiveShell(),
                    definition, page, null, null);
            if (dialog.open() == Dialog.OK) {
                Component widget = dialog.getWidget();
                messageProvider.setFieldLabel(messages, widget.getId(), dialog.getDisplayName());
                messageProvider.setFieldDescription(messages, widget.getId(), dialog.getDescription());
                Component component = (Component) ((IStructuredSelection) inputsViewer.getSelection())
                        .getFirstElement();
                if (component instanceof Group) {
                    ((Group) component).getWidget().add(widget);
                } else {
                    page.getWidget().add(widget);
                }
                inputsViewer.refresh();
                getContainer().updateMessage();
                getContainer().updateButtons();
            }

        }
    });

    editButton = new Button(buttonComposite, SWT.FLAT);
    editButton.setText(Messages.update);
    editButton.setLayoutData(GridDataFactory.fillDefaults().grab(true, false)
            .hint(DEFAULT_BUTTON_WIDTH_HINT, SWT.DEFAULT).create());
    editButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            Component component = (Component) ((IStructuredSelection) inputsViewer.getSelection())
                    .getFirstElement();
            SelectPageWidgetDialog dialog = new SelectPageWidgetDialog(Display.getDefault().getActiveShell(),
                    definition, page, component, EcoreUtil.copy(component));
            dialog.setDisplayName(messageProvider.getFieldLabel(messages, component.getId()));
            dialog.setDescription(messageProvider.getFieldDescription(messages, component.getId()));
            if (dialog.open() == Dialog.OK) {
                Component widget = dialog.getWidget();
                messageProvider.setFieldLabel(messages, widget.getId(), dialog.getDisplayName());
                messageProvider.setFieldDescription(messages, widget.getId(), dialog.getDescription());
                if (component != null && component.eContainer() instanceof Group) {
                    Group group = (Group) component.eContainer();
                    int i = group.getWidget().indexOf(component);
                    group.getWidget().remove(i);
                    group.getWidget().add(i, widget);
                } else {
                    int i = page.getWidget().indexOf(component);
                    page.getWidget().remove(i);
                    page.getWidget().add(i, widget);
                }

                inputsViewer.refresh();
                getContainer().updateMessage();
                getContainer().updateButtons();
            }

        }
    });

    upButton = new Button(buttonComposite, SWT.FLAT);
    upButton.setText(Messages.up);
    upButton.setLayoutData(GridDataFactory.fillDefaults().grab(true, false)
            .hint(DEFAULT_BUTTON_WIDTH_HINT, SWT.DEFAULT).create());
    upButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            Component selectedWidget = (Component) ((IStructuredSelection) inputsViewer.getSelection())
                    .getFirstElement();
            int index = page.getWidget().indexOf(selectedWidget);
            if (index > 0) {
                page.getWidget().move(index - 1, selectedWidget);
            }
            inputsViewer.refresh();
        }
    });

    downButton = new Button(buttonComposite, SWT.FLAT);
    downButton.setText(Messages.down);
    downButton.setLayoutData(GridDataFactory.fillDefaults().grab(true, false)
            .hint(DEFAULT_BUTTON_WIDTH_HINT, SWT.DEFAULT).create());
    downButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            Component selectedWidget = (Component) ((IStructuredSelection) inputsViewer.getSelection())
                    .getFirstElement();
            int index = page.getWidget().indexOf(selectedWidget);
            if (index < page.getWidget().size() - 1) {
                page.getWidget().move(index + 1, selectedWidget);
            }
            inputsViewer.refresh();
        }
    });

    removeButton = new Button(buttonComposite, SWT.FLAT);
    removeButton.setText(Messages.remove);
    removeButton.setLayoutData(GridDataFactory.fillDefaults().grab(true, false)
            .hint(DEFAULT_BUTTON_WIDTH_HINT, SWT.DEFAULT).create());
    removeButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            page.getWidget().removeAll(((IStructuredSelection) inputsViewer.getSelection()).toList());
            inputsViewer.refresh();
        }
    });
}