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

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

Introduction

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

Prototype

@Override
    public Control getControl() 

Source Link

Usage

From source file:org.eclipse.linuxtools.internal.valgrind.massif.birt.ChartSVG.java

License:Open Source License

public void callback(Object event, Object source, CallBackValue value) {
    // give Valgrind view focus
    showView();/*  w  w  w .j  a v a  2s.com*/
    MouseEvent mEvent = (MouseEvent) event;

    DataPointHints point = ((DataPointHints) ((WrappedStructureSource) source).getSource());
    // select the corresponding snapshot in the TableViewer
    TableViewer viewer = view.getTableViewer();
    view.setTopControl(viewer.getControl());

    MassifSnapshot snapshot = (MassifSnapshot) viewer.getElementAt(point.getIndex());

    switch (mEvent.count) {
    case 1: // single click
        viewer.setSelection(new StructuredSelection(snapshot));
        break;
    case 2: // double click
        //         if (snapshot.isDetailed()) {
        //            ChartLocationsDialog dialog = new ChartLocationsDialog(getShell());
        //            dialog.setInput(snapshot);
        //            
        //            if (dialog.open() == Window.OK) {
        //               dialog.openEditorForResult();
        //            }            
        //         }
    }
}

From source file:org.eclipse.linuxtools.internal.valgrind.massif.charting.ChartEditor.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    final ChartEditorInput input = (ChartEditorInput) getEditorInput();
    final HeapChart heapChart = input.getChart();
    control = new Chart(parent, SWT.FILL);
    heapChart.setChartControl(control);/*from w  w w .ja  v a  2 s.co m*/

    final Color LIGHTYELLOW = new Color(Display.getDefault(), 255, 255, 225);
    final Color WHITE = Display.getDefault().getSystemColor(SWT.COLOR_WHITE);
    final Color BLACK = Display.getDefault().getSystemColor(SWT.COLOR_BLACK);
    final Color RED = Display.getDefault().getSystemColor(SWT.COLOR_RED);
    final Color ORANGE = new Color(Display.getDefault(), 255, 165, 0);
    final Color GREEN = Display.getDefault().getSystemColor(SWT.COLOR_GREEN);
    final Color DARK_BLUE = new Color(Display.getDefault(), 64, 128, 128);
    final int TICK_GAP = 40;

    control.setBackground(WHITE);
    control.setBackgroundInPlotArea(LIGHTYELLOW);

    FontData fd = JFaceResources.getDialogFont().getFontData()[0];
    fd.setStyle(SWT.BOLD);

    Font font = new Font(Display.getDefault(), fd);
    fd.setHeight(fd.getHeight() + 2);
    Font titleFont = new Font(Display.getDefault(), fd);

    ITitle title = control.getTitle();
    title.setFont(titleFont);
    title.setForeground(BLACK);
    title.setText(heapChart.title);

    IAxis xAxis = control.getAxisSet().getXAxis(0);
    xAxis.getGrid().setStyle(LineStyle.NONE);
    xAxis.getTick().setForeground(BLACK);
    ITitle xTitle = xAxis.getTitle();
    xTitle.setFont(font);
    xTitle.setForeground(BLACK);
    xTitle.setText(heapChart.xUnits);

    IAxis yAxis = control.getAxisSet().getYAxis(0);
    yAxis.getGrid().setStyle(LineStyle.SOLID);
    yAxis.getTick().setForeground(BLACK);
    yAxis.getTick().setTickMarkStepHint(TICK_GAP);
    ITitle yTitle = yAxis.getTitle();
    yTitle.setFont(font);
    yTitle.setText(heapChart.yUnits);
    yTitle.setForeground(BLACK);

    control.getLegend().setPosition(SWT.BOTTOM);

    // data
    final ILineSeries lsUseful = (ILineSeries) control.getSeriesSet().createSeries(SeriesType.LINE,
            Messages.getString("HeapChart.Useful_Heap")); //$NON-NLS-1$;
    lsUseful.setXSeries(heapChart.time);
    lsUseful.setYSeries(heapChart.dataUseful);
    lsUseful.setSymbolType(PlotSymbolType.DIAMOND);
    lsUseful.setSymbolColor(RED);
    lsUseful.setLineColor(RED);

    final ILineSeries lsExtra = (ILineSeries) control.getSeriesSet().createSeries(SeriesType.LINE,
            Messages.getString("HeapChart.Extra_Heap")); //$NON-NLS-1$;
    lsExtra.setXSeries(heapChart.time);
    lsExtra.setYSeries(heapChart.dataExtra);
    lsExtra.setSymbolType(PlotSymbolType.DIAMOND);
    lsExtra.setSymbolColor(ORANGE);
    lsExtra.setLineColor(ORANGE);

    if (heapChart.dataStacks != null) {
        final ILineSeries lsStack = (ILineSeries) control.getSeriesSet().createSeries(SeriesType.LINE,
                Messages.getString("HeapChart.Stacks")); //$NON-NLS-1$;
        lsStack.setXSeries(heapChart.time);
        lsStack.setYSeries(heapChart.dataStacks);
        lsStack.setSymbolType(PlotSymbolType.DIAMOND);
        lsStack.setSymbolColor(DARK_BLUE);
        lsStack.setLineColor(DARK_BLUE);
    }

    final ILineSeries lsTotal = (ILineSeries) control.getSeriesSet().createSeries(SeriesType.LINE,
            Messages.getString("HeapChart.Total_Heap")); //$NON-NLS-1$;
    lsTotal.setXSeries(heapChart.time);
    lsTotal.setYSeries(heapChart.dataTotal);
    lsTotal.setSymbolType(PlotSymbolType.DIAMOND);
    lsTotal.setSymbolColor(GREEN);
    lsTotal.setLineColor(GREEN);

    // adjust axes
    control.getAxisSet().adjustRange();

    IAxisSet axisSet = control.getAxisSet();
    Range xRange = axisSet.getXAxis(0).getRange();
    Range yRange = axisSet.getYAxis(0).getRange();

    double xExtra = 0.05 * (xRange.upper - xRange.lower);
    double yExtra = 0.05 * (yRange.upper - yRange.lower);

    axisSet.getXAxis(0).setRange(new Range(xRange.lower, xRange.upper + xExtra));
    axisSet.getYAxis(0).setRange(new Range(yRange.lower, yRange.upper + yExtra));

    // listeners
    control.getPlotArea().addMouseListener(new MouseAdapter() {

        @Override
        public void mouseDown(MouseEvent e) {
            showView();
            TableViewer viewer = input.getView().getTableViewer();
            input.getView().setTopControl(viewer.getControl());

            Point p = new Point(e.x, e.y);

            int closest = 0;
            double d1, d2, d3, currMin;
            double globalMin = Double.MAX_VALUE;
            for (int i = 0; i < heapChart.time.length; i++) {
                // get distance from click event to data points for the given index
                d1 = distance(lsUseful.getPixelCoordinates(i), p);
                d2 = distance(lsExtra.getPixelCoordinates(i), p);
                d3 = distance(lsTotal.getPixelCoordinates(i), p);
                // find the closest data point to the click event
                currMin = Math.min(Math.min(d1, d2), d3);
                if (currMin < globalMin) {
                    closest = i;
                    globalMin = currMin;
                }
            }

            MassifSnapshot snapshot = (MassifSnapshot) viewer.getElementAt(closest);
            viewer.setSelection(new StructuredSelection(snapshot), true);

            if (e.count == 2 && snapshot.isDetailed()) {
                ChartLocationsDialog dialog = new ChartLocationsDialog(Display.getCurrent().getActiveShell());
                dialog.setInput(snapshot);

                if (dialog.open() == Window.OK) {
                    dialog.openEditorForResult();
                }
            }

        }
    });

}

From source file:org.eclipse.mylyn.internal.gerrit.ui.editor.PatchSetSection.java

License:Open Source License

void createSubSectionContents(final ChangeDetail changeDetail, final PatchSetDetail patchSetDetail,
        PatchSetPublishDetail publishDetail, Section subSection) {
    Composite composite = toolkit.createComposite(subSection);
    GridLayoutFactory.fillDefaults().numColumns(2).applyTo(composite);
    subSection.setClient(composite);/* w ww  .  j av  a  2  s.c  o m*/

    Label authorLabel = new Label(composite, SWT.NONE);
    authorLabel.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
    authorLabel.setText("Author");

    Text authorText = new Text(composite, SWT.READ_ONLY);
    authorText.setText(GerritUtil.getUserLabel(patchSetDetail.getInfo().getAuthor()));

    Label committerLabel = new Label(composite, SWT.NONE);
    committerLabel.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
    committerLabel.setText("Committer");

    Text committerText = new Text(composite, SWT.READ_ONLY);
    committerText.setText(GerritUtil.getUserLabel(patchSetDetail.getInfo().getCommitter()));

    Label commitLabel = new Label(composite, SWT.NONE);
    commitLabel.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
    commitLabel.setText("Commit");

    Hyperlink commitLink = new Hyperlink(composite, SWT.READ_ONLY);
    commitLink.setText(patchSetDetail.getPatchSet().getRevision().get());
    commitLink.addHyperlinkListener(new HyperlinkAdapter() {
        @Override
        public void linkActivated(HyperlinkEvent event) {
            GerritToGitMapping mapping = getRepository(changeDetail);
            if (mapping != null) {
                final FetchPatchSetJob job = new FetchPatchSetJob("Opening Commit Viewer",
                        mapping.getRepository(), mapping.getRemote(), patchSetDetail.getPatchSet());
                job.schedule();
                job.addJobChangeListener(new JobChangeAdapter() {
                    @Override
                    public void done(IJobChangeEvent event) {
                        Display.getDefault().asyncExec(new Runnable() {
                            @Override
                            public void run() {
                                CommitEditor.openQuiet(job.getCommit());
                            }
                        });
                    }
                });
            }
        }
    });

    Label refLabel = new Label(composite, SWT.NONE);
    refLabel.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
    refLabel.setText("Ref");

    Text refText = new Text(composite, SWT.READ_ONLY);
    refText.setText(patchSetDetail.getPatchSet().getRefName());

    final TableViewer viewer = new TableViewer(composite, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.VIRTUAL);
    GridDataFactory.fillDefaults().span(2, 1).grab(true, true).hint(500, SWT.DEFAULT)
            .applyTo(viewer.getControl());
    viewer.setContentProvider(new IStructuredContentProvider() {
        private EContentAdapter modelAdapter;

        public void dispose() {
            // ignore
        }

        public Object[] getElements(Object inputElement) {
            return getReviewItems(inputElement).toArray();
        }

        private List<IReviewItem> getReviewItems(Object inputElement) {
            if (inputElement instanceof IReviewItemSet) {
                return ((IReviewItemSet) inputElement).getItems();
            }
            return Collections.emptyList();
        }

        public void inputChanged(final Viewer viewer, Object oldInput, Object newInput) {
            if (modelAdapter != null) {
                for (IReviewItem item : getReviewItems(oldInput)) {
                    ((EObject) item).eAdapters().remove(modelAdapter);
                }
                addedDrafts = 0;
            }

            if (newInput instanceof IReviewItemSet) {
                // monitors any new topics that are added
                modelAdapter = new EContentAdapter() {
                    @Override
                    public void notifyChanged(Notification notification) {
                        super.notifyChanged(notification);
                        if (notification.getFeatureID(IReviewItem.class) == ReviewsPackage.REVIEW_ITEM__TOPICS
                                && notification.getEventType() == Notification.ADD) {
                            viewer.refresh();
                            addedDrafts++;
                        }
                    }
                };
                for (Object item : getReviewItems(newInput)) {
                    ((EObject) item).eAdapters().add(modelAdapter);
                }
            }
        }
    });
    viewer.setLabelProvider(new DelegatingStyledCellLabelProvider(new ReviewItemLabelProvider()));
    viewer.addOpenListener(new IOpenListener() {
        public void open(OpenEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            IFileItem item = (IFileItem) selection.getFirstElement();
            if (item != null) {
                doOpen((IReviewItemSet) viewer.getInput(), item);
            }
        }
    });

    IReviewItemSet itemSet = GerritUtil.createInput(changeDetail, new GerritPatchSetContent(patchSetDetail),
            cache);
    viewer.setInput(itemSet);

    Composite actionComposite = createActions(changeDetail, patchSetDetail, publishDetail, composite);
    GridDataFactory.fillDefaults().span(2, 1).applyTo(actionComposite);

    subSectionExpanded(changeDetail, patchSetDetail, subSection, viewer);
    EditorUtil.addScrollListener(viewer.getTable());

    getTaskEditorPage().reflow();
}

From source file:org.eclipse.mylyn.internal.github.ui.gist.GistConnectorSelectionDialog.java

License:Open Source License

protected Control createDialogArea(Composite parent) {
    Composite c = (Composite) super.createDialogArea(parent);

    createMessageArea(c);/*from w  w  w  .  j a  va  2s .com*/

    TableViewer viewer = new TableViewer(c, SWT.SINGLE | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(viewer.getControl());
    viewer.setContentProvider(ArrayContentProvider.getInstance());
    viewer.setLabelProvider(new DecoratingLabelProvider(new TaskRepositoryLabelProvider(),
            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
    viewer.setSorter(new ViewerSorter());
    viewer.setInput(repos);
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        public void doubleClick(DoubleClickEvent event) {
            Object selected = ((IStructuredSelection) event.getSelection()).getFirstElement();
            setResult(Collections.singletonList(selected));
            okPressed();
        }
    });
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            Object selected = ((IStructuredSelection) event.getSelection()).getFirstElement();
            setResult(Collections.singletonList(selected));
        }
    });

    return c;
}

From source file:org.eclipse.mylyn.internal.github.ui.RepositorySearchWizardPage.java

License:Open Source License

/**
 *
 *///from  w ww  .j  av  a 2s  .c o  m
public void createControl(Composite parent) {
    final Composite root = new Composite(parent, SWT.NONE);
    GridLayoutFactory.swtDefaults().numColumns(1).applyTo(root);

    Composite rowOne = new Composite(root, SWT.NONE);
    GridLayoutFactory.fillDefaults().numColumns(2).applyTo(rowOne);

    Label searchForLabel = new Label(rowOne, SWT.NONE);
    searchForLabel.setText(Messages.RepositorySearchWizardPage_SearchForRepositories);

    final Combo languageCombo = new Combo(rowOne, SWT.READ_ONLY | SWT.DROP_DOWN);
    languageCombo.add(Messages.RepositorySearchWizardPage_AnyLanguage);

    for (Language language : Language.values())
        languageCombo.add(language.getValue());

    languageCombo.select(0);

    Composite rowTwo = new Composite(root, SWT.NONE);
    GridLayoutFactory.fillDefaults().numColumns(2).applyTo(rowTwo);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(rowTwo);

    searchText = new Text(rowTwo, SWT.SINGLE | SWT.BORDER);
    GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(searchText);

    final Button searchButton = new Button(rowTwo, SWT.NONE);
    searchButton.setText(Messages.RepositorySearchWizardPage_SearchButton);
    searchButton.setEnabled(false);

    final TableViewer repoListViewer = new TableViewer(root);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(repoListViewer.getControl());
    repoListViewer.setContentProvider(new ArrayContentProvider());

    repoListViewer.setLabelProvider(new DelegatingStyledCellLabelProvider(new IStyledLabelProvider() {

        private Image repoImage = UIIcons.REPOSITORY.createImage();

        public void removeListener(ILabelProviderListener listener) {
        }

        public boolean isLabelProperty(Object element, String property) {
            return false;
        }

        public void dispose() {
            repoImage.dispose();
        }

        public void addListener(ILabelProviderListener listener) {
        }

        public StyledString getStyledText(Object element) {
            StyledString styled = new StyledString();
            SearchRepository repo = (SearchRepository) element;
            styled.append(repo.getOwner() + "/" + repo.getName()); //$NON-NLS-1$
            String language = repo.getLanguage();
            if (language != null && language.length() > 0)
                styled.append(" (" + language + ")", //$NON-NLS-1$ //$NON-NLS-2$
                        StyledString.QUALIFIER_STYLER);

            int forks = repo.getForks();
            if (forks != 1)
                styled.append(MessageFormat.format(Messages.RepositorySearchWizardPage_Forks, forks),
                        StyledString.COUNTER_STYLER);
            else
                styled.append(Messages.RepositorySearchWizardPage_Fork, StyledString.COUNTER_STYLER);

            int watchers = repo.getWatchers();
            if (watchers != 1)
                styled.append(MessageFormat.format(Messages.RepositorySearchWizardPage_Watchers, watchers),
                        StyledString.COUNTER_STYLER);
            else
                styled.append(Messages.RepositorySearchWizardPage_Watcher, StyledString.COUNTER_STYLER);

            return styled;
        }

        public Image getImage(Object element) {
            return repoImage;
        }
    }));

    repoListViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            validate(repoListViewer);
        }
    });

    searchText.addModifyListener(new ModifyListener() {

        public void modifyText(ModifyEvent e) {
            searchButton.setEnabled(searchText.getText().trim().length() != 0);
        }
    });

    searchButton.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent selectionEvent) {
            String language = null;
            if (languageCombo.getSelectionIndex() > 0)
                language = languageCombo.getText();
            search(language, searchText.getText().trim(), repoListViewer);
        }
    });

    setControl(root);
}

From source file:org.eclipse.mylyn.internal.github.ui.RepositorySearchWizardPage.java

License:Open Source License

private void search(final String language, final String text, final TableViewer viewer) {
    viewer.setSelection(StructuredSelection.EMPTY);
    try {//  w  w w .java2s.  c  om
        getContainer().run(true, true, new IRunnableWithProgress() {

            public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
                monitor.beginTask(MessageFormat.format(Messages.RepositorySearchWizardPage_Searching, text),
                        10);
                try {
                    final List<SearchRepository> repositories = repositoryService
                            .searchRepositories(text.trim(), language);
                    PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {

                        public void run() {
                            if (viewer.getControl().isDisposed())
                                return;
                            setMessage(MessageFormat.format(Messages.RepositorySearchWizardPage_Found,
                                    repositories.size()), INFORMATION);
                            viewer.setInput(repositories);
                            validate(viewer);
                        }
                    });
                } catch (IOException e) {
                    throw new InvocationTargetException(GitHubException.wrap(e));
                }
            }
        });
        setErrorMessage(null);
    } catch (InvocationTargetException e) {
        viewer.setInput(Collections.emptyList());
        Throwable cause = e.getCause();
        if (cause == null)
            cause = e;
        setErrorMessage(
                MessageFormat.format(Messages.RepositorySearchWizardPage_Error, cause.getLocalizedMessage()));
    } catch (InterruptedException e) {
        GitHubUi.logError(e);
    }
}

From source file:org.eclipse.mylyn.internal.reviews.r4e.connector.ui.editor.ArtifactsSection.java

License:Open Source License

void createSubSectionContents(final R4EItem item, Section subSection) {
    Composite composite = toolkit.createComposite(subSection);
    GridLayoutFactory.fillDefaults().numColumns(2).applyTo(composite);
    subSection.setClient(composite);//  w ww.  j  a v  a2  s.  co  m

    String addedBy = item.getAddedById();
    if (addedBy != null) {
        Label authorLabel = new Label(composite, SWT.NONE);
        authorLabel.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
        authorLabel.setText("Added By");

        Text authorText = new Text(composite, SWT.READ_ONLY);
        authorText.setText(addedBy);
    }

    String name = item.getAuthorRep();
    if (name != null) {
        Label commitLabel = new Label(composite, SWT.NONE);
        commitLabel.setForeground(toolkit.getColors().getColor(IFormColors.TITLE));
        commitLabel.setText("Author");

        Text commitText = new Text(composite, SWT.READ_ONLY);
        commitText.setText(name);
    }

    final TableViewer viewer = new TableViewer(composite, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.VIRTUAL);
    GridDataFactory.fillDefaults().span(2, 1).grab(true, true).hint(500, SWT.DEFAULT)
            .applyTo(viewer.getControl());
    viewer.setContentProvider(new IStructuredContentProvider() {
        public void dispose() {
            // ignore
        }

        public Object[] getElements(Object inputElement) {
            return item.getFileContextList().toArray();
        }

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

        }
    });

    //   Not currently supported
    //      viewer.addOpenListener(new IOpenListener() {
    //         public void open(OpenEvent event) {
    //            EditorProxy.openSimpleEditor(R4EUIModelController.getNavigatorView().getSite().getPage(),
    //                  event.getSelection(), true);
    //         }
    //      });

    viewer.setLabelProvider(new ReviewItemLabelProvider());

    viewer.setInput(item);
    EditorUtil.addScrollListener(viewer.getTable());

    getTaskEditorPage().reflow();
}

From source file:org.eclipse.mylyn.internal.versions.tasks.ui.ChangesetPart.java

License:Open Source License

private void registerContextMenu(TableViewer table) {
    MenuManager menuManager = new MenuManager();
    menuManager.setRemoveAllWhenShown(true);
    getPage().getEditorSite().registerContextMenu("org.eclipse.mylyn.versions.changesets", menuManager, table,
            true);//w  w  w .  j  av  a2  s . c  o m
    Menu menu = menuManager.createContextMenu(table.getControl());
    table.getTable().setMenu(menu);
}

From source file:org.eclipse.mylyn.reviews.ui.editors.CreateReviewTaskEditorPart.java

License:Open Source License

/**
 * Create list of changesets and the button for the creation/reassignment of
 * reviews./*from   w w  w. j a  v  a 2 s  .  co m*/
 */
public void createControl(Composite parent, FormToolkit toolkit) {
    try {
        Section section = createSection(parent, toolkit,
                ExpandableComposite.TWISTIE | ExpandableComposite.TITLE_BAR | ExpandableComposite.EXPANDED);
        section.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
        section.setLayout(new FillLayout());
        Composite composite = toolkit.createComposite(section);
        composite.setLayout(new GridLayout(1, false));
        TableViewer reviewItemTable = new TableViewer(composite, SWT.FULL_SELECTION | SWT.MULTI);
        reviewItemTable.getTable().setHeaderVisible(true);
        reviewItemTable.setContentProvider(new ArrayContentProvider());
        reviewItemTable.addSelectionChangedListener(new ISelectionChangedListener() {

            public void selectionChanged(SelectionChangedEvent event) {
                IStructuredSelection selection = (IStructuredSelection) event.getSelection();
                if (selection.getFirstElement() instanceof Changeset) {
                    Object[] oSelectedChs = selection.toArray();
                    selectedChangesets = new ArrayList<IChangeset>();
                    for (int i = 0; i < oSelectedChs.length; i++)
                        selectedChangesets.add((IChangeset) oSelectedChs[i]);

                }
            }
        });

        UiUtil.createColumn(reviewItemTable, Messages.CreateReviewTaskEditorPart_Header_Revision,
                REVISION_WIDTH);
        UiUtil.createColumn(reviewItemTable, Messages.CreateReviewTaskEditorPart_Header_Description,
                DESCRIPTION_WIDTH);
        UiUtil.createColumn(reviewItemTable, Messages.CreateReviewTaskEditorPart_Header_Author, AUTOR_WIDTH);
        UiUtil.createColumn(reviewItemTable, Messages.CreateReviewTaskEditorPart_Header_Date, DATE_WIDTH);
        reviewItemTable.setLabelProvider(new TableLabelProvider() {
            final int COLUMN_REVISION = 0;
            final int COLUMN_DESCRIPTION = 1;
            final int COLUMN_AUTHOR = 2;
            final int COLUMN_DATE = 3;

            public String getColumnText(Object element, int columnIndex) {
                IChangeset changeset = (IChangeset) element;
                switch (columnIndex) {
                case COLUMN_REVISION:
                    return changeset.getRevision();
                case COLUMN_DESCRIPTION:
                    return changeset.getMessage();
                case COLUMN_AUTHOR:
                    return changeset.getAutor();
                case COLUMN_DATE:
                    return changeset.getDate().toString();
                default:
                    return null;
                }
            }

            public Image getColumnImage(Object element, int columnIndex) {
                return null;
            }
        });
        reviewItemTable.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

        Composite buttonComposite = toolkit.createComposite(composite);
        buttonComposite.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, true));
        buttonComposite.setLayout(new GridLayout(5, true));

        Button submitButton = toolkit.createButton(buttonComposite,
                Messages.CreateReviewTaskEditorPart_Create_Review, SWT.PUSH);
        submitButton.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, true, 1, 1));
        submitButton.addSelectionListener(new SelectionListener() {
            public void widgetSelected(SelectionEvent e) {
                createReview();
            }

            public void widgetDefaultSelected(SelectionEvent e) {
                widgetDefaultSelected(e);
            }
        });

        section.setClient(composite);
        reviewItemTable.setInput(getChangesets());

        // create context menue for table
        Menu contextMenue = new Menu(reviewItemTable.getControl());
        org.eclipse.swt.widgets.MenuItem menueItem = new org.eclipse.swt.widgets.MenuItem(contextMenue,
                SWT.PUSH);
        menueItem.setText("create review ...");
        menueItem.addSelectionListener(new SelectionListener() {

            public void widgetDefaultSelected(SelectionEvent arg0) {
            }

            public void widgetSelected(SelectionEvent arg0) {
                createReview();
            }
        });
        reviewItemTable.getTable().setMenu(contextMenue);

    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:org.eclipse.mylyn.reviews.ui.editors.EditorSupport.java

License:Open Source License

private void createChangesetSection(Composite body, FormToolkit toolkit) {

    // Review Section
    Section changesetSection = toolkit.createSection(body,
            ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);

    changesetSection.setLayout(new GridLayout(1, true));
    changesetSection.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    changesetSection.setText(Messages.ReviewEditor_Changesets);

    TableViewer reviewItemTable = new TableViewer(changesetSection, SWT.FULL_SELECTION | SWT.FILL_EVEN_ODD);
    reviewItemTable.getTable().setHeaderVisible(true);
    reviewItemTable.setContentProvider(new IStructuredContentProvider() {

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }//from  w ww .j ava2 s . c o m

        public void dispose() {
        }

        public Object[] getElements(Object inputElement) {
            Review review = (Review) inputElement;
            List<Changeset> changesets = new ArrayList<Changeset>();

            for (int i = 0; i < review.getScope().size(); i++)
                changesets.add((Changeset) review.getScope().get(i));

            return changesets.toArray(new Changeset[1]);
        }
    });

    reviewItemTable.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            if (selection.getFirstElement() instanceof Changeset) {
                Object[] oSelectedChs = selection.toArray();
                selectedChangeset = null;
                for (int i = 0; i < oSelectedChs.length; i++)
                    selectedChangeset = (Changeset) oSelectedChs[i];

                fileList.setInput(selectedChangeset);
                contentSection.setExpanded(false);
                contentSection.setExpanded(true);
            }
        }
    });

    UiUtil.createColumn(reviewItemTable, Messages.CreateReviewTaskEditorPart_Header_Revision, REVISION_WIDTH);
    UiUtil.createColumn(reviewItemTable, Messages.CreateReviewTaskEditorPart_Header_Description,
            DESCRIPTION_WIDTH);
    UiUtil.createColumn(reviewItemTable, Messages.CreateReviewTaskEditorPart_Header_Author, AUTOR_WIDTH);
    reviewItemTable.setLabelProvider(new TableLabelProvider() {
        final int COLUMN_REVISION = 0;
        final int COLUMN_DESCRIPTION = 1;
        final int COLUMN_AUTHOR = 2;

        public String getColumnText(Object element, int columnIndex) {
            Changeset changeset = (Changeset) element;
            switch (columnIndex) {
            case COLUMN_REVISION:
                return changeset.getRevision();
            case COLUMN_DESCRIPTION:
                return changeset.getComment();
            case COLUMN_AUTHOR:
                return changeset.getAuthor();
            default:
                return null;
            }
        }

        public Image getColumnImage(Object element, int columnIndex) {
            return null;
        }
    });
    reviewItemTable.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    reviewItemTable.setInput(getEditorInput().getReview());
    changesetSection.setClient(reviewItemTable.getControl());

}