List of usage examples for org.eclipse.jface.viewers ViewerComparator ViewerComparator
public ViewerComparator()
From source file:org.eclipse.pde.api.tools.ui.internal.wizards.TargetBasedApiBaselineWizardPage.java
License:Open Source License
@Override public void createControl(Composite parent) { Composite comp = SWTFactory.createComposite(parent, 4, 1, GridData.FILL_HORIZONTAL); SWTFactory.createWrapLabel(comp, WizardMessages.ApiProfileWizardPage_5, 1); nametext = SWTFactory.createText(comp, SWT.BORDER | SWT.SINGLE, 3, GridData.FILL_HORIZONTAL | GridData.BEGINNING); nametext.addModifyListener(new ModifyListener() { @Override// ww w.j a va 2 s . c o m public void modifyText(ModifyEvent e) { setPageComplete(pageValid()); } }); SWTFactory.createVerticalSpacer(comp, 1); targetsViewer = CheckboxTableViewer.newCheckList(comp, SWT.MULTI | SWT.BORDER); GridDataFactory.fillDefaults().span(3, 1).grab(true, true).applyTo(targetsViewer.getControl()); targetsViewer.setLabelProvider(new TargetLabelProvider()); targetsViewer.setContentProvider(ArrayContentProvider.getInstance()); targetsViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(CheckStateChangedEvent event) { if (event.getChecked()) { targetsViewer.setCheckedElements(new Object[] { event.getElement() }); selectedTargetDefinition = (ITargetDefinition) event.getElement(); } else { selectedTargetDefinition = null; } updateButtons(); setPageComplete(pageValid()); } }); // add the targets ITargetPlatformService service = getTargetService(); if (service != null) { for (ITargetHandle handle : service.getTargets(null)) { try { fTargets.add(handle.getTargetDefinition()); } catch (CoreException e) { PDECore.log(e); } } if (fTargets.isEmpty()) { // Ensure we have at least a default TP try { fTargets.add(service.getWorkspaceTargetDefinition()); } catch (CoreException e) { PDECore.log(e); } } targetsViewer.setInput(fTargets); } targetsViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { String name1 = ((ITargetDefinition) e1).getName(); String name2 = ((ITargetDefinition) e2).getName(); if (name1 == null) { return -1; } if (name2 == null) { return 1; } return name1.compareToIgnoreCase(name2); } }); reloadbutton = SWTFactory.createPushButton(comp, WizardMessages.ApiProfileWizardPage_12, null); reloadbutton.setEnabled(targetsViewer.getCheckedElements().length == 1); reloadbutton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { doReload(); } }); SWTFactory.createWrapLabel(comp, WizardMessages.ApiProfileWizardPage_13, 4); Tree tree = new Tree(comp, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); GridData gd = new GridData(GridData.FILL_BOTH); gd.heightHint = 100; gd.horizontalSpan = 4; tree.setLayoutData(gd); treeviewer = new TreeViewer(tree); treeviewer.setLabelProvider(new ApiToolsLabelProvider()); treeviewer.setContentProvider(new ContentProvider()); treeviewer.setComparator(new ViewerComparator()); treeviewer.setInput(getCurrentComponents()); treeviewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { updateButtons(); } }); treeviewer.addFilter(new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { if (element instanceof IApiComponent) { IApiComponent component = (IApiComponent) element; try { if (component.isSourceComponent() || component.isSystemComponent()) { return false; } } catch (CoreException e) { ApiPlugin.log(e); } return true; } return !(element instanceof SystemLibraryApiComponent); } }); setControl(comp); if (fProfile != null) { nametext.setText(fProfile.getName()); ITargetDefinition found = null; // Use isDerivedFromTarget as the target may have had its // sequence number bumped several times for (ITargetDefinition target : fTargets) { if (ApiModelFactory.isDerivedFromTarget(fProfile, target)) { found = target; break; } } if (found != null) { selectedTargetDefinition = found; targetsViewer.setCheckedElements(new Object[] { found }); } } initialize(); updateButtons(); setPageComplete(pageValid()); PlatformUI.getWorkbench().getHelpSystem().setHelp(comp, IApiToolsHelpContextIds.APIPROFILES_WIZARD_PAGE); Dialog.applyDialogFont(comp); }
From source file:org.eclipse.pde.internal.ds.ui.editor.sections.DSProvideSection.java
License:Open Source License
protected void createClient(Section section, FormToolkit toolkit) { section.setDescription(Messages.DSProvideSection_description); section.setExpanded(true);/* ww w . j a v a 2 s . c om*/ section.setLayout(FormLayoutFactory.createClearGridLayout(false, 1)); GridData data = new GridData(GridData.FILL_BOTH); data.grabExcessVerticalSpace = true; section.setLayoutData(data); Composite container = createClientContainer(section, 2, toolkit); EditableTablePart tablePart = getTablePart(); tablePart.setEditable(isEditable()); createViewerPartControl(container, SWT.FULL_SELECTION | SWT.MULTI, 2, toolkit); fProvidesTable = tablePart.getTableViewer(); fProvidesTable.setContentProvider(new ContentProvider()); fProvidesTable.setLabelProvider(new DSLabelProvider()); fProvidesTable.setComparator(new ViewerComparator()); fProvidesTable.addDoubleClickListener(this); makeActions(); IDSModel model = getDSModel(); if (model != null) { fProvidesTable.setInput(model); model.addModelChangedListener(this); } toolkit.paintBordersFor(container); section.setClient(container); updateTitle(); }
From source file:org.eclipse.pde.internal.runtime.logview.LogView.java
License:Open Source License
private ViewerComparator getViewerComparator(byte sortType) { if (sortType == PLUGIN) { return new ViewerComparator() { public int compare(Viewer viewer, Object e1, Object e2) { LogEntry entry1 = (LogEntry) e1; LogEntry entry2 = (LogEntry) e2; return getComparator().compare(entry1.getPluginId(), entry2.getPluginId()) * PLUGIN_ORDER; }// w w w .j ava 2 s . c om }; } else if (sortType == MESSAGE) { return new ViewerComparator() { public int compare(Viewer viewer, Object e1, Object e2) { LogEntry entry1 = (LogEntry) e1; LogEntry entry2 = (LogEntry) e2; return getComparator().compare(entry1.getMessage(), entry2.getMessage()) * MESSAGE_ORDER; } }; } else { return new ViewerComparator() { public int compare(Viewer viewer, Object e1, Object e2) { long date1 = ((LogEntry) e1).getDate().getTime(); long date2 = ((LogEntry) e2).getDate().getTime(); if (date1 == date2) { int result = fLogs.indexOf(e2) - fLogs.indexOf(e1); if (DATE_ORDER == DESCENDING) result *= DESCENDING; return result; } if (DATE_ORDER == DESCENDING) return date1 > date2 ? DESCENDING : ASCENDING; return date1 < date2 ? DESCENDING : ASCENDING; } }; } }
From source file:org.eclipse.pde.internal.ui.compare.PluginStructureViewerCreator.java
License:Open Source License
public Viewer createViewer(Composite parent, CompareConfiguration config) { StructureDiffViewer viewer = new StructureDiffViewer(parent, config); viewer.setStructureCreator(new PluginStructureCreator()); 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; }// w w w .java 2 s. c o m 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:org.eclipse.pde.internal.ui.editor.actions.SortAction.java
License:Open Source License
/** * @param viewer// w w w .jav a 2s. co 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(PDEPluginImages.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:org.eclipse.pde.internal.ui.editor.category.DownloadStatsSection.java
License:Open Source License
protected void createClient(Section section, FormToolkit toolkit) { fModel = (ISiteModel) getPage().getModel(); fModel.addModelChangedListener(this); section.setLayout(FormLayoutFactory.createClearGridLayout(false, 1)); GridData data = new GridData(GridData.FILL_BOTH); section.setLayoutData(data);/* w w w . j av a 2 s .c om*/ // Create and configure client Composite client = toolkit.createComposite(section); client.setLayout(FormLayoutFactory.createSectionClientGridLayout(false, 1)); client.setLayoutData(new GridData(GridData.FILL_BOTH)); Composite urlContainer = toolkit.createComposite(client); urlContainer.setLayout(FormLayoutFactory.createSectionClientGridLayout(false, 2)); urlContainer.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); // Create form entry IActionBars actionBars = getPage().getPDEEditor().getEditorSite().getActionBars(); fURLEntry = new FormEntry(urlContainer, toolkit, PDEUIMessages.StatsSection_url, SWT.NONE); fURLEntry.setFormEntryListener(new FormEntryAdapter(this, actionBars) { public void textValueChanged(FormEntry entry) { try { getStatsInfo().setURL(entry.getValue()); } catch (CoreException e) { PDEPlugin.log(e); } } }); fURLEntry.setEditable(isEditable()); Composite container = createClientContainer(client, 2, toolkit); createViewerPartControl(container, SWT.MULTI, 2, toolkit); container.setLayoutData(new GridData(GridData.FILL_BOTH)); TablePart tablePart = getTablePart(); fArtifactTable = tablePart.getTableViewer(); fArtifactTable.setContentProvider(new ArtifactsContentProvider()); fArtifactTable.setLabelProvider(new CategoryLabelProvider()); fArtifactTable.setComparator(new ViewerComparator() { @Override public int category(Object element) { if (element instanceof SiteFeatureAdapter) return 0; return 1; } }); data = (GridData) tablePart.getControl().getLayoutData(); data.minimumWidth = 200; fArtifactTable.setInput(getStatsInfo()); tablePart.setButtonEnabled(0, isEditable()); tablePart.setButtonEnabled(1, isEditable()); tablePart.setButtonEnabled(2, isEditable()); tablePart.setButtonEnabled(3, isEditable()); toolkit.paintBordersFor(container); section.setClient(client); section.setText(PDEUIMessages.StatsSection_title); section.setDescription(PDEUIMessages.StatsSection_description); }
From source file:org.eclipse.pde.internal.ui.editor.category.RepositoryReferenceSection.java
License:Open Source License
@Override protected void createClient(Section section, FormToolkit toolkit) { fModel = (ISiteModel) getPage().getModel(); fModel.addModelChangedListener(this); section.setLayout(FormLayoutFactory.createClearGridLayout(false, 1)); GridData sectionData = new GridData(GridData.FILL_BOTH); sectionData.verticalSpan = 2;/* w w w . j a v a 2 s. co m*/ section.setLayoutData(sectionData); Composite container = createClientContainer(section, 2, toolkit); createViewerPartControl(container, SWT.MULTI | SWT.FULL_SELECTION, 2, toolkit); container.setLayoutData(new GridData(GridData.FILL_BOTH)); TablePart tablePart = getTablePart(); fRepositoryTable = tablePart.getTableViewer(); final Table table = fRepositoryTable.getTable(); final TableColumn locationColumn = new TableColumn(table, SWT.LEFT); locationColumn.setText(PDEUIMessages.UpdatesSection_LocationColumn); locationColumn.setWidth(240); final TableColumn enabledColumn = new TableColumn(table, SWT.LEFT); enabledColumn.setText(PDEUIMessages.UpdatesSection_EnabledColumn); enabledColumn.setWidth(120); GridData data = (GridData) tablePart.getControl().getLayoutData(); data.minimumWidth = 200; tablePart.setButtonEnabled(0, isEditable()); tablePart.setButtonEnabled(1, isEditable()); table.setHeaderVisible(true); toolkit.paintBordersFor(container); table.addControlListener(new ControlListener() { public void controlMoved(ControlEvent e) { } public void controlResized(ControlEvent e) { int size = table.getSize().x; locationColumn.setWidth(size / 6 * 5); enabledColumn.setWidth(size / 6 * 1); } }); fRepositoryTable.setLabelProvider(new LabelProvider()); fRepositoryTable.setContentProvider(new ContentProvider()); fRepositoryTable.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { IRepositoryReference r1 = (IRepositoryReference) e1; IRepositoryReference r2 = (IRepositoryReference) e2; return super.compare(viewer, r1.getURL(), r2.getURL()); } }); fRepositoryTable.setInput(getSite()); createEditors(); section.setClient(container); section.setText(PDEUIMessages.RepositorySection_title); section.setDescription(PDEUIMessages.RepositorySection_description); }
From source file:org.eclipse.pde.internal.ui.editor.plugin.ExportPackageSection.java
License:Open Source License
@Override protected void createClient(Section section, FormToolkit toolkit) { section.setText(PDEUIMessages.ExportPackageSection_title); if (isFragment()) section.setDescription(PDEUIMessages.ExportPackageSection_descFragment); else/*ww w .ja v a 2 s . c o m*/ section.setDescription(PDEUIMessages.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(PDEPlugin.getDefault().getLabelProvider()); fPackageViewer.setComparator(new ViewerComparator() { @Override 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:org.eclipse.pde.internal.ui.editor.plugin.ImportPackageSection.java
License:Open Source License
@Override protected void createClient(Section section, FormToolkit toolkit) { section.setText(PDEUIMessages.ImportPackageSection_required); if (isFragment()) section.setDescription(PDEUIMessages.ImportPackageSection_descFragment); else/*from w ww .j a va 2 s .co m*/ section.setDescription(PDEUIMessages.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 PDELabelProvider() { @Override 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() { @Override 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:org.eclipse.pde.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;/* ww w .j av a 2 s. c om*/ section.setLayoutData(data); section.setText(PDEUIMessages.ProductJRESection_title); section.setDescription(PDEUIMessages.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(PDEUIMessages.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, PDEUIMessages.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, PDEUIMessages.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); }