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

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

Introduction

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

Prototype

public ViewerComparator() 

Source Link

Document

Creates a new ViewerComparator , which uses the default comparator to sort strings.

Usage

From source file:org.eclipse.e4.ui.internal.progress.ProgressMonitorJobsDialog.java

License:Open Source License

/**
 * The details button has been selected. Open or close the progress viewer
 * as appropriate./* w  w  w.  ja v  a2s. c  om*/
 *  
 */
void handleDetailsButtonSelect() {
    Shell shell = getShell();
    Point shellSize = shell.getSize();
    Composite composite = (Composite) getDialogArea();
    if (viewer != null) {
        viewer.getControl().dispose();
        viewer = null;
        composite.layout();
        shell.setSize(shellSize.x, shellSize.y - viewerHeight);
        detailsButton.setText(ProgressMessages.ProgressMonitorJobsDialog_DetailsTitle);
    } else {
        //Abort if there are no jobs visible
        if (ProgressManager.getInstance().getRootElements(false).length == 0) {
            detailsButton.setEnabled(false);
            return;
        }

        viewer = new DetailedProgressViewer(viewerComposite,
                SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
        viewer.setComparator(new ViewerComparator() {
            @SuppressWarnings({ "unchecked", "rawtypes" })
            @Override
            public int compare(Viewer testViewer, Object e1, Object e2) {
                return ((Comparable) e1).compareTo(e2);
            }
        });

        viewer.setContentProvider(new ProgressViewerContentProvider(viewer, true, false) {
            public Object[] getElements(Object inputElement) {
                return super.getElements(inputElement);
            }
        });

        viewer.setLabelProvider(new ProgressLabelProvider());
        viewer.setInput(this);
        GridData viewerData = new GridData(GridData.FILL_BOTH);
        viewer.getControl().setLayoutData(viewerData);
        GridData viewerCompositeData = (GridData) viewerComposite.getLayoutData();
        viewerCompositeData.heightHint = convertHeightInCharsToPixels(10);
        viewerComposite.layout(true);
        viewer.getControl().setVisible(true);
        viewerHeight = viewerComposite.computeTrim(0, 0, 0, viewerCompositeData.heightHint).height;
        detailsButton.setText(ProgressMessages.ProgressMonitorJobsDialog_HideTitle);
        shell.setSize(shellSize.x, shellSize.y + viewerHeight);
    }
}

From source file:org.eclipse.e4.ui.internal.workbench.renderers.swt.BasicPartList.java

License:Open Source License

public BasicPartList(Shell parent, int shellStyle, int treeStyler, EPartService partService,
        MElementContainer<?> input, ISWTResourceUtilities utils, boolean alphabetical) {
    super(parent, shellStyle, treeStyler);
    this.partService = partService;
    this.input = input;
    this.utils = utils;
    if (alphabetical && getTableViewer() != null) {
        getTableViewer().setComparator(new ViewerComparator());
    }/*from   ww w  .  j a  v  a2s.c o m*/

}

From source file:org.eclipse.e4.ui.progress.internal.BlockedJobsDialog.java

License:Open Source License

/**
 * This method creates a dialog area in the parent composite and displays a
 * progress tree viewer of the running jobs.
 *
 * @param parent/*from  ww w. jav a  2 s.c  o m*/
 *            The parent Composite.
 */
void showJobDetails(Composite parent) {
    viewer = new DetailedProgressViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER,
            progressService, finishedJobs);
    viewer.setComparator(new ViewerComparator() {
        @Override
        @SuppressWarnings("unchecked")
        public int compare(Viewer testViewer, Object e1, Object e2) {
            return ((Comparable<Object>) e1).compareTo(e2);
        }
    });
    ProgressViewerContentProvider provider = getContentProvider();
    viewer.setContentProvider(provider);
    viewer.setInput(provider);
    viewer.setLabelProvider(new ProgressLabelProvider());
    GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
    data.horizontalSpan = 2;
    int heightHint = convertHeightInCharsToPixels(10);
    data.heightHint = heightHint;
    viewer.getControl().setLayoutData(data);
}

From source file:org.eclipse.e4.ui.progress.internal.ProgressMonitorJobsDialog.java

License:Open Source License

/**
 * The details button has been selected. Open or close the progress viewer
 * as appropriate./*from www  .  j  a  v  a 2s.  c  o  m*/
 *
 */
void handleDetailsButtonSelect() {
    Shell shell = getShell();
    Point shellSize = shell.getSize();
    Composite composite = (Composite) getDialogArea();
    if (viewer != null) {
        viewer.getControl().dispose();
        viewer = null;
        composite.layout();
        shell.setSize(shellSize.x, shellSize.y - viewerHeight);
        detailsButton.setText(ProgressMessages.ProgressMonitorJobsDialog_DetailsTitle);
    } else {
        //Abort if there are no jobs visible
        if (progressManager.getRootElements(Policy.DEBUG_SHOW_ALL_JOBS).length == 0) {
            detailsButton.setEnabled(false);
            return;
        }

        viewer = new DetailedProgressViewer(viewerComposite,
                SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER, progressService, finishedJobs);
        viewer.setComparator(new ViewerComparator() {
            @Override
            @SuppressWarnings("unchecked")
            public int compare(Viewer testViewer, Object e1, Object e2) {
                return ((Comparable<Object>) e1).compareTo(e2);
            }
        });

        viewer.setContentProvider(contentProviderFactory.getProgressViewerContentProvider(viewer, true, false));
        viewer.setLabelProvider(new ProgressLabelProvider());
        viewer.setInput(this);
        GridData viewerData = new GridData(GridData.FILL_BOTH);
        viewer.getControl().setLayoutData(viewerData);
        GridData viewerCompositeData = (GridData) viewerComposite.getLayoutData();
        viewerCompositeData.heightHint = convertHeightInCharsToPixels(10);
        viewerComposite.layout(true);
        viewer.getControl().setVisible(true);
        viewerHeight = viewerComposite.computeTrim(0, 0, 0, viewerCompositeData.heightHint).height;
        detailsButton.setText(ProgressMessages.ProgressMonitorJobsDialog_HideTitle);
        shell.setSize(shellSize.x, shellSize.y + viewerHeight);
    }
}

From source file:org.eclipse.e4.ui.workbench.perspectiveswitcher.internal.dialogs.SelectPerspectiveDialog.java

License:Open Source License

/**
 * Create a new viewer in the parent./*from  w w w. j av  a 2 s.  c  om*/
 *
 * @param parent the parent <code>Composite</code>.
 */
private void createViewer(Composite parent) {
    // Add perspective list.
    viewer = new TableViewer(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    viewer.getTable().setFont(parent.getFont());

    viewer.setLabelProvider(new DelegatingLabelProviderWithTooltip(
            ContextInjectionFactory.make(PerspectiveLabelProvider.class, context),
            ContextInjectionFactory.make(PerspectiveLabelDecorator.class, context)) {

        @Override
        protected Object unwrapElement(Object element) {
            // We do not need to unwrap the element
            return element;
        }
    });

    viewer.setContentProvider(ContextInjectionFactory.make(PerspectiveContentProvider.class, context));
    // list.addFilter(activityViewerFilter);
    viewer.setComparator(new ViewerComparator());
    viewer.setInput(window);
    viewer.addSelectionChangedListener(this);
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            handleDoubleClickEvent();
        }
    });
}

From source file:org.eclipse.e4.xwt.tests.snipppets.Snippet020TreeViewerWithSetFactory.java

License:Open Source License

/**
 * Create nameMap of the window//from w w w .  java2  s.  c om
 */
protected void createContents() {
    shell = new Shell();
    final GridLayout gridLayout_1 = new GridLayout();
    gridLayout_1.numColumns = 2;
    shell.setLayout(gridLayout_1);
    shell.setSize(535, 397);
    shell.setText("SWT Application");

    final Composite group = new Composite(shell, SWT.NONE);
    final RowLayout rowLayout = new RowLayout();
    rowLayout.marginTop = 0;
    rowLayout.marginRight = 0;
    rowLayout.marginLeft = 0;
    rowLayout.marginBottom = 0;
    rowLayout.pack = false;
    group.setLayout(rowLayout);
    group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 2, 1));

    final Button addRootButton = new Button(group, SWT.NONE);
    addRootButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent e) {
            Set set = input.getSet();
            Bean root = createBean("root");
            set.add(root);
            input.setSet(set);

            beanViewer.setSelection(new StructuredSelection(root));
            beanText.selectAll();
            beanText.setFocus();
        }
    });
    addRootButton.setText("Add Root");

    addChildBeanButton = new Button(group, SWT.NONE);
    addChildBeanButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent e) {
            Bean parent = getSelectedBean();
            Set set = new HashSet(parent.getSet());
            Bean child = createBean("child" + (counter++));
            set.add(child);
            parent.setSet(set);

            // beanViewer.setSelection(new StructuredSelection(parent));
            // beanText.selectAll();
            // beanText.setFocus();
        }
    });
    addChildBeanButton.setText("Add Child");

    removeBeanButton = new Button(group, SWT.NONE);
    removeBeanButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent e) {
            TreeItem selectedItem = beanViewer.getTree().getSelection()[0];
            Bean bean = (Bean) selectedItem.getData();
            TreeItem parentItem = selectedItem.getParentItem();
            Bean parent;
            if (parentItem == null)
                parent = input;
            else
                parent = (Bean) parentItem.getData();

            Set set = new HashSet(parent.getSet());
            set.remove(bean);
            parent.setSet(set);
        }
    });
    removeBeanButton.setText("Remove");

    copyButton = new Button(group, SWT.NONE);
    copyButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent e) {
            clipboard.setValue(getSelectedBean());
        }
    });
    copyButton.setText("Copy");

    pasteButton = new Button(group, SWT.NONE);
    pasteButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent e) {
            Bean copy = (Bean) clipboard.getValue();
            if (copy == null)
                return;
            Bean parent = getSelectedBean();
            if (parent == null)
                parent = input;

            Set set = new HashSet(parent.getSet());
            set.add(copy);
            parent.setSet(set);

            beanViewer.setSelection(new StructuredSelection(copy));
            beanText.selectAll();
            beanText.setFocus();
        }
    });
    pasteButton.setText("Paste");

    final Button refreshButton = new Button(group, SWT.NONE);
    refreshButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent e) {
            beanViewer.refresh();
        }
    });
    refreshButton.setText("Refresh");

    beanViewer = new TreeViewer(shell, SWT.FULL_SELECTION | SWT.BORDER);
    beanViewer.setUseHashlookup(true);
    beanViewer.setComparator(new ViewerComparator());
    tree = beanViewer.getTree();
    tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));

    final Label itemNameLabel = new Label(shell, SWT.NONE);
    itemNameLabel.setText("Item Name");

    beanText = new Text(shell, SWT.BORDER);
    final GridData gd_beanValue = new GridData(SWT.FILL, SWT.CENTER, true, false);
    beanText.setLayoutData(gd_beanValue);
    m_bindingContext = initDataBindings();
    //
    initExtraBindings(m_bindingContext);
}

From source file:org.eclipse.ease.modules.unittest.ui.editor.Components.java

License:Open Source License

/**
 * Create contents of the form./*from  ww  w  . j a  v  a2 s.c  om*/
 *
 * @param managedForm
 */
@Override
protected void createFormContent(final IManagedForm managedForm) {
    super.createFormContent(managedForm);

    final GridLayout gridLayout = new GridLayout(5, false);
    managedForm.getForm().getBody().setLayout(gridLayout);

    final Label lblNewLabel = new Label(managedForm.getForm().getBody(), SWT.NONE);
    final GridData gd_lblNewLabel = new GridData(SWT.LEFT, SWT.CENTER, false, false, 4, 1);
    gd_lblNewLabel.verticalIndent = 10;
    lblNewLabel.setLayoutData(gd_lblNewLabel);
    managedForm.getToolkit().adapt(lblNewLabel, true, true);
    lblNewLabel.setText("Select all test files that should be included in this suite.");
    new Label(managedForm.getForm().getBody(), SWT.NONE);

    final Section sctnIncludedTests = managedForm.getToolkit().createSection(managedForm.getForm().getBody(),
            ExpandableComposite.TITLE_BAR);
    sctnIncludedTests.setDescription("");
    sctnIncludedTests.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 7));
    managedForm.getToolkit().paintBordersFor(sctnIncludedTests);
    sctnIncludedTests.setText("Included Tests");

    final Composite composite = managedForm.getToolkit().createComposite(sctnIncludedTests, SWT.NONE);
    managedForm.getToolkit().paintBordersFor(composite);
    sctnIncludedTests.setClient(composite);
    composite.setLayout(new FillLayout(SWT.HORIZONTAL));

    final Tree tree = managedForm.getToolkit().createTree(composite, SWT.NONE | SWT.CHECK);
    managedForm.getToolkit().paintBordersFor(tree);
    new Label(managedForm.getForm().getBody(), SWT.NONE);
    new Label(managedForm.getForm().getBody(), SWT.NONE);
    new Label(managedForm.getForm().getBody(), SWT.NONE);
    new Label(managedForm.getForm().getBody(), SWT.NONE);
    new Label(managedForm.getForm().getBody(), SWT.NONE);

    managedForm.getToolkit().createLabel(managedForm.getForm().getBody(), "Use at max.", SWT.NONE);

    // tree viewer for tests
    fTestTree = new ContainerCheckedTreeViewer(tree);
    fTestTree.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(final DoubleClickEvent event) {
            final IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            if (!selection.isEmpty()) {
                final Object element = selection.getFirstElement();
                if (element instanceof IFile) {
                    try {
                        UIModule.showEditor((IFile) element);
                    } catch (final Throwable e) {
                        // TODO handle this exception (but for now, at least know it happened)
                        throw new RuntimeException(e);
                    }
                }
            }
        }
    });
    fTestTree.setContentProvider(new WorkbenchContentProvider());
    fTestTree.setLabelProvider(new WorkbenchLabelProvider());
    fTestTree.addFilter(new ViewerFilter() {

        @Override
        public boolean select(final Viewer viewer, final Object parentElement, final Object element) {
            // hide config elements

            if (element instanceof IResource) {
                if (((IResource) element).getName().startsWith("."))
                    return false;

                // show containers
                if (element instanceof IContainer)
                    return containsScript((IContainer) element);

                // check for script
                return isScript((IResource) element);
            }

            return true;
        }

        private boolean isScript(final IResource resource) {
            return (resource instanceof IFile) && (resource.toString().toLowerCase().endsWith(".js"));
        }

        private boolean containsScript(final IContainer container) {
            try {
                for (final IResource resource : container.members()) {
                    if (resource instanceof IContainer) {
                        if (containsScript((IContainer) resource))
                            return true;
                    } else if (isScript(resource))
                        return true;
                }
            } catch (final CoreException e) {
            }

            return false;
        }
    });
    fTestTree.setComparator(new ViewerComparator() {
        @Override
        public int category(final Object element) {
            return (element instanceof IContainer) ? 0 : 1;
        }
    });

    spinner = new Spinner(managedForm.getForm().getBody(), SWT.BORDER);
    spinner.setPageIncrement(5);
    spinner.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1));
    spinner.setMinimum(1);
    spinner.setSelection(1);
    managedForm.getToolkit().adapt(spinner);
    managedForm.getToolkit().paintBordersFor(spinner);
    spinner.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(final ModifyEvent e) {

            final int maxThreads = getModel().getFlag(TestSuiteModel.FLAG_MAX_THREADS, 1);
            if (spinner.getSelection() != maxThreads) {
                getModel().setFlag(TestSuiteModel.FLAG_MAX_THREADS, spinner.getSelection());
                setDirty();
            }
        }
    });

    managedForm.getToolkit().createLabel(managedForm.getForm().getBody(), "instances in parallel", SWT.NONE);
    new Label(managedForm.getForm().getBody(), SWT.NONE);

    final Label lblTestVisualization = new Label(managedForm.getForm().getBody(), SWT.NONE);
    lblTestVisualization.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1));
    managedForm.getToolkit().adapt(lblTestVisualization, true, true);
    lblTestVisualization.setText("Test Visualization");
    new Label(managedForm.getForm().getBody(), SWT.NONE);

    combo = new Combo(managedForm.getForm().getBody(), SWT.READ_ONLY);
    combo.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            fVisualizationIdentifier = combo.getText();
        }
    });
    final GridData gd_combo = new GridData(SWT.FILL, SWT.TOP, false, false, 3, 1);
    gd_combo.horizontalIndent = 20;
    combo.setLayoutData(gd_combo);
    managedForm.getToolkit().adapt(combo);
    managedForm.getToolkit().paintBordersFor(combo);
    combo.setItems(new String[] { VISUALIZATION_GUI, VISUALIZATION_SYSOUT, VISUALIZATION_NONE });
    combo.setText(combo.getItem(0));
    new Label(managedForm.getForm().getBody(), SWT.NONE);

    btnPromoteErrorsToFailures = managedForm.getToolkit().createButton(managedForm.getForm().getBody(),
            "Promote errors to failures (stops test file)", SWT.CHECK);
    btnPromoteErrorsToFailures.setToolTipText(
            "Raised a failure instead of an error. If set, test file execution will stop on the first error.");
    btnPromoteErrorsToFailures.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent e) {
            getModel().setFlag(TestSuiteModel.FLAG_PROMOTE_ERRORS_TO_FAILURES,
                    btnPromoteErrorsToFailures.getSelection());
            setDirty();
        }
    });
    btnPromoteErrorsToFailures.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 3, 1));
    new Label(managedForm.getForm().getBody(), SWT.NONE);

    btnStopSuiteOnFailure = managedForm.getToolkit().createButton(managedForm.getForm().getBody(),
            "Stop suite on failure", SWT.CHECK);
    btnStopSuiteOnFailure.setToolTipText(
            "Stops test suite execution upon a failure. If not set, the next test file will be executed.");
    btnStopSuiteOnFailure.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent e) {
            getModel().setFlag(TestSuiteModel.FLAG_STOP_SUITE_ON_FAILURE, btnStopSuiteOnFailure.getSelection());
            setDirty();
        }
    });
    btnStopSuiteOnFailure.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 3, 1));
    new Label(managedForm.getForm().getBody(), SWT.NONE);

    fbutton = managedForm.getToolkit().createButton(managedForm.getForm().getBody(),
            "Execute teardown on failure", SWT.CHECK);
    fbutton.setSelection(true);
    fbutton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent e) {
            getModel().setFlag(TestSuiteModel.FLAG_EXECUTE_TEARDOWN_ON_FAILURE, fbutton.getSelection());
            setDirty();
        }
    });
    fbutton.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 3, 1));

    fTestTree.setInput(getModel().getFile().getProject());

    fTestTree.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(final CheckStateChangedEvent event) {
            final TestSuiteModel model = getModel();
            model.getTestFiles().clear();

            for (final Object object : fTestTree.getCheckedElements()) {
                if (object instanceof IFile)
                    model.addTestFile(ResourceTools.toProjectRelativeLocation(object, null));
            }

            setDirty();
        }
    });
}

From source file:org.eclipse.ease.modules.unittest.ui.views.UnitTestView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    parent.setLayout(new GridLayout(1, false));

    final Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout(8, false));
    composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));

    fResourceManager = new LocalResourceManager(JFaceResources.getResources(), composite);

    final Label lblErrorIcon = new Label(composite, SWT.NONE);
    final GridData gdLblErrorIcon = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gdLblErrorIcon.horizontalIndent = 50;
    lblErrorIcon.setLayoutData(gdLblErrorIcon);
    lblErrorIcon.setImage(fResourceManager.createImage(Activator.getImageDescriptor(Activator.ICON_ERROR)));

    final Label lblErrors = new Label(composite, SWT.NONE);
    lblErrors.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    lblErrors.setAlignment(SWT.CENTER);//ww w  .j  ava 2 s.  c o m
    lblErrors.setText("Errors:");

    lblErrorCount = new Label(composite, SWT.NONE);
    final GridData gd_lblErrorCount = new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1);
    gd_lblErrorCount.horizontalIndent = 20;
    lblErrorCount.setLayoutData(gd_lblErrorCount);

    final Label lblFailureIcon = new Label(composite, SWT.NONE);
    final GridData gdLblFailureIcon = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gdLblFailureIcon.horizontalIndent = 50;
    lblFailureIcon.setLayoutData(gdLblFailureIcon);
    lblFailureIcon.setImage(fResourceManager.createImage(Activator.getImageDescriptor(Activator.ICON_FAILURE)));

    final Label lblFailures = new Label(composite, SWT.NONE);
    lblFailures.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    lblFailures.setAlignment(SWT.CENTER);
    lblFailures.setText("Failures:");

    lblFailureCount = new Label(composite, SWT.NONE);
    final GridData gdLblFailureCount = new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1);
    gdLblFailureCount.horizontalIndent = 20;
    lblFailureCount.setLayoutData(gdLblFailureCount);

    lblTimeLeftText = new Label(composite, SWT.NONE);
    final GridData gdLabel = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gdLabel.horizontalIndent = 50;
    lblTimeLeftText.setLayoutData(gdLabel);
    lblTimeLeftText.setText("Time left: ");
    lblTimeLeftText.setVisible(false);

    lblTimeLeft = new Label(composite, SWT.NONE);
    final GridData gdLblTimeLeft = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gdLblTimeLeft.horizontalIndent = 20;
    lblTimeLeft.setLayoutData(gdLblTimeLeft);
    lblTimeLeft.setVisible(false);

    fProgressBar = new ProgressBar(parent, SWT.NONE);
    fProgressBar.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));

    sashForm = new SashForm(parent, SWT.NONE);
    sashForm.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    sashForm.setOrientation(SWT.VERTICAL);

    fFileTreeViewer = new TreeViewer(sashForm, SWT.BORDER | SWT.MULTI);
    fFileTreeViewer.setContentProvider(new TestSuiteContentProvider());

    fFileTreeViewer.setComparator(new ViewerComparator() {
        @Override
        public final int category(final Object element) {
            if (element instanceof TestFile)
                return 1;

            return 0;
        }
    });

    // use a decorated label provider
    final LabelProvider provider = new TestSuiteLabelProvider(fResourceManager);
    fFileTreeViewer.setLabelProvider(new DecoratedLabelProvider(provider));

    fFileTreeViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(final DoubleClickEvent event) {
            try {
                final Object element = ((IStructuredSelection) event.getSelection()).getFirstElement();
                if (element instanceof TestFile) {
                    final Object file = ((TestFile) element).getFile();
                    if (file instanceof IFile)
                        UIModule.showEditor((IFile) ((TestFile) element).getFile());

                } else if (element instanceof TestSuite)
                    UIModule.showEditor(((TestSuite) element).getModel().getFile());

            } catch (final Throwable e) {
                // TODO handle this exception (but for now, at least know it happened)
                throw new RuntimeException(e);

            }
        }
    });
    fFileTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            final ITreeSelection selection = (ITreeSelection) event.getSelection();
            final Object element = selection.getFirstElement();

            if (element instanceof TestComposite) {
                // test set selected
                fTestTreeViewer.setInput(element);

                if (sashForm.getWeights()[1] == 0)
                    sashForm.setWeights(fSashWeights);

                fTestTreeViewer.refresh();

            } else {
                // test container selected, or no selection at all
                fTestTreeViewer.setInput(null);

                if (sashForm.getWeights()[1] != 0)
                    fSashWeights = sashForm.getWeights();

                sashForm.setWeights(new int[] { 100, 0 });
            }
        }
    });

    // create tree viewer for tests
    fTestTreeViewer = createTestArea(sashForm);

    sashForm.setWeights(new int[] { 1, 1 });

    // add context menu support
    final MenuManager menuManager = new MenuManager();
    final Menu menu = menuManager.createContextMenu(fFileTreeViewer.getTree());
    fFileTreeViewer.getTree().setMenu(menu);
    getSite().registerContextMenu(menuManager, fFileTreeViewer);

    final MenuManager menuManager2 = new MenuManager();
    final Menu menu2 = menuManager2.createContextMenu(fFileTreeViewer.getTree());
    fTestTreeViewer.getTree().setMenu(menu2);
    getSite().registerContextMenu(menuManager2, fTestTreeViewer);

    // add collapseAll/expandAll handlers
    final IHandlerService handlerService = getSite().getService(IHandlerService.class);
    mCollapseAllHandler = new CollapseAllHandler(fFileTreeViewer);
    handlerService.activateHandler(CollapseAllHandler.COMMAND_ID, mCollapseAllHandler);
    mExpandAllHandler = new ExpandAllHandler(fFileTreeViewer);
    handlerService.activateHandler(ExpandAllHandler.COMMAND_ID, mExpandAllHandler);

    // menuManager.setRemoveAllWhenShown(true);

    // load last suite
    if (mMemento != null) {
        final IMemento currentSuiteNode = mMemento.getChild(XML_CURRENT_SUITE);
        if (currentSuiteNode != null) {
            final Path path = new Path(currentSuiteNode.getTextData());
            final IFile suiteFile = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
            try {
                loadSuite(new TestSuite(new TestSuiteModel(suiteFile)));
            } catch (final Exception e) {
                // loading failed, ignore
            }
        }
    }

    // register for console events
    ConsolePlugin.getDefault().getConsoleManager().addConsoleListener(UnitTestView.this);

    final MultiSelectionProvider selectionProvider = new MultiSelectionProvider();
    selectionProvider.addSelectionProvider(fFileTreeViewer);
    selectionProvider.addSelectionProvider(fTestTreeViewer);

    getSite().setSelectionProvider(selectionProvider);
}

From source file:org.eclipse.ease.ui.modules.ui.ModulesComposite.java

License:Open Source License

/**
 * Create the composite./* w  w  w .j a  v a2  s .co  m*/
 * 
 * @param parent
 * @param style
 * @param modulesOnly
 *            if true only the modules are shown in the tree. if false also
 *            the fields and functions are shown.
 */
public ModulesComposite(Composite parent, int style, boolean modulesOnly) {
    super(parent, style);

    treeViewer = new TreeViewer(this, SWT.NONE);

    this.setLayout(new FillLayout(SWT.HORIZONTAL));
    treeViewer.getTree().setLayout(new FillLayout(SWT.HORIZONTAL));

    ColumnViewerToolTipSupport.enableFor(treeViewer);

    // use a decorated label provider
    treeViewer.setLabelProvider(new ModulesDecoratedLabelProvider(new ModulesLabelProvider()));

    treeViewer.setContentProvider(new ModulesContentProvider(modulesOnly));

    treeViewer.setComparator(new ViewerComparator() {
        @Override
        public int category(Object element) {
            if ((element instanceof IPath))
                return 1;
            if ((element instanceof ModuleDefinition))
                return 2;
            if ((element instanceof Field))
                return 2;
            if ((element instanceof Method))
                return 3;
            return 4;

        }
    });

    treeViewer.addDragSupport(DND.DROP_COPY, new Transfer[] { TextTransfer.getInstance() },
            new ModulesDragListener(treeViewer));

}

From source file:org.eclipse.ease.ui.scripts.ui.ScriptComposite.java

License:Open Source License

/**
 * Constructor creating the script tree viewer.
 * /*from   w  w  w. j  a  v a  2s.  c om*/
 * @param engineProvider
 *            component providing script support
 * @param site
 *            site to implement this component on
 * @param parent
 *            parent SWT element
 * @param style
 *            composite style flags
 */
public ScriptComposite(final IScriptEngineProvider engineProvider, final IWorkbenchPartSite site,
        final Composite parent, final int style) {
    super(parent, style);
    fEngineProvider = engineProvider;

    setLayout(new FillLayout(SWT.HORIZONTAL));

    treeViewer = new TreeViewer(this, SWT.BORDER);

    treeViewer.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(final Object element) {
            if (element instanceof IPath)
                return ((IPath) element).lastSegment();

            if (element instanceof IScript)
                return ((IScript) element).getName();

            return super.getText(element);
        }

        @Override
        public Image getImage(final Object element) {
            if (element instanceof IPath)
                return Activator.getImage("org.eclipse.ui", "/icons/full/obj16/fldr_obj.gif", true);

            if (element instanceof IScript)
                return Activator.getImage("org.eclipse.ease.ui", "/images/script.gif", true);

            return super.getImage(element);
        }
    });
    treeViewer.setContentProvider(new ScriptContentProvider());

    treeViewer.setComparator(new ViewerComparator() {
        @Override
        public int category(final Object element) {
            return (element instanceof IPath) ? 0 : 1;
        }

        // @Override
        // public int compare(Viewer viewer, Object e1, Object e2) {
        // super.compare(viewer, e1, e2)
        // return e1.toString().compareTo(e2.toString());
        // }
    });

    final IRepositoryService repositoryService = (IRepositoryService) PlatformUI.getWorkbench()
            .getService(IRepositoryService.class);
    treeViewer.setInput(repositoryService);

    if (fDoubleClickListener != null)
        treeViewer.addDoubleClickListener(fDoubleClickListener);

    // add listener for script repository changes
    repositoryService.addScriptListener(this);

    // add context menu support
    final MenuManager menuManager = new MenuManager();
    final Menu menu = menuManager.createContextMenu(treeViewer.getTree());
    treeViewer.getTree().setMenu(menu);
    site.registerContextMenu(menuManager, treeViewer);
    site.setSelectionProvider(treeViewer);

    // add dynamic context menu entries
    final IMenuService menuService = (IMenuService) PlatformUI.getWorkbench().getService(IMenuService.class);
    menuService.addContributionFactory(new ScriptContextMenuEntries("popup:" + site.getId()));
    menuManager.setRemoveAllWhenShown(true);

    // add DND support
    ScriptDragSource.addDragSupport(treeViewer);

    // register for change events
    repositoryService.addScriptListener(this);
}