Example usage for org.eclipse.jface.viewers OpenEvent getSelection

List of usage examples for org.eclipse.jface.viewers OpenEvent getSelection

Introduction

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

Prototype

public ISelection getSelection() 

Source Link

Document

Returns the selection.

Usage

From source file:bndtools.views.resolution.ResolutionView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    this.display = parent.getDisplay();

    SashForm splitPanel = new SashForm(parent, SWT.HORIZONTAL);
    splitPanel.setLayout(new FillLayout());

    Composite reqsPanel = new Composite(splitPanel, SWT.NONE);
    reqsPanel.setBackground(parent.getBackground());

    GridLayout reqsLayout = new GridLayout(1, false);
    reqsLayout.marginWidth = 0;/*from   www  . ja  va 2 s  .  c om*/
    reqsLayout.marginHeight = 0;
    reqsLayout.verticalSpacing = 2;
    reqsPanel.setLayout(reqsLayout);
    new Label(reqsPanel, SWT.NONE).setText("Requirements:");
    reqsTree = new Tree(reqsPanel, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER);
    reqsTree.setHeaderVisible(false);
    reqsTree.setLinesVisible(false);
    reqsTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    reqsViewer = new TreeViewer(reqsTree);
    ColumnViewerToolTipSupport.enableFor(reqsViewer);
    reqsViewer.setLabelProvider(new RequirementWrapperLabelProvider(true));
    reqsViewer.setContentProvider(new CapReqMapContentProvider());

    Composite capsPanel = new Composite(splitPanel, SWT.NONE);
    capsPanel.setBackground(parent.getBackground());

    GridLayout capsLayout = new GridLayout(1, false);
    capsLayout.marginWidth = 0;
    capsLayout.marginHeight = 0;
    capsLayout.verticalSpacing = 2;
    capsPanel.setLayout(capsLayout);
    new Label(capsPanel, SWT.NONE).setText("Capabilities:");
    capsTable = new Table(capsPanel, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER);
    capsTable.setHeaderVisible(false);
    capsTable.setLinesVisible(false);
    capsTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    capsViewer = new TableViewer(capsTable);
    ColumnViewerToolTipSupport.enableFor(capsViewer);
    capsViewer.setLabelProvider(new CapabilityLabelProvider(true));
    capsViewer.setContentProvider(new CapReqMapContentProvider());
    capsViewer.setFilters(new ViewerFilter[] { new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parent, Object element) {
            return !filteredCapabilityNamespaces.contains(((Capability) element).getNamespace());
        }
    } });

    hideSelfImportsFilter = new ViewerFilter() {

        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (element instanceof RequirementWrapper) {
                RequirementWrapper rw = (RequirementWrapper) element;
                return !rw.resolved;
            }
            return true;
        }
    };
    reqsViewer.setFilters(new ViewerFilter[] { hideSelfImportsFilter });

    reqsViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY,
            new Transfer[] { LocalSelectionTransfer.getTransfer() }, new LocalTransferDragListener(reqsViewer));

    capsViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY,
            new Transfer[] { LocalSelectionTransfer.getTransfer() }, new LocalTransferDragListener(capsViewer));

    reqsViewer.addOpenListener(new IOpenListener() {
        @Override
        public void open(OpenEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            for (Iterator<?> iter = selection.iterator(); iter.hasNext();) {
                Object item = iter.next();
                if (item instanceof Clazz) {
                    Clazz clazz = (Clazz) item;
                    String className = clazz.getFQN();
                    IType type = null;
                    if (!loaders.isEmpty()) {
                        IWorkspaceRoot wsroot = ResourcesPlugin.getWorkspace().getRoot();
                        for (CapReqLoader loader : loaders) {
                            if (loader instanceof BndBuilderCapReqLoader) {
                                File loaderFile = ((BndBuilderCapReqLoader) loader).getFile();
                                IFile[] wsfiles = wsroot.findFilesForLocationURI(loaderFile.toURI());
                                for (IFile wsfile : wsfiles) {
                                    IJavaProject javaProject = JavaCore.create(wsfile.getProject());
                                    try {
                                        type = javaProject.findType(className);
                                        if (type != null)
                                            break;
                                    } catch (JavaModelException e) {
                                        ErrorDialog.openError(getSite().getShell(), "Error", "",
                                                new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, MessageFormat
                                                        .format("Error opening Java class '{0}'.", className),
                                                        e));
                                    }
                                }
                            }

                        }
                    }
                    try {
                        if (type != null)
                            JavaUI.openInEditor(type, true, true);
                    } catch (PartInitException e) {
                        ErrorDialog.openError(getSite().getShell(), "Error", "", new Status(IStatus.ERROR,
                                Plugin.PLUGIN_ID, 0,
                                MessageFormat.format("Error opening Java editor for class '{0}'.", className),
                                e));
                    } catch (JavaModelException e) {
                        ErrorDialog.openError(getSite().getShell(), "Error", "",
                                new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0,
                                        MessageFormat.format("Error opening Java class '{0}'.", className), e));
                    }
                }
            }
        }
    });

    fillActionBars();

    getSite().getPage().addPostSelectionListener(this);
    getSite().getPage().addPartListener(partAdapter);
    ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);

    // Current selection & part
    IWorkbenchPart activePart = getSite().getPage().getActivePart();
    ISelection activeSelection = getSite().getWorkbenchWindow().getSelectionService().getSelection();
    selectionChanged(activePart, activeSelection);
}

From source file:bndtools.views.ResolutionView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    this.display = parent.getDisplay();

    SashForm splitPanel = new SashForm(parent, SWT.HORIZONTAL);
    splitPanel.setLayout(new FillLayout());

    Composite reqsPanel = new Composite(splitPanel, SWT.NONE);
    reqsPanel.setBackground(parent.getBackground());

    GridLayout reqsLayout = new GridLayout(1, false);
    reqsLayout.marginWidth = 0;// w w  w .  j a  va 2s  . c  o  m
    reqsLayout.marginHeight = 0;
    reqsLayout.verticalSpacing = 2;
    reqsPanel.setLayout(reqsLayout);
    new Label(reqsPanel, SWT.NONE).setText("Requirements:");
    reqsTree = new Tree(reqsPanel, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER);
    reqsTree.setHeaderVisible(false);
    reqsTree.setLinesVisible(false);
    reqsTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    reqsViewer = new TreeViewer(reqsTree);
    ColumnViewerToolTipSupport.enableFor(reqsViewer);
    reqsViewer.setLabelProvider(new RequirementWrapperLabelProvider(true));
    reqsViewer.setContentProvider(new CapReqMapContentProvider());

    Composite capsPanel = new Composite(splitPanel, SWT.NONE);
    capsPanel.setBackground(parent.getBackground());

    GridLayout capsLayout = new GridLayout(1, false);
    capsLayout.marginWidth = 0;
    capsLayout.marginHeight = 0;
    capsLayout.verticalSpacing = 2;
    capsPanel.setLayout(capsLayout);
    new Label(capsPanel, SWT.NONE).setText("Capabilities:");
    capsTable = new Table(capsPanel, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER);
    capsTable.setHeaderVisible(false);
    capsTable.setLinesVisible(false);
    capsTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    capsViewer = new TableViewer(capsTable);
    ColumnViewerToolTipSupport.enableFor(capsViewer);
    capsViewer.setLabelProvider(new CapabilityLabelProvider(true));
    capsViewer.setContentProvider(new CapReqMapContentProvider());
    capsViewer.setFilters(new ViewerFilter[] { new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parent, Object element) {
            return !filteredCapabilityNamespaces.contains(((Capability) element).getNamespace());
        }
    } });

    hideSelfImportsFilter = new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (element instanceof RequirementWrapper) {
                RequirementWrapper rw = (RequirementWrapper) element;
                return !rw.resolved;
            }
            return true;
        }
    };
    reqsViewer.setFilters(new ViewerFilter[] { hideSelfImportsFilter });

    reqsViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY,
            new Transfer[] { LocalSelectionTransfer.getTransfer() }, new LocalTransferDragListener(reqsViewer));

    capsViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY,
            new Transfer[] { LocalSelectionTransfer.getTransfer() }, new LocalTransferDragListener(capsViewer));

    reqsViewer.addOpenListener(new IOpenListener() {
        @Override
        public void open(OpenEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            for (Iterator<?> iter = selection.iterator(); iter.hasNext();) {
                Object item = iter.next();
                if (item instanceof Clazz) {
                    Clazz clazz = (Clazz) item;
                    String className = clazz.getFQN();
                    IType type = null;
                    if (selectedFiles != null) {
                        IWorkspaceRoot wsroot = ResourcesPlugin.getWorkspace().getRoot();
                        for (File selectedFile : selectedFiles) {
                            IFile[] wsfiles = wsroot.findFilesForLocationURI(selectedFile.toURI());
                            for (IFile wsfile : wsfiles) {
                                IJavaProject javaProject = JavaCore.create(wsfile.getProject());
                                try {
                                    type = javaProject.findType(className);
                                    if (type != null)
                                        break;
                                } catch (JavaModelException e) {
                                    ErrorDialog.openError(getSite().getShell(), "Error", "", new Status(
                                            IStatus.ERROR, Plugin.PLUGIN_ID, 0,
                                            MessageFormat.format("Error opening Java class '{0}'.", className),
                                            e));
                                }
                            }
                        }
                    }
                    try {
                        if (type != null)
                            JavaUI.openInEditor(type, true, true);
                    } catch (PartInitException e) {
                        ErrorDialog.openError(getSite().getShell(), "Error", "", new Status(IStatus.ERROR,
                                Plugin.PLUGIN_ID, 0,
                                MessageFormat.format("Error opening Java editor for class '{0}'.", className),
                                e));
                    } catch (JavaModelException e) {
                        ErrorDialog.openError(getSite().getShell(), "Error", "",
                                new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0,
                                        MessageFormat.format("Error opening Java class '{0}'.", className), e));
                    }
                }
            }
        }
    });

    fillActionBars();

    getSite().getPage().addPostSelectionListener(this);
    getSite().getPage().addPartListener(partAdapter);
    ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);

    // Current selection & part
    IWorkbenchPart activePart = getSite().getPage().getActivePart();
    ISelection activeSelection = getSite().getWorkbenchWindow().getSelectionService().getSelection();
    selectionChanged(activePart, activeSelection);
}

From source file:ch.hsr.ifs.cdt.metriculator.views.MetriculatorView.java

License:Open Source License

private void addViewerOpenListener(StructuredViewer viewer) {
    viewer.addOpenListener(new IOpenListener() {
        @Override/*from   w  w  w.  j ava  2  s .  c o  m*/
        public void open(OpenEvent event) {
            openSelectedNode(event.getSelection());
        }
    });
}

From source file:cn.dockerfoundry.ide.eclipse.server.ui.internal.DockerFoundryActionProvider.java

License:Open Source License

public void init(ICommonActionExtensionSite actionSite) {
    super.init(actionSite);
    ICommonViewerSite site = actionSite.getViewSite();
    if (site instanceof ICommonViewerWorkbenchSite) {
        StructuredViewer viewer = actionSite.getStructuredViewer();
        if (viewer instanceof CommonViewer) {
            CommonViewer serversViewer = (CommonViewer) viewer;
            serversViewer.addOpenListener(new IOpenListener() {
                public void open(OpenEvent event) {
                    ISelection s = event.getSelection();
                    if (s instanceof IStructuredSelection) {
                        IStructuredSelection selection = (IStructuredSelection) s;
                        Object[] selectedObjects = selection.toArray();
                        if (selectedObjects.length == 1 && selectedObjects[0] instanceof ModuleServer) {
                            ModuleServer moduleServer = (ModuleServer) selectedObjects[0];
                            openApplicationPage(moduleServer);
                        }//  w  w  w  .  j a va 2  s  .  c o m
                    }
                }
            });
        }
    }
}

From source file:com.amazonaws.eclipse.cloudformation.templates.editor.TemplateContentOutlinePage.java

License:Apache License

public void createControl(Composite parent) {
    super.createControl(parent);
    final TreeViewer viewer = getTreeViewer();
    viewer.setContentProvider(new TemplateOutlineContentProvider());
    viewer.setLabelProvider(new TemplateOutlineLabelProvider());
    viewer.addSelectionChangedListener(this);
    viewer.setAutoExpandLevel(2);/*from w  w w . ja v  a 2  s  .c  o m*/

    viewer.addOpenListener(new IOpenListener() {
        public void open(OpenEvent event) {
            TemplateOutlineNode selectedNode = (TemplateOutlineNode) ((StructuredSelection) event
                    .getSelection()).getFirstElement();

            JsonLocation startLocation = selectedNode.getNode().getStartLocation();
            JsonLocation endLocation = selectedNode.getNode().getEndLocation();

            IEditorPart activeEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
                    .getActiveEditor();
            if (activeEditor != null) {
                TemplateEditor templateEditor = (TemplateEditor) activeEditor;
                templateEditor.setHighlightRange((int) startLocation.getCharOffset(),
                        (int) endLocation.getCharOffset() - (int) startLocation.getCharOffset(), true);
            }
        }
    });

    document.addTemplateDocumentListener(this);
    updateContent();
}

From source file:com.aptana.git.ui.internal.history.CommitFileDiffViewer.java

License:Open Source License

CommitFileDiffViewer(final Composite parent, final GitHistoryPage historyPage) {
    super(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);

    final Table rawTable = getTable();
    rawTable.setHeaderVisible(true);//from  ww  w . j av a  2 s  .c  o m
    rawTable.setLinesVisible(false);

    final TableLayout layout = new TableLayout();
    rawTable.setLayout(layout);
    createColumns(rawTable, layout);

    setContentProvider(new CommitDiffContentProvider());
    setLabelProvider(new SingleCommitLabelProvider());

    addOpenListener(new IOpenListener() {
        public void open(final OpenEvent event) {
            final ISelection s = event.getSelection();
            if (s.isEmpty() || !(s instanceof IStructuredSelection))
                return;
            final IStructuredSelection iss = (IStructuredSelection) s;
            final Diff d = (Diff) iss.getFirstElement();
            showTwoWayFileDiff(d);
        }
    });

    MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
    menuMgr.setRemoveAllWhenShown(true);
    menuMgr.addMenuListener(new IMenuListener() {
        public void menuAboutToShow(IMenuManager manager) {
            manager.add(new OpenRevisionAction(historyPage.getSite().getPage(), getTable()));
            // Other plug-ins can contribute there actions here
            manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
        }
    });

    Menu menu = menuMgr.createContextMenu(getControl());
    getControl().setMenu(menu);
}

From source file:com.aptana.ide.views.outline.UnifiedQuickOutlinePage.java

License:Open Source License

/**
  * {@inheritDoc}/*from   w ww.  j  a  va  2s  . c om*/
  */
public void open(OpenEvent event) {
    IStructuredSelection selection = (IStructuredSelection) event.getSelection();

    // If a node in the outline view is selected
    if (selection.size() == 1) {
        Object element = selection.getFirstElement();

        if (element instanceof IResolvableItem) {
            IResolvableItem item = (IResolvableItem) element;
            // if item is resolvable and is targeting on external content
            if (item.isResolvable()) {
                // selecting it in editor
                if (item instanceof IParseNode) {
                    int position = ((IParseNode) item).getStartingOffset();
                    this._editor.selectAndReveal(position, 0);
                    return;
                }
            } else {
                if (item instanceof OutlineItem) {
                    OutlineItem outlineItem = (OutlineItem) selection.getFirstElement();

                    // Only select and reveal in editor if the tree viewer is focused meaning the selection
                    // originated from a user selection on the tree itself

                    // move cursor to start of this item's text
                    if (_treeViewer != null && _treeViewer.getTree() != null
                            && !_treeViewer.getTree().isDisposed() && _treeViewer.getTree().isFocusControl()) {
                        _editor.selectAndReveal(outlineItem.getStartingOffset(), 0);
                    }
                }
            }
        }
        if (element instanceof IRange) {
            int position = ((IRange) element).getStartingOffset();

            this._editor.selectAndReveal(position, 0);
        }

        notifyCloseListeners();
    } else {
        removeOpenActionIfNeeded();
        this._editor.getViewer().removeRangeIndication();
    }
}

From source file:com.astra.ses.spell.gui.views.NavigationView.java

License:Open Source License

/***********************************************************************
 * Open event on double click/*  w  w  w  . j  ava2  s . com*/
 **********************************************************************/
@Override
public void open(OpenEvent event) {
    TreeSelection sel = (TreeSelection) event.getSelection();
    try {
        ProcedureNode item = (ProcedureNode) sel.getFirstElement();
        // Open procedures only, ignore categories
        String category = item.getProcID();
        if (category == null || category.equals("") || category.equals("CATEGORY")) {
            return;
        }
        CommandHelper.execute(OpenProcedure.ID);
    } catch (Exception e) {
        return;
    }
}

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);// w  ww .  j  av  a  2s  .c om
    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.BuildHistoryView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    initImages();// w  w w. j a  v  a 2  s  .  c o m

    this.table = new TableViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION
    /*SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL*/);
    //Tree tree = viewer.getTree();
    //tree.setHeaderVisible(true);

    //table.getTable().setLinesVisible(true);
    this.table.getTable().setHeaderVisible(true);

    TableViewerColumn statusCol = createColumn("S", 22, BuildSorter.STATE, new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            JenkinsBuild build = (JenkinsBuild) cell.getViewerRow().getElement();

            String key = build.result;

            /*        ImageData[] imageDatas = new ImageLoader().load(new FileInputStream("myAnimated.gif"));
                    Image[] images = new Image[imageDatas.length];
                    for (int n = 0; n < imageDatas.length; n++) {
                      // images[n] = new Image(myTable.getDislay(), imageDatas[n]);
                    }
             */
            //        if (job.color != null && job.color.contains("_")) {
            //          key = job.color.substring(0, job.color.indexOf("_"));
            //        }

            Image img = BuildHistoryView.this.stateIcons.get(key);

            if (img != null) {
                cell.setText("");
                cell.setImage(img);
            } else {
                cell.setImage(null);
                cell.setText(build.result);
            }

        }

    });
    statusCol.getColumn().setToolTipText("Status");

    //TODO i18n
    TableViewerColumn namecol = createColumn("Build", 50, BuildSorter.BUILD, new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            JenkinsBuild build = (JenkinsBuild) cell.getViewerRow().getElement();
            String val;
            try {
                if (build.building) {
                    val = "building";
                } else {
                    val = build.number.toString();
                }
            } catch (Exception e) {
                val = "";
            }
            cell.setText(val);
        }
    });

    createColumn("When", 100, BuildSorter.TIME, new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            JenkinsBuild build = (JenkinsBuild) cell.getViewerRow().getElement();

            if (build.timestamp != null) {
                try {
                    cell.setText(
                            Utils.humanReadableTime(System.currentTimeMillis() - build.timestamp) + " ago");
                } catch (Exception e) {
                    cell.setText("");
                }
            } else {
                cell.setText("");
            }
            cell.setImage(null);
        }
    });

    createColumn("Build Duration", 100, BuildSorter.DURATION, new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            JenkinsBuild build = (JenkinsBuild) cell.getViewerRow().getElement();
            if (build.duration != null) {
                try {
                    cell.setText(Utils.humanReadableTime(build.duration));
                } catch (Throwable t) {
                    cell.setText("");
                }
            } else {
                cell.setText("");
            }
        }
    });

    createColumn("Tests", 200, BuildSorter.TESTS, new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            JenkinsBuild build = (JenkinsBuild) cell.getViewerRow().getElement();
            try {
                long total = 0;
                long failed = 0;
                long skipped = 0;
                for (com.cloudbees.eclipse.core.jenkins.api.JenkinsBuild.Action action : build.actions) {
                    if ("testReport".equalsIgnoreCase(action.urlName)) {
                        total += action.totalCount;
                        failed += action.failCount;
                        skipped += action.skipCount;
                    }
                }

                if (total > 0 || failed > 0 || skipped > 0) {
                    String val = "Passed: " + (total - failed - skipped);
                    if (failed > 0) {
                        val += ", failed: " + failed;
                    }
                    if (skipped > 0) {
                        val += ", skipped: " + skipped;
                    }
                    cell.setText(val);
                } else {
                    cell.setText("");
                }
            } catch (Throwable t) {
                cell.setText("");
            }
        }
    });
    createColumn("Cause", 250, BuildSorter.CAUSE, new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            JenkinsBuild build = (JenkinsBuild) cell.getViewerRow().getElement();
            String val = null;
            try {
                for (com.cloudbees.eclipse.core.jenkins.api.JenkinsBuild.Action action : build.actions) {
                    if (action.causes != null && action.causes.length > 0) {
                        val = action.causes[0].shortDescription;
                        break;
                    }
                }

                if (val == null) {
                    val = "";
                }
                cell.setText(val);
            } catch (Throwable t) {
                cell.setText("");
            }
        }
    });

    this.contentProvider = new BuildHistoryContentProvider();

    this.table.setContentProvider(this.contentProvider);

    BuildSorter sorter = new BuildSorter(BuildSorter.BUILD);
    sorter.setDirection(SWT.UP);
    this.table.setSorter(sorter);

    this.table.setInput(getViewSite());

    /*
        table.addFilter(new ViewerFilter() {
          @Override
          public boolean select(Viewer viewer, Object parentElement, Object element) {
    return true;
          }
        });*/

    this.table.addOpenListener(new IOpenListener() {

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

            if (sel instanceof IStructuredSelection) {
                Object el = ((IStructuredSelection) sel).getFirstElement();
                if (el instanceof JenkinsBuild) {
                    CloudBeesDevUiPlugin.getDefault().showBuild(((JenkinsBuild) el));
                }
            }

        }

    });

    this.table.getTable().setSortColumn(namecol.getColumn());
    this.table.getTable().setSortDirection(SWT.DOWN);

    makeActions();
    contributeToActionBars();

    MenuManager popupMenu = new MenuManager();

    popupMenu.add(this.actionOpenBuild);
    popupMenu.add(this.actionOpenLog);
    popupMenu.add(new Separator("cloudActions"));
    popupMenu.add(this.actionOpenBuildInBrowser);
    popupMenu.add(this.actionInvokeBuild);
    popupMenu.add(new Separator("reloadActions"));
    popupMenu.add(this.actionReloadJobs);

    Menu menu = popupMenu.createContextMenu(this.table.getTable());
    this.table.getTable().setMenu(menu);

    this.table.addPostSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(final SelectionChangedEvent event) {
            StructuredSelection sel = (StructuredSelection) event.getSelection();
            BuildHistoryView.this.selectedBuild = sel.getFirstElement();
            boolean enable = BuildHistoryView.this.selectedBuild != null;
            BuildHistoryView.this.actionInvokeBuild.setJob(BuildHistoryView.this.selectedBuild);
            BuildHistoryView.this.actionOpenBuildInBrowser.setEnabled(enable);
            BuildHistoryView.this.actionOpenBuild.setBuild(BuildHistoryView.this.selectedBuild);
            BuildHistoryView.this.actionOpenLog.setBuild(BuildHistoryView.this.selectedBuild);

            getViewSite().getActionBars().getToolBarManager().update(true);
        }
    });

    this.jenkinsChangeListener = new CBRemoteChangeAdapter() {

        public void activeJobHistoryChanged(final JenkinsJobAndBuildsResponse newView) {
            PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
                public void run() {
                    BuildHistoryView.this.setInput(newView);
                }
            });
        }

    };

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