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:com.salesforce.ide.ui.views.log.LogView.java

License:Open Source License

private ViewerComparator getViewerComparator(byte sortType) {
    if (sortType == SEVERITY) {
        return new ViewerComparator() {
            @Override//from  w  ww . j a v a 2 s  .c  o  m
            public int compare(Viewer viewer, Object e1, Object e2) {
                if ((e1 instanceof LogEntry) && (e2 instanceof LogEntry)) {
                    LogEntry entry1 = (LogEntry) e1;
                    LogEntry entry2 = (LogEntry) e2;
                    if (entry1.getSeverity() == entry2.getSeverity()) {
                        return 0;
                    } else if (entry1.getSeverity() > entry2.getSeverity()) {
                        return 1 * severityOrder;
                    } else {
                        return -1 * severityOrder;
                    }
                }
                return 0;
            }
        };
    } else if (sortType == MESSAGE) {
        return new ViewerComparator() {
            @Override
            public int compare(Viewer viewer, Object e1, Object e2) {
                if ((e1 instanceof LogEntry) && (e2 instanceof LogEntry)) {
                    LogEntry entry1 = (LogEntry) e1;
                    LogEntry entry2 = (LogEntry) e2;
                    return String.CASE_INSENSITIVE_ORDER.compare(entry1.getMessage(true),
                            entry2.getMessage(true)) * messageOrder;
                }
                return 0;
            }
        };
    } else {
        return new ViewerComparator() {
            @Override
            public int compare(Viewer viewer, Object e1, Object e2) {
                long date1 = 0;
                long date2 = 0;
                if ((e1 instanceof LogEntry) && (e2 instanceof LogEntry)) {
                    date1 = ((LogEntry) e1).getDate().getTime();
                    date2 = ((LogEntry) e2).getDate().getTime();
                }

                if (date1 == date2) {
                    int result = logEntries.indexOf(e2) - logEntries.indexOf(e1);
                    if (dateOrder == DESCENDING)
                        result *= DESCENDING;
                    return result;
                }
                if (dateOrder == DESCENDING)
                    return date1 > date2 ? DESCENDING : ASCENDING;
                return date1 < date2 ? DESCENDING : ASCENDING;
            }
        };
    }
}

From source file:com.siteview.mde.internal.runtime.registry.RegistryBrowser.java

License:Open Source License

private void createTreeViewer(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = layout.marginWidth = 0;
    composite.setLayout(layout);//from w w w  . ja va2  s.co  m
    composite.setLayoutData(new GridData(GridData.FILL_BOTH));

    fFilteredTree = new RegistryFilteredTree(this, composite, SWT.MULTI, new PatternFilter());

    fFilteredTree.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
    Tree tree = fFilteredTree.getViewer().getTree();
    GridData gd = new GridData(GridData.FILL_BOTH);
    fFilteredTree.setLayoutData(gd);
    fTreeViewer = fFilteredTree.getViewer();
    fContentProvider = new RegistryBrowserContentProvider(this);
    fTreeViewer.setContentProvider(fContentProvider);
    fLabelProvider = new RegistryBrowserLabelProvider(this);
    fTreeViewer.setLabelProvider(fLabelProvider);
    fTreeViewer.setUseHashlookup(true);
    fTreeViewer.setComparator(new ViewerComparator() {
        public int compare(Viewer viewer, Object e1, Object e2) {
            // let Comparables compare themselves
            if (e1 instanceof Comparable && e2 instanceof Comparable && e1.getClass().equals(e2.getClass())) {
                Comparable c1 = (Comparable) e1;
                Comparable c2 = (Comparable) e2;

                return c1.compareTo(c2);
            }

            if (e1 instanceof Folder && e2 instanceof Folder)
                return ((Folder) e1).getId() - ((Folder) e2).getId();
            if (e1 instanceof Bundle && e2 instanceof Bundle) {
                e1 = ((Bundle) e1).getSymbolicName();
                e2 = ((Bundle) e2).getSymbolicName();
            }
            return super.compare(viewer, e1, e2);
        }
    });
    if (fShowPluginsAction.isChecked())
        fTreeViewer.addFilter(fActiveFilter);

    if (fShowDisabledAction.isChecked())
        fTreeViewer.addFilter(fDisabledFilter);

    initializeModel();

    PlatformUI.getWorkbench().getHelpSystem().setHelp(fTreeViewer.getControl(), IHelpContextIds.REGISTRY_VIEW);

    getViewSite().setSelectionProvider(fTreeViewer);

    MenuManager popupMenuManager = new MenuManager();
    IMenuListener listener = new IMenuListener() {
        public void menuAboutToShow(IMenuManager mng) {
            fillContextMenu(mng);
        }
    };
    popupMenuManager.setRemoveAllWhenShown(true);
    popupMenuManager.addMenuListener(listener);
    Menu menu = popupMenuManager.createContextMenu(tree);
    tree.setMenu(menu);
}

From source file:com.siteview.mde.internal.ui.compare.MonitorStructureViewerCreator.java

License:Open Source License

public Viewer createViewer(Composite parent, CompareConfiguration config) {
    StructureDiffViewer viewer = new StructureDiffViewer(parent, config);
    viewer.setStructureCreator(new MonitorStructureCreator());
    viewer.setComparator(new ViewerComparator() {
        public int compare(Viewer viewer, Object e1, Object e2) {
            if (e1 instanceof DiffNode) {
                if (e2 instanceof DiffNode) {
                    ITypedElement e1Element = ((DiffNode) e1).getAncestor();
                    ITypedElement e2Element = ((DiffNode) e2).getAncestor();
                    if (!(e1Element instanceof DocumentRangeNode))
                        e1Element = ((DiffNode) e1).getLeft();
                    if (!(e2Element instanceof DocumentRangeNode))
                        e2Element = ((DiffNode) e2).getLeft();
                    if (e1Element instanceof DocumentRangeNode && e2Element instanceof DocumentRangeNode) {
                        float e1off = getRelativeOffset(((DocumentRangeNode) e1Element));
                        float e2off = getRelativeOffset(((DocumentRangeNode) e2Element));
                        return e1off - e2off < 0 ? -1 : 1;
                    }/*from  ww  w  .  ja va  2  s.c om*/
                    return 0;
                }
                return -1;
            }
            return 1;
        }

        // we may be comparing the ancestor to the left (local) document
        // since the lengths may be different, base the comparison on the relative position in the doc
        private float getRelativeOffset(DocumentRangeNode node) {
            float absoluteOffset = node.getRange().getOffset();
            float documentLength = node.getDocument().getLength();
            return absoluteOffset / documentLength;
        }
    });
    return viewer;
}

From source file:com.siteview.mde.internal.ui.editor.actions.SortAction.java

License:Open Source License

/**
 * @param viewer//from  w  w w.  j a va2 s.c o  m
 * @param tooltipText
 * @param sorter
 * @param defaultSorter
 * @param listener
 * @param useMiniImage
 */
public SortAction(StructuredViewer viewer, String tooltipText, ViewerComparator sorter,
        ViewerComparator defaultSorter, IPropertyChangeListener listener) {

    super(tooltipText, IAction.AS_CHECK_BOX);
    // Set the tooltip
    setToolTipText(tooltipText);
    // Set the image
    setImageDescriptor(MDEPluginImages.DESC_ALPHAB_SORT_CO);
    // Set the default comparator
    fDefaultComparator = defaultSorter;
    // Set the viewer
    fViewer = viewer;
    // Set the comparator
    // If one was not specified, use the default
    if (sorter == null) {
        fComparator = new ViewerComparator();
    } else {
        fComparator = sorter;
    }
    // Determine if the viewer is already sorted
    // Note: Most likely the default comparator is null
    if (viewer.getComparator() == fDefaultComparator) {
        fSorted = false;
    } else {
        fSorted = true;
    }
    // Set the status of this action depending on whether it is sorted or
    // not
    setChecked(fSorted);
    // If a listener was specified, use it
    if (listener != null) {
        addListenerObject(listener);
    }
}

From source file:com.siteview.mde.internal.ui.editor.KeyValueSourcePage.java

License:Open Source License

public ViewerComparator createDefaultOutlineComparator() {
    return new ViewerComparator() {
        public int compare(Viewer viewer, Object e1, Object e2) {
            if ((e1 instanceof IDocumentKey) && (e2 instanceof IDocumentKey)) {
                IDocumentKey key1 = (IDocumentKey) e1;
                IDocumentKey key2 = (IDocumentKey) e2;
                return key1.getOffset() < key2.getOffset() ? -1 : 1;
            }//from  w ww  .java 2  s .  co m
            // Bundle manifest header elements
            // Do not sort by default
            return 0;
        }
    };
}

From source file:com.siteview.mde.internal.ui.editor.KeyValueSourcePage.java

License:Open Source License

public ViewerComparator createOutlineComparator() {
    return new ViewerComparator();
}

From source file:com.siteview.mde.internal.ui.editor.monitor.ExportPackageSection.java

License:Open Source License

protected void createClient(Section section, FormToolkit toolkit) {
    section.setText(MDEUIMessages.ExportPackageSection_title);
    if (isFragment())
        section.setDescription(MDEUIMessages.ExportPackageSection_descFragment);
    else//  w  w w  .  j  a v  a2s . c  om
        section.setDescription(MDEUIMessages.ExportPackageSection_desc);

    Composite container = createClientContainer(section, 2, toolkit);
    createViewerPartControl(container, SWT.MULTI, 2, toolkit);
    TablePart tablePart = getTablePart();
    fPackageViewer = tablePart.getTableViewer();
    fPackageViewer.setContentProvider(new ExportPackageContentProvider());
    fPackageViewer.setLabelProvider(MDEPlugin.getDefault().getLabelProvider());
    fPackageViewer.setComparator(new ViewerComparator() {
        public int compare(Viewer viewer, Object e1, Object e2) {
            String s1 = e1.toString();
            String s2 = e2.toString();
            if (s1.indexOf(" ") != -1) //$NON-NLS-1$
                s1 = s1.substring(0, s1.indexOf(" ")); //$NON-NLS-1$
            if (s2.indexOf(" ") != -1) //$NON-NLS-1$
                s2 = s2.substring(0, s2.indexOf(" ")); //$NON-NLS-1$
            return super.compare(viewer, s1, s2);
        }
    });
    toolkit.paintBordersFor(container);
    section.setClient(container);
    GridData gd = new GridData(GridData.FILL_BOTH);
    if (((ManifestEditor) getPage().getEditor()).isEquinox()) {
        gd.verticalSpan = 2;
        gd.minimumWidth = 300;
    }
    section.setLayout(FormLayoutFactory.createClearGridLayout(false, 1));
    section.setLayoutData(gd);
    makeActions();

    IBundleModel model = getBundleModel();
    fPackageViewer.setInput(model);
    model.addModelChangedListener(this);
    updateButtons();
}

From source file:com.siteview.mde.internal.ui.editor.monitor.ImportPackageSection.java

License:Open Source License

protected void createClient(Section section, FormToolkit toolkit) {
    section.setText(MDEUIMessages.ImportPackageSection_required);
    if (isFragment())
        section.setDescription(MDEUIMessages.ImportPackageSection_descFragment);
    else/*from  w w  w .ja v  a2  s . c o  m*/
        section.setDescription(MDEUIMessages.ImportPackageSection_desc);

    Composite container = createClientContainer(section, 2, toolkit);
    createViewerPartControl(container, SWT.MULTI, 2, toolkit);
    TablePart tablePart = getTablePart();
    fPackageViewer = tablePart.getTableViewer();
    fPackageViewer.setContentProvider(new ImportPackageContentProvider());
    fPackageViewer.setLabelProvider(new MDELabelProvider() {

        public Image getObjectImage(PackageObject obj) {
            if (!(obj instanceof ImportPackageObject))
                return super.getObjectImage(obj);
            int flags = 0;
            if (((ImportPackageObject) obj).isOptional())
                flags = SharedLabelProvider.F_OPTIONAL;
            ImageDescriptor desc = JavaUI.getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJS_PACKAGE);
            return get(desc, flags);
        }

    });
    fPackageViewer.setComparator(new ViewerComparator() {
        public int compare(Viewer viewer, Object e1, Object e2) {
            String s1 = e1.toString();
            String s2 = e2.toString();
            if (s1.indexOf(" ") != -1) //$NON-NLS-1$
                s1 = s1.substring(0, s1.indexOf(" ")); //$NON-NLS-1$
            if (s2.indexOf(" ") != -1) //$NON-NLS-1$
                s2 = s2.substring(0, s2.indexOf(" ")); //$NON-NLS-1$
            return super.compare(viewer, s1, s2);
        }
    });
    toolkit.paintBordersFor(container);
    section.setClient(container);
    section.setLayout(FormLayoutFactory.createClearGridLayout(false, 1));
    section.setLayoutData(new GridData(GridData.FILL_BOTH));
    makeActions();

    IBundleModel model = getBundleModel();
    fPackageViewer.setInput(model);
    model.addModelChangedListener(this);
    updateButtons();
}

From source file:com.siteview.mde.internal.ui.editor.monitor.LibraryVisibilitySection.java

License:Open Source License

private void createPackageViewer(Composite parent, FormToolkit toolkit) {
    fPackageExportContainer = toolkit.createComposite(parent);
    fPackageExportContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
    GridLayout layout = new GridLayout();
    layout.marginWidth = 0;// www .j  a  va 2s .co  m
    layout.marginHeight = 0;
    layout.numColumns = 2;
    fPackageExportContainer.setLayout(layout);
    fPackageExportContainer.setLayoutData(new GridData(GridData.FILL_BOTH));

    EditableTablePart tablePart = getTablePart();
    tablePart.setEditable(getPage().getModel().isEditable());
    createViewerPartControl(fPackageExportContainer, SWT.FULL_SELECTION, 2, toolkit);
    fPackageExportViewer = tablePart.getTableViewer();
    fPackageExportViewer.setContentProvider(new TableContentProvider());
    fPackageExportViewer.setLabelProvider(new TableLabelProvider());
    fPackageExportViewer.setComparator(new ViewerComparator());
    toolkit.paintBordersFor(parent);
}

From source file:com.siteview.mde.internal.ui.editor.product.JRESection.java

License:Open Source License

protected void createClient(Section section, FormToolkit toolkit) {

    section.setLayout(FormLayoutFactory.createClearGridLayout(false, 1));
    GridData data = new GridData(GridData.FILL_HORIZONTAL);
    data.horizontalSpan = 2;/*from w ww. ja  va2  s.c  om*/
    section.setLayoutData(data);

    section.setText(MDEUIMessages.ProductJRESection_title);
    section.setDescription(MDEUIMessages.ProductJRESection_desc);

    Composite client = toolkit.createComposite(section);
    client.setLayout(FormLayoutFactory.createSectionClientGridLayout(false, 3));
    client.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    fTabFolder = new CTabFolder(client, SWT.FLAT | SWT.TOP);
    toolkit.adapt(fTabFolder, true, true);
    GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
    fTabFolder.setLayoutData(gd);
    gd.heightHint = 2;
    gd.horizontalSpan = 3;
    gd.grabExcessHorizontalSpace = true;
    toolkit.getColors().initializeSectionToolBarColors();
    Color selectedColor = toolkit.getColors().getColor(IFormColors.TB_BG);
    fTabFolder.setSelectionBackground(new Color[] { selectedColor, toolkit.getColors().getBackground() },
            new int[] { 100 }, true);

    fTabFolder.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            refresh();
        }
    });
    fTabFolder.setUnselectedImageVisible(false);

    FormText text = toolkit.createFormText(client, false);
    text.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
    text.setText(MDEUIMessages.ProductJRESection_eeName, false, false);

    fEEsCombo = new ComboViewerPart();
    fEEsCombo.createControl(client, toolkit, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY);
    fEEsCombo.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    fEEsCombo.setLabelProvider(new EELabelProvider());
    fEEsCombo.setComparator(new ViewerComparator());
    fEEsCombo.setItems(VMUtil.getExecutionEnvironments());
    fEEsCombo.addItem("", 0); //$NON-NLS-1$
    fEEsCombo.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            if (!fBlockChanges) {
                Object selection = ((IStructuredSelection) event.getSelection()).getFirstElement();
                setEE(selection instanceof IExecutionEnvironment ? (IExecutionEnvironment) selection : null);
                fEEButton.setEnabled(selection instanceof IExecutionEnvironment);
            }
        }
    });
    fEEsCombo.setEnabled(isEditable());

    fExecutionEnvironmentsButton = toolkit.createButton(client, MDEUIMessages.ProductJRESection_browseEEs,
            SWT.PUSH);
    GridDataFactory.fillDefaults().applyTo(fExecutionEnvironmentsButton);
    fExecutionEnvironmentsButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            PreferencesUtil
                    .createPreferenceDialogOn(getSection().getShell(), "org.eclipse.jdt.debug.ui.jreProfiles", //$NON-NLS-1$
                            new String[] { "org.eclipse.jdt.debug.ui.jreProfiles" }, null) //$NON-NLS-1$
                    .open();
        }
    });
    fExecutionEnvironmentsButton.setEnabled(isEditable());

    fEEButton = toolkit.createButton(client, MDEUIMessages.ProdctJRESection_bundleJRE, SWT.CHECK);
    GridData buttonLayout = new GridData(GridData.FILL_HORIZONTAL);
    buttonLayout.horizontalSpan = 2;
    fEEButton.setLayoutData(buttonLayout);
    fEEButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            getJVMLocations().setIncludeJREWithProduct(getOS(fLastTab), fEEButton.getSelection());
        }
    });
    fEEButton.setEnabled(isEditable());

    createTabs();
    toolkit.paintBordersFor(client);
    section.setClient(client);
    // Register to be notified when the model changes
    getProductModel().addModelChangedListener(this);
}