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.bdaum.zoom.ui.internal.views.HierarchyView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    viewer = new TreeViewer(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.setContentProvider(new ViewContentProvider());
    viewer.setLabelProvider(new ViewLabelProvider());
    UiUtilities.installDoubleClickExpansion(viewer);
    getControl().addKeyListener(new KeyAdapter() {
        @Override//from w  w w .ja v  a  2  s .  com
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.CTRL)
                cntrlDwn = true;
        }

        @Override
        public void keyReleased(KeyEvent e) {
            if (e.keyCode == SWT.CTRL)
                cntrlDwn = false;
        }
    });
    viewer.addSelectionChangedListener(this);
    // Create the help context id for the viewer's control
    PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), HelpContextIds.HIERARCHY_VIEW);
    // Drag & Drop
    viewer.addDropSupport(OPERATIONS, transferTypes, new ViewerDropAdapter(viewer) {
        @Override
        public void dragEnter(DropTargetEvent event) {
            super.dragEnter(event);
            UiActivator.getDefault().setDropTargetEffect(event, viewer.getControl());
        }

        @Override
        public void dragLeave(DropTargetEvent event) {
            UiActivator.getDefault().hideDropTargetEffect();
            super.dragLeave(event);
        }

        @Override
        public void dragOver(DropTargetEvent event) {
            super.dragOver(event);
        }

        @Override
        public boolean validateDrop(Object target, int operation, TransferData transferType) {
            return (textTransfer.isSupportedType(transferType) && (operation & OPERATIONS) != 0);
        }

        @Override
        public boolean performDrop(Object data) {
            if (data instanceof String) {
                List<String> list = Core.fromStringList((String) data, "\n"); //$NON-NLS-1$
                Object target = getCurrentTarget();
                if (target == null && !list.isEmpty())
                    setInput(CoreActivator.getDefault().getDbManager().obtainAsset(list.get(0)));
                else if (target instanceof Node) {
                    String[] ids = list.toArray(new String[list.size()]);
                    String errorMsg = ((Node) target).acceptChildren(ids);
                    if (errorMsg != null) {
                        AcousticMessageDialog.openError(getSite().getShell(),
                                Messages.getString("HierarchyView.drag_error"), errorMsg); //$NON-NLS-1$
                        return false;
                    }
                }
            }
            return true;
        }
    });
    // Listeners
    addKeyListener();
    addGestureListener(viewer.getTree());
    addExplanationListener(true);
    addPartListener();
    addClipboard(viewer.getControl());
    addDragSupport();
    // Other actions
    makeActions(getViewSite().getActionBars());
    installListeners();
    hookContextMenu();
    contributeToActionBars();
    // Hover
    installHoveringController();
    // Action state
    updateActions(false);
}

From source file:com.binge.workforce.widgets.internal.ContainerSelectionGroup.java

License:Open Source License

/**
 * Returns a new drill down viewer for this dialog.
 * /*from ww w  . j  a  va2s . co  m*/
 * @param heightHint
 *            height hint for the drill down composite
 */
protected void createTreeViewer(int heightHint) {
    // Create drill down.
    DrillDownComposite drillDown = new DrillDownComposite(this, SWT.BORDER, imageService);
    GridData spec = new GridData(SWT.FILL, SWT.FILL, true, true);
    spec.widthHint = SIZING_SELECTION_PANE_WIDTH;
    spec.heightHint = heightHint;
    drillDown.setLayoutData(spec);

    // Create tree viewer inside drill down.
    treeViewer = new TreeViewer(drillDown, SWT.NONE);
    drillDown.setChildTree(treeViewer);
    ContainerContentProvider cp = new ContainerContentProvider();
    cp.showClosedProjects(showClosedProjects);
    treeViewer.setContentProvider(cp);

    //FIXME We need a WorkbenchLabelProvider replacement
    //      treeViewer.setLabelProvider(WorkbenchLabelProvider
    //            .getDecoratingWorkbenchLabelProvider());
    treeViewer.setComparator(new ViewerComparator());
    treeViewer.setUseHashlookup(true);
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            containerSelectionChanged((IContainer) selection.getFirstElement()); // allow null
        }
    });
    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            ISelection selection = event.getSelection();
            if (selection instanceof IStructuredSelection) {
                Object item = ((IStructuredSelection) selection).getFirstElement();
                if (item == null) {
                    return;
                }
                if (treeViewer.getExpandedState(item)) {
                    treeViewer.collapseToLevel(item, 1);
                } else {
                    treeViewer.expandToLevel(item, 1);
                }
            }
        }
    });

    // This has to be done after the viewer has been laid out
    treeViewer.setInput(ResourcesPlugin.getWorkspace());
}

From source file:com.bluexml.side.Requirements.modeler.dialogs.PrivilegeDialog.java

License:Open Source License

private void createPrivilegeTab(Composite parent) {
    TabItem tab = new TabItem((TabFolder) parent, SWT.NONE);
    tab.setText("Privileges");
    Composite composite = new Composite(parent, SWT.NONE);
    tab.setControl(composite);//from w w  w  .jav a2s. c o m

    composite.setLayout(new GridLayout(2, false));
    composite.setLayoutData(new GridData(GridData.FILL_BOTH));

    viewer = new TreeViewer(composite, SWT.BORDER);
    viewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
    viewer.setContentProvider(new PrivilegeContentProvider());
    viewer.setLabelProvider(new PrivilegeLabelProvider());
    viewer.setInput(group);
    viewer.expandAll();

    viewer.getTree().addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            TreeItem ti = (TreeItem) e.item;

            //Refresh checkboxes
            createAccess.setSelection(false);
            createAccess.setEnabled(true);
            readAccess.setSelection(false);
            readAccess.setEnabled(true);
            updateAccess.setSelection(false);
            updateAccess.setEnabled(true);
            deleteAccess.setSelection(false);
            deleteAccess.setEnabled(true);
            if (!(ti.getData() instanceof Entity)) {
                createAccess.setEnabled(false);
                deleteAccess.setEnabled(false);
            }
            for (Privilege p : group.getPrivileges()) {
                if (p.getElement() != null && p.getElement().equals(ti.getData())) {
                    if (p.getCategory().equals(PrivilegeNature.CREATE))
                        createAccess.setSelection(true);
                    if (p.getCategory().equals(PrivilegeNature.READ))
                        readAccess.setSelection(true);
                    if (p.getCategory().equals(PrivilegeNature.UPDATE))
                        updateAccess.setSelection(true);
                    if (p.getCategory().equals(PrivilegeNature.DELETE))
                        deleteAccess.setSelection(true);
                }
            }
        }
    });

    Composite rules = new Composite(composite, SWT.NONE);
    rules.setLayout(new GridLayout(1, false));
    rules.setLayoutData(new GridData(GridData.FILL_BOTH));

    createAccess = new Button(rules, SWT.CHECK);
    createAccess.setText("Create");
    createAccess.setEnabled(false);
    createAccess.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            boolean selected = ((Button) e.widget).getSelection();
            BasicElement elt = (BasicElement) ((TreeSelection) viewer.getSelection()).getFirstElement();

            if (selected)
                addPrivilege(elt, PrivilegeNature.CREATE);
            else
                deletePrivilege(elt, PrivilegeNature.CREATE);
        }
    });
    readAccess = new Button(rules, SWT.CHECK);
    readAccess.setText("Read");
    readAccess.setEnabled(false);
    readAccess.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            boolean selected = ((Button) e.widget).getSelection();
            BasicElement elt = (BasicElement) ((TreeSelection) viewer.getSelection()).getFirstElement();

            //Feature to add new entity
            if (elt instanceof RelationShip && selected) {
                RelationShip r = (RelationShip) elt;
                Set<Entity> entities = ((PrivilegeContentProvider) viewer.getContentProvider()).entities;
                entities.add(r.getTarget());
                entities.add(r.getSource());
                viewer.refresh();
                viewer.expandAll();
            }

            if (selected)
                addPrivilege(elt, PrivilegeNature.READ);
            else
                deletePrivilege(elt, PrivilegeNature.READ);
        }
    });
    updateAccess = new Button(rules, SWT.CHECK);
    updateAccess.setText("Update");
    updateAccess.setEnabled(false);
    updateAccess.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            boolean selected = ((Button) e.widget).getSelection();
            BasicElement elt = (BasicElement) ((TreeSelection) viewer.getSelection()).getFirstElement();

            if (selected)
                addPrivilege(elt, PrivilegeNature.UPDATE);
            else
                deletePrivilege(elt, PrivilegeNature.UPDATE);
        }
    });
    deleteAccess = new Button(rules, SWT.CHECK);
    deleteAccess.setText("Delete");
    deleteAccess.setEnabled(false);
    deleteAccess.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            boolean selected = ((Button) e.widget).getSelection();
            BasicElement elt = (BasicElement) ((TreeSelection) viewer.getSelection()).getFirstElement();

            if (selected)
                addPrivilege(elt, PrivilegeNature.DELETE);
            else
                deletePrivilege(elt, PrivilegeNature.DELETE);
        }
    });
}

From source file:com.bluexml.side.requirements.transformation.actions.dialog.TransformModelDialog.java

License:Open Source License

private void createDialogContent(Composite parent) {
    viewer = new TreeViewer(parent, SWT.BORDER | SWT.CHECK);
    viewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
    viewer.setContentProvider(new InterpretationContentProvider());
    viewer.setLabelProvider(new InterpretationLabelProvider());
    viewer.setInput(this);
    viewer.expandAll();/*from w w w  . j  a  va2  s  .c  o m*/
    viewer.collapseAll();

    viewer.getTree().addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            TreeItem item = (TreeItem) event.item;
            // Check all childrens like this item
            checkAll(item);
            // If we uncheck, we unckeck all parents
            if (item.getChecked() == false) {
                uncheckInverse(item.getParentItem());
            }
            // If we check this node, we can verify that all sibling nodes
            // are checked
            if (item.getChecked() == true) {
                if (item.getParentItem() != null)
                    checkInverse(item.getParentItem());
            }
        }

        private void checkInverse(TreeItem item) {
            boolean allChecked = true;
            for (TreeItem it : item.getItems())
                allChecked = allChecked && it.getChecked();
            item.setChecked(allChecked);
            if (item.getParentItem() != null)
                checkInverse(item.getParentItem());
        }

        private void uncheckInverse(TreeItem item) {
            if (item != null)
                item.setChecked(false);
            uncheckInverse(item.getParentItem());
        }

        private void checkAll(TreeItem item) {
            for (TreeItem it : item.getItems()) {
                it.setChecked(item.getChecked());
                checkAll(it);
            }
        }
    });
}

From source file:com.buildml.eclipse.packages.handlers.MoveToPackageDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {

    IPackageMgr pkgMgr = buildStore.getPackageMgr();

    setTitle("Select Package to Move Actions/Files into:");
    setHelpAvailable(false);/*from www .ja va2s.c  o m*/

    Composite container = new Composite(parent, SWT.NULL);
    container.setLayout(new GridLayout());
    GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
    gd.verticalIndent = 20;
    gd.horizontalIndent = 0;
    container.setLayoutData(gd);

    /* display a single TreeViewer that lists all the packages */
    viewer = new TreeViewer(container, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.SINGLE);
    viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    viewer.setContentProvider(new OutlineContentProvider(pkgMgr, false));
    viewer.setLabelProvider(new OutlineLabelProvider(pkgMgr));
    viewer.setInput(new UIPackageFolder[] { new UIPackageFolder(pkgMgr.getRootFolder()) });
    viewer.expandToLevel(3);

    /*
     * When a node in the tree is selected, decide whether it's a package or a folder and
     * adjust the "OK" button enablement status accordingly.
     */
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            Object node = selection.getFirstElement();
            getButton(OK).setEnabled(node instanceof UIPackage);
        }
    });

    /*
     * When the user double-clicks on a folder name, automatically expand the content
     * of that folder. If they double-click on a package name, they're essentially
     * pressing "OK".
     */
    viewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            Object node = selection.getFirstElement();

            if (viewer.isExpandable(node)) {
                viewer.setExpandedState(node, !viewer.getExpandedState(node));
            }

            /* else, perform the "OK" operation */
            else {
                okPressed();
            }
        }
    });
    return container;
}

From source file:com.byterefinery.rmbench.preferences.TableThemesPreferencePage.java

License:Open Source License

private void createTypeThemesGroup(Composite mainComposite) {

    Composite themesGroup = new Composite(mainComposite, SWT.NULL);
    themesGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    GridLayout layout = new GridLayout(2, false);
    themesGroup.setLayout(layout);//from   w  w w . j  a  v a2s . c o m

    themesViewer = new TreeViewer(themesGroup, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
    data.heightHint = Math.max(175, convertHeightInCharsToPixels(10));
    themesViewer.getTree().setLayoutData(data);

    themesViewer.setContentProvider(new ThemeContentProvider());
    themesViewer.setLabelProvider(new TableThemeLabelProvider());
    initColorDefinitions();
    themesViewer.setInput(colorDefinitionMap);
    themesViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            Object selection = ((StructuredSelection) themesViewer.getSelection()).getFirstElement();
            if (selection instanceof ColorDefinition) {
                selectedColorDefinition = (ColorDefinition) selection;
                setThemeButtonsEnabled(true);
            } else
                setThemeButtonsEnabled(false);
        }
    });

    Composite themeButtonsGroup = new Composite(themesGroup, SWT.NULL);
    themeButtonsGroup.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false));
    themeButtonsGroup.setLayout(new GridLayout());

    changeThemeButton = new Button(themeButtonsGroup, SWT.PUSH);
    changeThemeButton.setText(Messages.buttonChange);
    changeThemeButton.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false));
    changeThemeButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            ColorDialog colorDialog = new ColorDialog(themesViewer.getTree().getShell());
            if (selectedColorDefinition.value != null)
                colorDialog.setRGB(selectedColorDefinition.value);
            RGB newColor = colorDialog.open();
            if (newColor != null) {
                selectedColorDefinition.setRGB(newColor, false);
                themesViewer.update(selectedColorDefinition, null);
            }
        }
    });
    deleteThemeButton = new Button(themeButtonsGroup, SWT.PUSH);
    deleteThemeButton.setText(Messages.buttonDelete);
    deleteThemeButton.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false));
    deleteThemeButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            selectedColorDefinition.setRGB(null, false);
            themesViewer.update(selectedColorDefinition, null);
        }
    });
    setThemeButtonsEnabled(false);
}

From source file:com.centurylink.mdw.plugin.designer.views.AutomatedTestView.java

License:Apache License

private SashForm createSashForm(Composite parent) {
    sashForm = new SashForm(parent, SWT.HORIZONTAL);

    ViewForm results = new ViewForm(sashForm, SWT.NONE);

    PageBook viewerBook = new PageBook(results, SWT.BORDER);

    treeViewer = new TreeViewer(viewerBook, SWT.V_SCROLL | SWT.SINGLE);
    treeViewer.setUseHashlookup(true);/*from w  w  w .  jav  a  2 s  .  c o  m*/
    treeViewer.setContentProvider(contentProvider);
    treeViewer.setLabelProvider(new AutomatedTestLabelProvider());
    treeViewer.addOpenListener(new IOpenListener() {
        public void open(OpenEvent event) {
            actionGroup.getActionHandler().open(selectedItem);
        }
    });
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            handleSelectionChanged((IStructuredSelection) event.getSelection());
        }
    });
    viewerBook.showPage(treeViewer.getTree());
    results.setContent(viewerBook);

    ViewForm output = new ViewForm(sashForm, SWT.NONE);

    outputText = new Text(output, SWT.BORDER | SWT.READ_ONLY | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
    outputText.setFont(JFaceResources.getTextFont());
    output.setContent(outputText);

    sashForm.setWeights(new int[] { 33, 67 });
    return sashForm;
}

From source file:com.cloudbees.eclipse.dev.ui.views.build.BuildPart.java

License:Open Source License

private void createSections() {

    SashForm sashForm = new SashForm(this.compMain, SWT.VERTICAL);
    sashForm.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    this.formToolkit.adapt(sashForm);
    this.formToolkit.paintBordersFor(sashForm);

    this.compTop = new Composite(sashForm, SWT.NONE);
    this.formToolkit.adapt(this.compTop);
    this.formToolkit.paintBordersFor(this.compTop);
    GridLayout gl_compTop = new GridLayout(2, true);
    gl_compTop.marginWidth = 0;//from w  w  w  .j  ava  2 s  .  c om
    this.compTop.setLayout(gl_compTop);

    this.sectSummary = this.formToolkit.createSection(this.compTop, Section.TITLE_BAR);
    this.sectSummary.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    this.sectSummary.setSize(107, 45);
    this.formToolkit.adapt(this.sectSummary);
    this.formToolkit.paintBordersFor(this.sectSummary);
    this.sectSummary.setText("Build Summary");

    this.compSummary = new Composite(this.sectSummary, SWT.NONE);
    this.formToolkit.adapt(this.compSummary);
    this.formToolkit.paintBordersFor(this.compSummary);
    this.sectSummary.setClient(this.compSummary);
    this.compSummary.setLayout(new GridLayout(1, false));

    this.compBuildSummary = new Composite(this.compSummary, SWT.NONE);
    this.formToolkit.adapt(this.compBuildSummary);
    this.formToolkit.paintBordersFor(this.compBuildSummary);
    this.compBuildSummary.setLayout(new GridLayout(1, false));

    this.contentBuildSummary = this.formToolkit.createLabel(this.compBuildSummary, "n/a", SWT.NONE);
    this.contentBuildSummary.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));

    //    Section sectTests = this.formToolkit.createSection(this.compMain, Section.TITLE_BAR);
    //    GridData gd_sectTests = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
    //    gd_sectTests.verticalIndent = 10;
    //    sectTests.setLayoutData(gd_sectTests);
    //    sectTests.setSize(80, 45);
    //    this.formToolkit.paintBordersFor(sectTests);
    //    sectTests.setText("JUnit Tests");
    //
    Composite compTests = new Composite(this.compSummary, SWT.NONE);
    this.formToolkit.adapt(compTests);
    this.formToolkit.paintBordersFor(compTests);
    //    sectTests.setClient(compTests);
    GridLayout gl_compTests = new GridLayout(4, false);
    compTests.setLayout(gl_compTests);

    Label label = this.formToolkit.createLabel(compTests, "");
    label.setImage(CloudBeesDevUiPlugin.getImage(CBDEVImages.IMG_JUNIT));
    label.setText("");

    this.contentJUnitTests = this.formToolkit.createLabel(compTests, "n/a", SWT.NONE);
    this.contentJUnitTests.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));

    this.labelSpace = new Label(compTests, SWT.NONE);
    this.formToolkit.adapt(this.labelSpace, true, true);
    this.testsLink = new Composite(compTests, SWT.NONE);
    this.formToolkit.adapt(this.testsLink);
    this.testsLink.setLayout(new GridLayout(2, false));
    Link link = new Link(this.testsLink, SWT.FLAT);
    link.setText("Show in <a>JUnit View</a>");
    link.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent e) {
            BuildPart.this.openJunitAction.run();
        }
    });
    this.formToolkit.adapt(link, false, false);
    this.testsLink.setVisible(false);

    this.sectArtifacts = this.formToolkit.createSection(this.compTop, Section.TITLE_BAR);
    this.sectArtifacts.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    this.sectArtifacts.setSize(107, 45);
    this.formToolkit.adapt(this.sectArtifacts);
    this.formToolkit.paintBordersFor(this.sectArtifacts);
    this.sectArtifacts.setText("Artifacts");

    Composite compInterm_1 = this.formToolkit.createComposite(this.sectArtifacts, SWT.NONE);

    GridLayout gl_compInterm_1 = new GridLayout(1, false);
    gl_compInterm_1.verticalSpacing = 0;
    gl_compInterm_1.marginWidth = 0;
    gl_compInterm_1.marginHeight = 0;
    compInterm_1.setLayout(gl_compInterm_1);
    compInterm_1.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));

    this.sectArtifacts.setClient(compInterm_1);

    this.artifactsLabel = this.formToolkit.createLabel(compInterm_1, "");

    ScrolledComposite scrolledArtifacts = new ScrolledComposite(compInterm_1, SWT.H_SCROLL | SWT.V_SCROLL);
    scrolledArtifacts.setExpandHorizontal(true);
    scrolledArtifacts.setExpandVertical(true);
    scrolledArtifacts.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    this.formToolkit.adapt(scrolledArtifacts);
    this.formToolkit.paintBordersFor(scrolledArtifacts);

    this.treeViewerArtifacts = new TreeViewer(scrolledArtifacts, SWT.BORDER);
    Tree treeArtifacts = this.treeViewerArtifacts.getTree();

    this.treeViewerArtifacts.setContentProvider(new ArtifactsContentProvider());
    this.treeViewerArtifacts.setLabelProvider(new ArtifactsLabelProvider());
    this.treeViewerArtifacts.addDoubleClickListener(new ArtifactsClickListener());

    this.treeViewerArtifacts.setInput("n/a");

    this.formToolkit.adapt(treeArtifacts);
    this.formToolkit.paintBordersFor(treeArtifacts);
    scrolledArtifacts.setContent(treeArtifacts);
    scrolledArtifacts.setMinSize(treeArtifacts.computeSize(SWT.DEFAULT, SWT.DEFAULT));
    this.sectRecentChanges = this.formToolkit.createSection(sashForm, Section.TITLE_BAR);

    this.formToolkit.paintBordersFor(this.sectRecentChanges);
    this.sectRecentChanges.setText("Changes");

    Composite compInterm = this.formToolkit.createComposite(this.sectRecentChanges, SWT.NONE);

    GridLayout gl_compInterm = new GridLayout(1, false);
    gl_compInterm.verticalSpacing = 0;
    gl_compInterm.marginWidth = 0;
    gl_compInterm.marginHeight = 0;
    compInterm.setLayout(gl_compInterm);
    compInterm.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));

    this.sectRecentChanges.setClient(compInterm);

    this.changesetLabel = this.formToolkit.createLabel(compInterm, "");
    this.scrolledRecentChanges = new ScrolledComposite(compInterm, SWT.H_SCROLL | SWT.V_SCROLL);
    this.scrolledRecentChanges.setExpandHorizontal(true);
    this.scrolledRecentChanges.setExpandVertical(true);
    this.scrolledRecentChanges.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    this.formToolkit.adapt(this.scrolledRecentChanges);
    this.formToolkit.paintBordersFor(this.scrolledRecentChanges);

    this.treeViewerRecentChanges = new TreeViewer(this.scrolledRecentChanges, SWT.BORDER);
    Tree treeRecentChanges = this.treeViewerRecentChanges.getTree();

    this.treeViewerRecentChanges.setContentProvider(new RecentChangesContentProvider());
    this.treeViewerRecentChanges.setLabelProvider(new RecentChangesLabelProvider());
    this.treeViewerRecentChanges.addDoubleClickListener(new RecentChangesClickListener());

    this.treeViewerRecentChanges.setInput("n/a");

    this.formToolkit.adapt(treeRecentChanges);
    this.formToolkit.paintBordersFor(treeRecentChanges);
    this.scrolledRecentChanges.setContent(treeRecentChanges);
    this.scrolledRecentChanges.setMinSize(treeRecentChanges.computeSize(SWT.DEFAULT, SWT.DEFAULT));
    sashForm.setWeights(new int[] { 1, 1 });
}

From source file:com.cloudbees.eclipse.dev.ui.views.instances.JenkinsTreeView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    this.viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    this.viewer.setContentProvider(this.contentProvider);
    this.viewer.setLabelProvider(this.labelProvider);
    this.viewer.setSorter(new NameSorter());
    this.viewer.setInput(getViewSite());

    this.viewer.addOpenListener(new IOpenListener() {

        @Override/*from   w w w  .j  ava  2  s . c  om*/
        public void open(final OpenEvent event) {
            ISelection sel = event.getSelection();
            if (sel instanceof TreeSelection) {
                Object el = ((TreeSelection) sel).getFirstElement();
                JenkinsTreeView.this.open(el);
            }
        }
    });

    contributeToActionBars();

    init();
}

From source file:com.cloudbees.eclipse.dev.ui.views.jobs.JobsView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {

    initImages();//from  ww w. j a va  2 s  .c o m

    this.treeViewer = new TreeViewer(parent,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION | SWT.VIRTUAL);
    treeViewer.getTree().setHeaderVisible(true);

    initColumns();

    this.contentProvider = new JobsContentProvider(getViewSite());

    this.treeViewer.setContentProvider(this.contentProvider);
    this.treeViewer.setSorter(new JobSorter(JobSorter.JOB));
    this.treeViewer.setInput(getViewSite());
    this.treeViewer.addOpenListener(new IOpenListener() {

        @Override
        public void open(final OpenEvent event) {
            ISelection sel = event.getSelection();

            if (sel instanceof IStructuredSelection) {
                Object el = ((IStructuredSelection) sel).getFirstElement();
                if (el instanceof JobHolder && ((JobHolder) el).job instanceof Job) {
                    Job job = (Job) ((JobHolder) el).job;

                    //assuming it's a folder..
                    if (job.isFolderOrView()) {
                        JobsView.this.toggle(el);
                        return; // do nothing
                    } else {
                        CloudBeesDevUiPlugin.getDefault().showBuildForJob(job);
                    }

                }

                if (el instanceof JobHolder && ((JobHolder) el).job instanceof View) {
                    JobsView.this.toggle(el);
                    return; // do nothing
                }

            }

        }

    });

    makeActions();
    contributeToActionBars();

    MenuManager popupMenu = new MenuManager();

    popupMenu.add(this.actionOpenLastBuildDetails);
    popupMenu.add(this.actionOpenLog);
    popupMenu.add(this.actionOpenBuildHistory);
    popupMenu.add(new Separator());
    popupMenu.add(this.actionOpenJobInBrowser);
    popupMenu.add(this.actionInvokeBuild);
    popupMenu.add(new Separator());
    popupMenu.add(this.actionDeleteJob);
    popupMenu.add(new Separator());
    popupMenu.add(this.actionReloadJobs);
    Menu menu = popupMenu.createContextMenu(treeViewer.getTree());
    treeViewer.getTree().setMenu(menu);
    treeViewer.getTree().setSortDirection(SWT.DOWN);

    treeViewer.addTreeListener(new ITreeViewerListener() {
        @Override
        public void treeExpanded(TreeExpansionEvent event) {
        }

        @Override
        public void treeCollapsed(TreeExpansionEvent event) {
            // if something was collapsed make sure it won't be expanded by deferred loaders
            contentProvider.removeDeferredExpanders(event.getElement());
        }
    });

    this.treeViewer.addPostSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            StructuredSelection sel = (StructuredSelection) event.getSelection();
            if (sel.getFirstElement() instanceof JobHolder) {
                setSelectedJob((JobHolder) sel.getFirstElement());
            }
        }
    });

    this.jenkinsChangeListener = new CBRemoteChangeAdapter() {

        public void activeAccountChanged(String email, String newAccountName) {
            // if cloud-hosted view and account changed, close this view

            boolean closeView = false;

            if (viewUrl == null || viewUrl.length() == 0) {
                closeView = true;
            }

            if (!closeView) {
                JenkinsService ss = CloudBeesUIPlugin.getDefault().getJenkinsServiceForUrl(viewUrl);

                if (ss == null || ss.isCloud()) {
                    closeView = true;
                }
            }

            if (closeView) {
                PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
                    public void run() {
                        IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
                                .getActivePage();
                        page.hideView(JobsView.this);
                    }
                });
            }
        }

        public void activeJobViewChanged(final JenkinsJobsResponse newView) {
            PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
                public void run() {
                    JobsView.this.setInput(newView);
                }
            });
        }

        public void jenkinsStatusUpdate(String viewUrl, boolean online) {
            if (!isCurrentView(viewUrl)) {
                return; // nothing to do, same view
            }

            // For now server status change is only relevant when it's offline
            if (!online) {
                final JenkinsService s = CloudBeesUIPlugin.getDefault().getJenkinsServiceForUrl(viewUrl);
                PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
                    public void run() {
                        setPartName("Build Jobs [" + s.getLabel() + "] (offline)");
                        setContentDescription(" " + s.getLabel() + " (" + s.getUrl() + ") not available ("
                                + new Date() + ")");
                    }
                });

            }

        }

    };

    CloudBeesUIPlugin.getDefault().addCBRemoteChangeListener(this.jenkinsChangeListener);
}