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

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

Introduction

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

Prototype

public TreeViewer(Composite parent, int style) 

Source Link

Document

Creates a tree viewer on a newly-created tree control under the given parent.

Usage

From source file:com.softberries.klerk.gui.views.CategoriesView.java

License:Open Source License

/**
 * Create contents of the view part./*from  www .j  a v a2s .  co m*/
 * 
 * @param parent
 */
@Override
public void createPartControl(Composite parent) {
    setPartName(Messages.CategoriesView_categories);
    Composite container = new Composite(parent, SWT.NONE);
    container.setLayout(new FillLayout(SWT.HORIZONTAL));
    {
        viewer = new TreeViewer(container, SWT.BORDER);
    }
    viewer.addSelectionChangedListener(this);
    viewer.addTreeListener(this);
    viewer.addDoubleClickListener(this);
    viewer.setContentProvider(new TreeViewContentProvider());
    viewer.setLabelProvider(new TreeViewLabelProvider());
    viewer.setInput(createDummyModel());
    viewer.expandAll();
    createActions();
    initializeToolBar();
    initializeMenu();
}

From source file:com.sonatype.buildserver.eclipse.ui.job.view.ScmChangesPage.java

License:Open Source License

@Override
protected void createFormContent(IManagedForm managedForm) {
    toolkit = managedForm.getToolkit();// ww w  .  j  av a 2  s. com
    form = managedForm.getForm();
    toolkit.decorateFormHeading(form.getForm());

    body = form.getBody();
    body.setLayout(new GridLayout());

    sctnScmProperties = managedForm.getToolkit().createSection(body, Section.TITLE_BAR);
    sctnScmProperties.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    managedForm.getToolkit().paintBordersFor(sctnScmProperties);
    sctnScmProperties.setText(Messages.ScmChangesPage_section_title);

    Composite compMain = new Composite(sctnScmProperties, SWT.NONE);
    managedForm.getToolkit().adapt(compMain);
    managedForm.getToolkit().paintBordersFor(compMain);
    sctnScmProperties.setClient(compMain);

    treeViewer = new TreeViewer(compMain, SWT.BORDER);
    tree = treeViewer.getTree();
    treeViewer.setContentProvider(new BCP());
    treeViewer.setLabelProvider(new BuildsLabelProvider());

    managedForm.getToolkit().paintBordersFor(tree);

    composite = new Composite(compMain, SWT.NONE);
    composite.setLayout(new GridLayout(1, true));

    managedForm.getToolkit().adapt(composite);
    managedForm.getToolkit().paintBordersFor(composite);

    link = new Link(compMain, SWT.NONE);
    managedForm.getToolkit().adapt(link, true, true);
    link.setText(Messages.ScmChangesPage_recent_changes);

    GroupLayout gl_compMain = new GroupLayout(compMain);
    gl_compMain.setHorizontalGroup(gl_compMain.createParallelGroup(GroupLayout.TRAILING)
            .add(gl_compMain.createSequentialGroup().addContainerGap()
                    .add(gl_compMain.createParallelGroup(GroupLayout.LEADING)
                            .add(GroupLayout.TRAILING, tree, GroupLayout.DEFAULT_SIZE, 570, Short.MAX_VALUE)
                            .add(composite, GroupLayout.DEFAULT_SIZE, 570, Short.MAX_VALUE).add(link))
                    .addContainerGap()));
    gl_compMain.setVerticalGroup(gl_compMain.createParallelGroup(GroupLayout.LEADING)
            .add(gl_compMain.createSequentialGroup().addContainerGap().add(link)
                    .addPreferredGap(LayoutStyle.RELATED)
                    .add(tree, GroupLayout.PREFERRED_SIZE, 200, GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(LayoutStyle.RELATED)
                    .add(composite, GroupLayout.DEFAULT_SIZE, 196, Short.MAX_VALUE).addContainerGap()));
    compMain.setLayout(gl_compMain);

    parent.constructToolbar(form);

    initialize();
}

From source file:com.sonatype.buildserver.eclipse.ui.view.JobView.java

License:Open Source License

private void createViewer(Composite parent) {
    viewer = new TreeViewer(parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);

    tree = viewer.getTree();/*from w  w w. j a v  a  2  s  .c om*/

    tree.setHeaderVisible(true);

    columnSelectionListener = new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            TreeColumn oldSortColumn = tree.getSortColumn();
            TreeColumn sortColumn = (TreeColumn) e.widget;
            if (sortColumn == oldSortColumn) {
                int sortDirection = tree.getSortDirection();
                tree.setSortDirection(sortDirection == SWT.UP ? SWT.DOWN : SWT.UP);
            } else {
                tree.setSortColumn(sortColumn);
            }
            viewer.refresh();
        }
    };

    statusColumn = new TreeViewerColumn(viewer, SWT.CENTER);
    statusColumn.getColumn().setWidth(40);
    statusColumn.getColumn().setText(Messages.jobView_columns_status);
    statusColumn.getColumn().addSelectionListener(columnSelectionListener);
    statusColumn.setLabelProvider(new JobLabelProvider(JobLabelProvider.STATUS_COLUMN));

    weatherColumn = new TreeViewerColumn(viewer, SWT.CENTER);
    weatherColumn.getColumn().setWidth(30);
    weatherColumn.getColumn().setText(Messages.jobView_columns_weather);
    weatherColumn.getColumn().addSelectionListener(columnSelectionListener);
    weatherColumn.setLabelProvider(new JobLabelProvider(JobLabelProvider.WEATHER_COLUMN));

    nameColumn = new TreeViewerColumn(viewer, SWT.NONE);
    nameColumn.getColumn().setText(Messages.jobView_columns_name);
    nameColumn.getColumn().addSelectionListener(columnSelectionListener);
    nameColumn.setLabelProvider(new JobLabelProvider(JobLabelProvider.NAME_COLUMN));

    if (!HudsonUIActivator.getDefault().getPreferenceStore().getBoolean(HIDE_COLUMN_SERVER)) {
        serverColumn = createServerColumn();
    }

    if (!HudsonUIActivator.getDefault().getPreferenceStore().getBoolean(HIDE_COLUMN_LAST_BUILD)) {
        lastBuildColumn = createLastBuildColumn();
    }

    ColumnViewerToolTipSupport.enableFor(viewer, ColumnViewerToolTipSupport.RECREATE);

    tree.addControlListener(new ControlListener() {
        public void controlResized(ControlEvent e) {
            resizeColumns();
            viewer.getTree().removeControlListener(this);
        }

        public void controlMoved(ControlEvent e) {
        }
    });

    viewer.setContentProvider(new ITreeContentProvider() {
        public boolean hasChildren(Object element) {
            return false;
        }

        public Object getParent(Object element) {
            return null;
        }

        public Object[] getChildren(Object parentElement) {
            return null;
        }

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

        public void dispose() {
        }

        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof Object[]) {
                return (Object[]) inputElement;
            }
            return null;
        }
    });

    new org.eclipse.core.runtime.jobs.Job(Messages.background_loading_prefs) {
        protected IStatus run(IProgressMonitor monitor) {
            try {
                CompositeMonitor loadedMonitor = HudsonUtils.loadDefaultMonitor();
                assert loadedMonitor != null;
                setMonitor(loadedMonitor);
                return Status.OK_STATUS;
            } catch (Exception e) {
                setMonitor(new CompositeMonitor());
                log.error("Error loading default composite monitor", e);
                return new Status(IStatus.ERROR, HudsonUIActivator.PLUGIN_ID, e.getMessage(), e);
            }
        }
    }.schedule();

    tree.setSortColumn(nameColumn.getColumn());
    tree.setSortDirection(SWT.UP);
    viewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            int direction = tree.getSortDirection();
            int directModifier = direction == SWT.UP ? 1 : -1;
            int column = tree.indexOf(tree.getSortColumn());
            switch (column) {
            case JobLabelProvider.STATUS_COLUMN:
                e1 = getBuildResult(e1);
                e2 = getBuildResult(e2);
                break;
            case JobLabelProvider.WEATHER_COLUMN:
                return directModifier * (getBuildHealth(e1) - getBuildHealth(e2));
            case JobLabelProvider.LAST_BUILD_COLUMN:
                return directModifier * (getBuildTime(e1) - getBuildTime(e2) < 0 ? -1 : 1);
            default:
                e1 = labelProvider.getColumnText(e1, column);
                e2 = labelProvider.getColumnText(e2, column);
                break;
            }
            int result = super.compare(viewer, e1, e2);
            return directModifier * result;
        }

        private String getBuildResult(Object o) {
            if (o instanceof HudsonJob) {
                ProjectDTO job = ((HudsonJob) o).getJobDetails();
                if (job != null) {
                    BuildDTO build = job.getLastBuild();
                    if (build != null) {
                        return String.valueOf(build.getResult());
                    }
                }
            }
            return null;
        }

        private int getBuildHealth(Object o) {
            if (o instanceof HudsonJob) {
                ProjectDTO job = ((HudsonJob) o).getJobDetails();
                if (job != null) {
                    HealthDTO health = job.getHealth();
                    if (health != null) {
                        return health.getScore();
                    }
                }
            }
            return -1;
        }

        private long getBuildTime(Object o) {
            if (o instanceof HudsonJob) {
                ProjectDTO job = ((HudsonJob) o).getJobDetails();
                if (job != null) {
                    BuildDTO build = job.getLastBuild();
                    if (build != null) {
                        return build.getTimeStamp();
                    }
                }
            }
            return -1;
        }
    });

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            boolean empty = viewer.getSelection().isEmpty();
            StructuredSelection ss = (StructuredSelection) viewer.getSelection();
            boolean hasOnlyDeclared = true;
            for (Object o : ss.toList()) {
                HudsonJob b = (HudsonJob) o;
                if (b.isMonitored()) {
                    hasOnlyDeclared = false;
                    break;
                }
            }
            buildNowAction.setEnabled(!empty);
            removeAction.setEnabled(!empty && !hasOnlyDeclared);
            showTestResultAction.setEnabled(!empty);
        }
    });
    viewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            openAction.run();
        }
    });
}

From source file:com.subgraph.vega.ui.http.requestfilters.RequestFilterConfigContent.java

License:Open Source License

private void createTreeViewer(Composite parent) {
    treeViewer = new TreeViewer(parent, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    treeViewer.setContentProvider(new ConditionTreeContentProvider());
    treeViewer.setLabelProvider(new ConditionTreeLabelProvider());
    treeViewer.setAutoExpandLevel(2);/* w w w .  ja  va2s .co  m*/
    final GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 3);
    gd.heightHint = 300;
    treeViewer.getTree().setLayoutData(gd);
}

From source file:com.subgraph.vega.ui.http.requestfilters.RequestFilterDialog.java

License:Open Source License

private void createTreeViewer(Composite parent) {
    treeViewer = new TreeViewer(parent, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    treeViewer.setContentProvider(new ConditionTreeContentProvider());
    treeViewer.setLabelProvider(new ConditionTreeLabelProvider());
    treeViewer.setAutoExpandLevel(2);//ww  w.ja v  a  2  s  . c om
    treeViewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 3));
}

From source file:com.svcdelivery.liquibase.eclipse.internal.ui.DataSourceViewPart.java

License:Apache License

@Override
public final void createPartControl(final Composite parent) {
    dataSources = new TreeViewer(parent, SWT.VIRTUAL | SWT.FULL_SELECTION);
    final Tree dataSourcesTree = dataSources.getTree();
    TreeViewerColumn log = new TreeViewerColumn(dataSources, SWT.NONE);
    TreeViewerColumn id = new TreeViewerColumn(dataSources, SWT.NONE);
    TreeViewerColumn tag = new TreeViewerColumn(dataSources, SWT.NONE);
    TreeViewerColumn date = new TreeViewerColumn(dataSources, SWT.NONE);
    TreeViewerColumn type = new TreeViewerColumn(dataSources, SWT.NONE);
    TreeColumn logColumn = log.getColumn();
    TreeColumn idColumn = id.getColumn();
    TreeColumn tagColumn = tag.getColumn();
    TreeColumn dateColumn = date.getColumn();
    TreeColumn typeColumn = type.getColumn();
    logColumn.setText("");
    idColumn.setText("ID");
    tagColumn.setText("Tag");
    dateColumn.setText("Date Ran");
    typeColumn.setText("Type");
    logColumn.setWidth(300);//from   w  w  w  .j  av  a2s .  c om
    idColumn.setWidth(150);
    tagColumn.setWidth(150);
    dateColumn.setWidth(150);
    typeColumn.setWidth(100);

    dataSourcesTree.setHeaderVisible(true);
    dataSourcesTree.setLinesVisible(true);
    dataSources.setUseHashlookup(true);
    dataSources.setContentProvider(new DataSourceContentProvider());
    dataSources.setLabelProvider(new DataSourceLabelProvider());
    dataSources.setInput(ProfileManager.getInstance());

    getSite().setSelectionProvider(dataSources);

    MenuManager mgr = new MenuManager();
    mgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
    mgr.addMenuListener(new IMenuListener() {

        @Override
        public void menuAboutToShow(final IMenuManager manager) {
            manager.removeAll();
            ISelection selection = dataSources.getSelection();
            if (selection instanceof StructuredSelection) {
                StructuredSelection ss = (StructuredSelection) selection;
                boolean rollback = true;
                boolean refresh = true;
                Iterator<?> i = ss.iterator();
                while (i.hasNext()) {
                    Object next = i.next();
                    if (!(next instanceof ChangeSetTreeItem)) {
                        rollback = false;
                        break;
                    }
                    if (!(next instanceof IConnectionProfile)) {
                        refresh = false;
                        break;
                    }
                }
                if (rollback) {
                    Shell shell = dataSourcesTree.getShell();
                    IAction action = new RollbackCommandHandler(shell, selection);
                    manager.add(action);
                }
                if (refresh) {
                    IAction action = new DataSourceRefreshCommandHandler(selection);
                    manager.add(action);
                }
            }
        }
    });
    getSite().registerContextMenu(mgr, dataSources);
    Menu menu = mgr.createContextMenu(dataSourcesTree);
    dataSourcesTree.setMenu(menu);

    Activator.getDefault().addDatabaseUpdateListener(this);
}

From source file:com.symbian.tdep.templates.carbide.SetTestableItemsPage.java

License:Open Source License

/**
 * Implement method of IDialogPage to create UI of this wizard page
 *//*from  w  w w .  j  ava  2  s .c  o  m*/
public void createControl(Composite aComposite) {
    initializeDialogUnits(aComposite);

    IWizardPage lpage = this;
    while ((lpage = lpage.getPreviousPage()) != null) {
        if (lpage instanceof NewProjectPage) {
            iNewProjectPage = (NewProjectPage) lpage;
            break;
        }
    }

    final Composite lComposite = new Composite(aComposite, SWT.NONE);
    {
        lComposite.setLayout(new GridLayout(1, false));
        lComposite.setLayoutData(new GridData(GridData.FILL_BOTH));

        setControl(lComposite);

        iTreeViewer = new TreeViewer(lComposite, SWT.BORDER);

        // Content Provider
        iTreeViewer.setContentProvider(new ClassMethodContentProvider());

        // Label Provider
        iTreeViewer.setLabelProvider(new ClassMethodLabelProvider());

        // Selection Changed listener
        iTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
            public void selectionChanged(SelectionChangedEvent event) {
                checkButtonState();
            }
        });

        iTreeViewer.setComparator(new ViewerComparator());

        // Double Click Listener
        iTreeViewer.addDoubleClickListener(new IDoubleClickListener() {
            public void doubleClick(DoubleClickEvent event) {
                IStructuredSelection selection = (IStructuredSelection) event.getSelection();
                iSelectedItem = (ITestItem) selection.getFirstElement();
                if (iSelectedItem instanceof ClassItem) {
                    iBtnEditClass.notifyListeners(SWT.Selection, null);
                }
                if (iSelectedItem instanceof MethodItem) {
                    iBtnEditMethod.notifyListeners(SWT.Selection, null);
                }
            }
        });
        iTree = iTreeViewer.getTree();
        iTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    }

    final Composite lBtnComposite = new Composite(lComposite, SWT.NONE);
    {
        lBtnComposite.setLayout(new GridLayout(3, true));
        lBtnComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        // Add Class Button
        iBtnAddClass = new Button(lBtnComposite, SWT.PUSH);
        iBtnAddClass.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        iBtnAddClass.setText(Messages.getString("ClassDialog.AddClass"));
        iBtnAddClass.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent event) {
                try {
                    ClassEditDialog dialog = new ClassEditDialog(lBtnComposite.getShell(),
                            Messages.getString("ClassDialog.AddClassTitle"), iProject);

                    if (dialog.open()) {
                        iProject.addChild(dialog.getClassItem());
                        iTreeViewer.add(iProject, dialog.getClassItem());
                        iTreeViewer.expandToLevel(dialog.getClassItem(), 0);
                    }
                    setPageComplete(isPageComplete());
                } catch (Exception e) {
                    e.printStackTrace();
                    IStatus lStatus = new Status(IStatus.WARNING, SetTestableItemsPage.class.getName(),
                            "Exception was thrown while adding class.", e);
                    TefTemplatesCarbidePlugin.getDefault().getLog().log(lStatus);
                }
            }
        });

        // Edit Class Button
        iBtnEditClass = new Button(lBtnComposite, SWT.PUSH);
        iBtnEditClass.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        iBtnEditClass.setText(Messages.getString("ClassDialog.EditClass"));
        iBtnEditClass.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent event) {
                ClassItem item;
                if (iSelectedItem instanceof ClassItem) {
                    item = (ClassItem) iSelectedItem;
                } else {
                    item = (ClassItem) iSelectedItem.getParent();
                }
                ClassEditDialog dialog = new ClassEditDialog(lBtnComposite.getShell(),
                        Messages.getString("ClassDialog.EditClassTitle"), item);
                if (dialog.open()) {
                    iTreeViewer.update(item, null);
                }
                setPageComplete(isPageComplete());
            }
        });

        // Delete Class Button
        iBtnDeleteClass = new Button(lBtnComposite, SWT.PUSH);
        iBtnDeleteClass.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        iBtnDeleteClass.setText(Messages.getString("ClassDialog.DeleteClass"));
        iBtnDeleteClass.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent event) {
                ClassItem item;
                if (iSelectedItem instanceof ClassItem) {
                    item = (ClassItem) iSelectedItem;
                } else {
                    item = (ClassItem) iSelectedItem.getParent();
                }
                boolean rlt = MessageDialog.openQuestion(lBtnComposite.getShell(),
                        Messages.getString("ClassDialog.ConfirmDelete"),
                        Messages.getString("ClassDialog.WhetherDeleteClass", item.getTestName()));
                if (rlt) {
                    ((ProjectItem) item.getParent()).removeChild(item);
                    iTreeViewer.remove(item);
                }
                setPageComplete(isPageComplete());
            }
        });

        // Add Method Button
        iBtnAddMethod = new Button(lBtnComposite, SWT.PUSH);
        iBtnAddMethod.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        iBtnAddMethod.setText(Messages.getString("MethodDialog.AddMethod"));
        iBtnAddMethod.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent event) {
                try {
                    ClassItem item;
                    if (iSelectedItem instanceof ClassItem) {
                        item = (ClassItem) iSelectedItem;
                    } else {
                        item = (ClassItem) iSelectedItem.getParent();
                    }
                    MethodEditDialog dialog = new MethodEditDialog(lBtnComposite.getShell(),
                            Messages.getString("MethodDialog.AddMethodTitle"), item);
                    if (dialog.open()) {
                        item.addChild(dialog.getMethodItem());
                        iTreeViewer.add(item, dialog.getMethodItem());
                        iTreeViewer.expandToLevel(dialog.getMethodItem(), 0);
                    }
                    setPageComplete(isPageComplete());
                } catch (Exception e) {
                    IStatus lStatus = new Status(IStatus.WARNING, SetTestableItemsPage.class.getName(),
                            "Exception was thrown while adding method.", e);
                    TefTemplatesCarbidePlugin.getDefault().getLog().log(lStatus);
                }
            }
        });

        // Edit Method Button
        iBtnEditMethod = new Button(lBtnComposite, SWT.PUSH);
        iBtnEditMethod.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        iBtnEditMethod.setText(Messages.getString("MethodDialog.EditMethod"));
        iBtnEditMethod.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent event) {
                MethodItem item = (MethodItem) iSelectedItem;
                MethodEditDialog dialog = new MethodEditDialog(lBtnComposite.getShell(),
                        Messages.getString("MethodDialog.EditMethodTitle"), item);
                if (dialog.open()) {
                    iTreeViewer.update(item, null);
                }
                setPageComplete(isPageComplete());
            }
        });

        // Delete Method Button
        iBtnDeleteMethod = new Button(lBtnComposite, SWT.PUSH);
        iBtnDeleteMethod.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        iBtnDeleteMethod.setText(Messages.getString("MethodDialog.DeleteMethod"));
        iBtnDeleteMethod.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent event) {
                MethodItem item = (MethodItem) iSelectedItem;
                boolean rlt = MessageDialog.openQuestion(lBtnComposite.getShell(),
                        Messages.getString("MethodDialog.ConfirmDelete"),
                        Messages.getString("MethodDialog.WhetherDeleteMethod", item.getTestName()));
                if (rlt) {
                    ((ClassItem) item.getParent()).removeChild(item);
                    iTreeViewer.remove(item);
                }
                setPageComplete(isPageComplete());
            }
        });
    }

    ((WizardDialog) getContainer()).addPageChangingListener(new IPageChangingListener() {
        public void handlePageChanging(PageChangingEvent event) {
            IWizardPage lTarPage = (IWizardPage) event.getTargetPage();
            if (lTarPage instanceof SetTestableItemsPage) {
                iProject.setName(iNewProjectPage.getProjectName());
                iTreeViewer.refresh();
            }
        }
    });

    // Set Input
    Vector vector = new Vector();
    vector.add(iProject);
    iTreeViewer.setInput(vector);
    iTreeViewer.setSelection(new TreeSelection(new TreePath(new Object[] { iProject })));
}

From source file:com.sympedia.density.gen.ui.internal.views.ContainerExplorerView.java

License:Open Source License

public void createPartControl(Composite parent) {
    viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.setContentProvider(new ViewContentProvider());
    viewer.setLabelProvider(new ViewLabelProvider());
    viewer.setSorter(new NameSorter());
    viewer.setInput(IContainerRegistry.INSTANCE);
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            try {
                List<IComponent> instances = UiHelper.filterSelection(event.getSelection(), IComponent.class);

                if (InstanceDetailsView.INSTANCE != null) {
                    if (!instances.isEmpty()) {
                        InstanceDetailsView.INSTANCE.setCurrentInstance(instances.get(0));
                    } else {
                        InstanceDetailsView.INSTANCE.setCurrentInstance(null);
                    }//  w  ww . j  a  va 2s.  c om
                }

                if (ContainerMonitorView.INSTANCE != null) {
                    if (!instances.isEmpty()) {
                        ContainerMonitorView.INSTANCE.setCurrentInstance(instances.get(0));
                    }
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    });

    makeActions();
    hookContextMenu();
    hookDoubleClickAction();
    contributeToActionBars();

    IContainerRegistry.INSTANCE.addContainerRegistryListener(this);
    for (IContainer container : IContainerRegistry.INSTANCE.getContainers()) {
        container.addContextListener(this);
    }

    INSTANCE = this;
}