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.epp.internal.mpc.ui.wizards.FeatureSelectionWizardPage.java

License:Open Source License

public void createControl(Composite parent) {
    Composite container = new Composite(parent, SWT.NULL);
    GridLayoutFactory.fillDefaults().numColumns(1).applyTo(container);

    Composite treeContainer = new Composite(container, SWT.NULL);
    GridDataFactory.fillDefaults().grab(true, true).align(SWT.FILL, SWT.FILL).applyTo(treeContainer);

    TreeColumnLayout columnLayout = new TreeColumnLayout();
    treeContainer.setLayout(columnLayout);

    viewer = new CheckboxTreeViewer(treeContainer,
            SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);

    viewer.setUseHashlookup(true);//ww  w .  ja  v  a  2 s.co m
    viewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            if (e1 == e2) {
                return 0;
            }
            String s1;
            String s2;
            if (e1 instanceof CatalogItemEntry) {
                s1 = ((CatalogItemEntry) e1).getItem().getName();
                s2 = ((CatalogItemEntry) e2).getItem().getName();
            } else {
                s1 = ((FeatureEntry) e1).getFeatureDescriptor().getName();
                s2 = ((FeatureEntry) e2).getFeatureDescriptor().getName();
            }
            int i = s1.compareToIgnoreCase(s2);
            if (i == 0) {
                i = s1.compareTo(s2);
                if (i == 0) {
                    i = new Integer(System.identityHashCode(e1)).compareTo(System.identityHashCode(e2));
                }
            }
            return i;
        }
    });
    viewer.setContentProvider(new ContentProvider());
    viewer.setInput(getWizard().getSelectionModel());
    viewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            if (event.getElement() instanceof CatalogItemEntry) {
                CatalogItemEntry entry = (CatalogItemEntry) event.getElement();
                for (FeatureEntry child : entry.getChildren()) {
                    child.setChecked(event.getChecked());
                }
            } else if (event.getElement() instanceof FeatureEntry) {
                ((FeatureEntry) event.getElement()).setChecked(event.getChecked());
            }
            computeCheckedViewerState();
            updateMessage();
            setPageComplete(computePageComplete());
        }
    });

    column = new TreeViewerColumn(viewer, SWT.NONE);
    column.setLabelProvider(new DelegatingStyledCellLabelProvider(new LabelProvider()));
    columnLayout.setColumnData(column.getColumn(), new ColumnWeightData(100, 100, true));

    detailsControl = new Group(container, SWT.SHADOW_IN);
    detailsControl.setText(Messages.FeatureSelectionWizardPage_details);
    GridDataFactory.fillDefaults().grab(true, false).hint(SWT.DEFAULT, 300).exclude(true)
            .applyTo(detailsControl);
    GridLayoutFactory.fillDefaults().applyTo(detailsControl);
    detailStatusText = new Text(detailsControl, SWT.MULTI | SWT.READ_ONLY | SWT.WRAP | SWT.V_SCROLL);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(detailStatusText);

    setControl(container);
    Dialog.applyDialogFont(container);
    MarketplaceClientUi.setDefaultHelp(getControl());
}

From source file:org.eclipse.equinox.p2.ui.AcceptLicensesWizardPage.java

License:Open Source License

private void createLicenseListSection(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginWidth = 0;/*from w ww.  j  av a2s .c  o  m*/
    layout.marginHeight = 0;
    composite.setLayout(layout);
    GridData gd = new GridData(GridData.FILL_BOTH);
    composite.setLayoutData(gd);

    Label label = new Label(composite, SWT.NONE);
    label.setText(ProvUIMessages.AcceptLicensesWizardPage_ItemsLabel);
    iuViewer = new TreeViewer(composite, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    iuViewer.setContentProvider(new LicenseContentProvider());
    iuViewer.setLabelProvider(new LicenseLabelProvider());
    iuViewer.setComparator(new ViewerComparator());
    iuViewer.setInput(licensesToIUs);

    iuViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            handleSelectionChanged((IStructuredSelection) event.getSelection());
        }

    });
    gd = new GridData(GridData.FILL_BOTH);
    gd.widthHint = convertWidthInCharsToPixels(ILayoutConstants.DEFAULT_PRIMARY_COLUMN_WIDTH);
    gd.heightHint = convertHeightInCharsToPixels(ILayoutConstants.DEFAULT_TABLE_HEIGHT);
    iuViewer.getControl().setLayoutData(gd);
}

From source file:org.eclipse.equinox.p2.ui.RevertProfilePage.java

License:Open Source License

private void createConfigurationsSection(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginWidth = 0;// w  ww. jav a 2s  . c  om
    layout.marginHeight = 0;
    composite.setLayout(layout);
    GridData gd = new GridData(GridData.FILL_BOTH);
    composite.setLayoutData(gd);

    Label label = new Label(composite, SWT.NONE);
    label.setText(ProvUIMessages.RevertDialog_ConfigsLabel);
    configsViewer = new TableViewer(composite,
            SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
    ProvElementContentProvider provider = new ProvElementContentProvider() {
        protected void finishedFetchingElements(Object o) {
            Object element = configsViewer.getElementAt(0);
            if (element != null)
                configsViewer.setSelection(new StructuredSelection(element));
        }
    };
    setConfigsColumns(configsViewer);

    // Use deferred fetch because getting snapshots is expensive.
    provider.setFetchInBackground(true);
    configsViewer.setContentProvider(provider);
    configsViewer.setLabelProvider(new ProvElementLabelProvider());
    configsViewer.setComparator(new ViewerComparator() {
        // We override the ViewerComparator so that we don't get the labels of the elements
        // for comparison, but rather get the timestamps and compare them.
        // Reverse sorting is used so that newest is first.
        public int compare(Viewer viewer, Object o1, Object o2) {
            if (o1 instanceof RollbackProfileElement && o2 instanceof RollbackProfileElement) {
                long timestamp1 = ((RollbackProfileElement) o1).getTimestamp();
                long timestamp2 = ((RollbackProfileElement) o2).getTimestamp();
                if (timestamp1 > timestamp2)
                    return -1;
                return 1;
            }
            // this is naive (doesn't consult the label provider), but shouldn't happen
            return o2.toString().compareTo(o1.toString());
        }
    });
    configsViewer.setInput(getInput());

    configsViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            handleSelectionChanged((IStructuredSelection) event.getSelection());
        }

    });
    CopyUtils.activateCopy(this, configsViewer.getControl());
    gd = new GridData(SWT.FILL, SWT.FILL, true, true);
    configsViewer.getControl().setLayoutData(gd);
}

From source file:org.eclipse.gyrex.admin.ui.jobs.internal.generic.GenericJobParameterPage.java

License:Open Source License

@Override
public void createControl(final Composite parent) {
    final Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(GridLayoutFactory.fillDefaults().create());
    composite.setLayoutData(GridDataFactory.fillDefaults()
            .minSize(convertVerticalDLUsToPixels(200), convertHorizontalDLUsToPixels(400)).create());
    setControl(composite);/*from  ww w. jav  a2  s . c  o  m*/

    parameterTable.setLabelText(String.format("Parameter for %s:", session.getJobTypeName()));
    parameterTable.setViewerComparator(new ViewerComparator());

    final IDialogFieldListener validateListener = new IDialogFieldListener() {
        @Override
        public void dialogFieldChanged(final DialogField field) {
            validate();
        }
    };

    parameterTable.setDialogFieldListener(validateListener);

    LayoutUtil.doDefaultLayout(composite, new DialogField[] { parameterTable }, true);
    LayoutUtil.setHorizontalGrabbing(parameterTable.getListControl(null));

    // initialize from existing parameter
    readParameterFromSession();
}

From source file:org.eclipse.gyrex.admin.ui.logback.internal.AppenderWizardPage.java

License:Open Source License

@Override
public void createControl(final Composite parent) {
    final Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(GridLayoutFactory.fillDefaults().create());
    composite.setLayoutData(GridDataFactory.fillDefaults()
            .minSize(convertVerticalDLUsToPixels(200), convertHorizontalDLUsToPixels(400)).create());
    setControl(composite);// ww w.  j a  va 2 s .com

    nameField.setLabelText("Name:");

    appenderTypeField.setLabelText("Type:");
    appenderTypeField.setViewerComparator(new ViewerComparator());

    final IDialogFieldListener validateListener = new IDialogFieldListener() {
        @Override
        public void dialogFieldChanged(final DialogField field) {
            validate();
        }
    };

    nameField.setDialogFieldListener(validateListener);
    appenderTypeField.setDialogFieldListener(validateListener);

    LayoutUtil.doDefaultLayout(composite, new DialogField[] { nameField, appenderTypeField }, false);
    LayoutUtil.setHorizontalGrabbing(nameField.getTextControl(null));
    LayoutUtil.setHorizontalGrabbing(appenderTypeField.getTreeControl(null));

    final List<AppenderType> types = new ArrayList<>();
    final AppenderProviderRegistry registry = LogbackConfigActivator.getInstance()
            .getAppenderProviderRegistry();
    for (final AppenderProvider provider : registry.getTracked().values()) {
        for (final String typeId : provider.getProvidedTypeIds()) {
            types.add(new AppenderType(typeId, registry.getName(typeId), provider));
        }
    }
    appenderTypeField.setElements(types);

    if (appender != null) {
        nameField.setText(appender.getName());
        for (final AppenderType type : types) {
            if (appender.getTypeId().equals(type.getId())) {
                appenderTypeField.selectElements(new StructuredSelection(type));
                break;
            }
        }
        appenderTypeField.setEnabled(false);
    }
}

From source file:org.eclipse.jdt.debug.ui.launchConfigurations.AppletParametersTab.java

License:Open Source License

/**
 * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(Composite)
 */// w w  w  . j a v a2  s .  co  m
public void createControl(Composite parent) {
    Composite comp = SWTFactory.createComposite(parent, 1, 1, GridData.FILL_HORIZONTAL);
    setControl(comp);
    PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
            IJavaDebugHelpContextIds.LAUNCH_CONFIGURATION_DIALOG_APPLET_PARAMETERS_TAB);

    Composite namecomp = SWTFactory.createComposite(comp, comp.getFont(), 4, 1, GridData.FILL_HORIZONTAL, 0, 0);

    SWTFactory.createLabel(namecomp, LauncherMessages.appletlauncher_argumenttab_widthlabel_text, 1);

    fWidthText = SWTFactory.createSingleText(namecomp, 1);
    fWidthText.addModifyListener(fListener);

    SWTFactory.createLabel(namecomp, LauncherMessages.appletlauncher_argumenttab_namelabel_text, 1);

    fNameText = SWTFactory.createSingleText(namecomp, 1);
    fNameText.addModifyListener(fListener);

    SWTFactory.createLabel(namecomp, LauncherMessages.appletlauncher_argumenttab_heightlabel_text, 1);

    fHeightText = SWTFactory.createSingleText(namecomp, 1);
    fHeightText.addModifyListener(fListener);

    Label blank = new Label(namecomp, SWT.NONE);
    blank.setText(EMPTY_STRING);
    Label hint = SWTFactory.createLabel(namecomp,
            LauncherMessages.AppletParametersTab__optional_applet_instance_name__1, 1);
    GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
    hint.setLayoutData(gd);

    SWTFactory.createVerticalSpacer(comp, 1);

    Composite paramcomp = SWTFactory.createComposite(comp, comp.getFont(), 2, 1, GridData.FILL_BOTH, 0, 0);

    SWTFactory.createLabel(paramcomp, LauncherMessages.appletlauncher_argumenttab_parameterslabel_text, 2);

    Table ptable = new Table(paramcomp, SWT.FULL_SELECTION | SWT.BORDER);
    fViewer = new TableViewer(ptable);
    gd = new GridData(GridData.FILL_BOTH);
    ptable.setLayoutData(gd);
    TableColumn column1 = new TableColumn(ptable, SWT.NONE);
    column1.setText(LauncherMessages.appletlauncher_argumenttab_parameterscolumn_name_text);
    TableColumn column2 = new TableColumn(ptable, SWT.NONE);
    column2.setText(LauncherMessages.appletlauncher_argumenttab_parameterscolumn_value_text);
    TableLayout tableLayout = new TableLayout();
    ptable.setLayout(tableLayout);
    tableLayout.addColumnData(new ColumnWeightData(100));
    tableLayout.addColumnData(new ColumnWeightData(100));
    ptable.setHeaderVisible(true);
    ptable.setLinesVisible(true);
    ptable.addSelectionListener(fListener);
    ptable.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseDoubleClick(MouseEvent e) {
            setParametersButtonsEnableState();
            if (fParametersEditButton.isEnabled()) {
                handleParametersEditButtonSelected();
            }
        }
    });

    fViewer.setContentProvider(new IStructuredContentProvider() {
        public Object[] getElements(Object inputElement) {
            Map<?, ?> params = (Map<?, ?>) inputElement;
            return params.keySet().toArray();
        }

        public void dispose() {
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }
    });

    fViewer.setLabelProvider(new ITableLabelProvider() {
        public Image getColumnImage(Object element, int columnIndex) {
            return null;
        }

        public String getColumnText(Object element, int columnIndex) {
            if (columnIndex == 0) {
                return element.toString();
            }

            String key = (String) element;
            Map<String, String> params = getViewerInput();
            Object object = params.get(key);
            if (object != null) {
                return object.toString();
            }
            return null;
        }

        public void addListener(ILabelProviderListener listener) {
        }

        public void dispose() {
        }

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

        public void removeListener(ILabelProviderListener listener) {
        }
    });

    fViewer.setComparator(new ViewerComparator());

    Composite envcomp = SWTFactory.createComposite(paramcomp, paramcomp.getFont(), 1, 1,
            GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL, 0, 0);

    fParametersAddButton = createPushButton(envcomp,
            LauncherMessages.appletlauncher_argumenttab_parameters_button_add_text, null);
    fParametersAddButton.addSelectionListener(fListener);

    fParametersEditButton = createPushButton(envcomp,
            LauncherMessages.appletlauncher_argumenttab_parameters_button_edit_text, null);
    fParametersEditButton.addSelectionListener(fListener);

    fParametersRemoveButton = createPushButton(envcomp,
            LauncherMessages.appletlauncher_argumenttab_parameters_button_remove_text, null);
    fParametersRemoveButton.addSelectionListener(fListener);

    setParametersButtonsEnableState();
    Dialog.applyDialogFont(parent);
}

From source file:org.eclipse.jdt.internal.debug.ui.JavaLogicalStructuresPreferencePage.java

License:Open Source License

/**
 * @param parent the parent widget//  w  w w  . j  a va2  s .c  o  m
 */
private void createTable(Composite parent) {
    SWTFactory.createWrapLabel(parent, DebugUIMessages.JavaLogicalStructuresPreferencePage_1, 2, 300);

    // logical structures list
    fLogicalStructuresViewer = new TableViewer(parent,
            SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
    Table table = (Table) fLogicalStructuresViewer.getControl();
    GridData gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.heightHint = convertHeightInCharsToPixels(10);
    gd.widthHint = convertWidthInCharsToPixels(10);
    table.setLayoutData(gd);
    table.setFont(parent.getFont());
    TableLayout tableLayout = new TableLayout();
    table.setLayout(tableLayout);
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    // create table columns
    fLogicalStructuresViewer.setColumnProperties(fTableColumnProperties);
    for (int i = 0; i < fTableColumnHeaders.length; i++) {
        tableLayout.addColumnData(fTableColumnLayouts[i]);
        TableColumn column = new TableColumn(table, SWT.NONE, i);
        column.setResizable(fTableColumnLayouts[i].resizable);
        column.setText(fTableColumnHeaders[i]);
    }

    fLogicalStructuresContentProvider = new LogicalStructuresListViewerContentProvider();
    fLogicalStructuresViewer.setContentProvider(fLogicalStructuresContentProvider);
    fLogicalStructuresViewer.setLabelProvider(new LogicalStructuresListViewerLabelProvider());
    fLogicalStructuresViewer.addSelectionChangedListener(this);
    fLogicalStructuresViewer.setInput(this);
    fLogicalStructuresViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection selection = ((IStructuredSelection) fLogicalStructuresViewer.getSelection());
            if (selection.size() == 1
                    && !((JavaLogicalStructure) selection.getFirstElement()).isContributed()) {
                editLogicalStructure();
            }
        }
    });
    table.addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent event) {
            if (event.character == SWT.DEL && event.stateMask == 0
                    && fRemoveLogicalStructureButton.isEnabled()) {
                removeLogicalStrutures();
            }
        }
    });
    fLogicalStructuresViewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer iViewer, Object e1, Object e2) {
            if (e1 == null) {
                return -1;
            } else if (e2 == null) {
                return 1;
            } else {
                String type1 = ((JavaLogicalStructure) e1).getQualifiedTypeName();
                int index = type1.lastIndexOf('.') + 1;
                if (index > 0) {
                    type1 = type1.substring(index);
                }
                String type2 = ((JavaLogicalStructure) e2).getQualifiedTypeName();
                index = type2.lastIndexOf('.') + 1;
                if (index > 0) {
                    type2 = type2.substring(index);
                }
                return type1.compareToIgnoreCase(type2);
            }
        }
    });
}

From source file:org.eclipse.jdt.internal.debug.ui.jres.InstalledJREsBlock.java

License:Open Source License

/**
 * Sorts by VM type, and name within type.
 *//*from ww w.j  a va2 s .co m*/
private void sortByType() {
    fVMList.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            if ((e1 instanceof IVMInstall) && (e2 instanceof IVMInstall)) {
                IVMInstall left = (IVMInstall) e1;
                IVMInstall right = (IVMInstall) e2;
                String leftType = left.getVMInstallType().getName();
                String rightType = right.getVMInstallType().getName();
                int res = leftType.compareToIgnoreCase(rightType);
                if (res != 0) {
                    return res;
                }
                return left.getName().compareToIgnoreCase(right.getName());
            }
            return super.compare(viewer, e1, e2);
        }

        @Override
        public boolean isSorterProperty(Object element, String property) {
            return true;
        }
    });
    fSortColumn = 3;
}

From source file:org.eclipse.jdt.internal.debug.ui.jres.InstalledJREsBlock.java

License:Open Source License

/**
 * Sorts by VM name./* w  w w  .  j a  va 2  s. c o  m*/
 */
private void sortByName() {
    fVMList.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            if ((e1 instanceof IVMInstall) && (e2 instanceof IVMInstall)) {
                IVMInstall left = (IVMInstall) e1;
                IVMInstall right = (IVMInstall) e2;
                return left.getName().compareToIgnoreCase(right.getName());
            }
            return super.compare(viewer, e1, e2);
        }

        @Override
        public boolean isSorterProperty(Object element, String property) {
            return true;
        }
    });
    fSortColumn = 1;
}

From source file:org.eclipse.jdt.internal.debug.ui.jres.InstalledJREsBlock.java

License:Open Source License

/**
 * Sorts by VM location./* w w w .  j a va 2  s . c o m*/
 */
private void sortByLocation() {
    fVMList.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            if ((e1 instanceof IVMInstall) && (e2 instanceof IVMInstall)) {
                IVMInstall left = (IVMInstall) e1;
                IVMInstall right = (IVMInstall) e2;
                return left.getInstallLocation().getAbsolutePath()
                        .compareToIgnoreCase(right.getInstallLocation().getAbsolutePath());
            }
            return super.compare(viewer, e1, e2);
        }

        @Override
        public boolean isSorterProperty(Object element, String property) {
            return true;
        }
    });
    fSortColumn = 2;
}