public int compare(Viewer viewer, TreePath parentPath, Object e1, Object e2) { if (contentService == null) return -1; INavigatorContentDescriptor sourceOfLvalue = contentService.getSourceOfContribution(e1); INavigatorContentDescriptor sourceOfRvalue = contentService.getSourceOfContribution(e2); if (sourceOfLvalue == null) sourceOfLvalue = getSource(e1); if (sourceOfRvalue == null) sourceOfRvalue = getSource(e2); // identity comparison if (sourceOfLvalue != null && sourceOfLvalue == sourceOfRvalue) { Object parent; if (parentPath == null) { parent = viewer.getInput(); } else { parent = parentPath.getLastSegment(); } ViewerSorter sorter = sorterService.findSorter(sourceOfLvalue, parent, e1, e2); if (sorter != null) { return sorter.compare(viewer, e1, e2); } } int categoryDelta = category(e1) - category(e2); if (categoryDelta == 0) { return super.compare(viewer, e1, e2); } return categoryDelta; }
/** * Sets this viewer's sorter and triggers refiltering and resorting of this * viewer's element. Passing <code>null</code> turns sorting off. * * @param sorter * a viewer sorter, or <code>null</code> if none */ public void setSorter(ViewerSorter sorter) { if (sorter != null && sorter instanceof CommonViewerSorter) { ((CommonViewerSorter) sorter).setContentService(contentService); } super.setSorter(sorter); }
public void createArea(Composite parent) { Composite composite = new Composite(parent, SWT.NULL); GridLayout layout = new GridLayout(1, false); layout.marginHeight = 0; layout.marginWidth = 0; composite.setLayout(layout); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); if (description != null) createWrappingLabel(composite, description, 1); viewer = new CommonViewer(TEAM_NAVIGATOR_CONTENT, composite, SWT.BORDER); viewer.setSorter(new CommonViewerSorter()); viewer.setSorter(new TeamViewerSorter((CommonViewerSorter)viewer.getSorter())); viewer.getNavigatorContentService().bindExtensions(TeamUI.getTeamContentProviderManager().getContentProviderIds(scope), true); viewer.getNavigatorContentService().getActivationService().activateExtensions(TeamUI.getTeamContentProviderManager().getContentProviderIds(scope), true); GridData data = new GridData(GridData.FILL_BOTH); data.heightHint = 100; data.widthHint = 300; viewer.getControl().setLayoutData(data); viewer.getNavigatorContentService().addListener(this); viewer.setInput(getInitialInput()); viewer.refresh(); Object[] objects = getRootModelObjects(); viewer.setSelection(new StructuredSelection(objects), true); }
public int compare(Viewer viewer, TreePath parentPath, Object e1, Object e2) { if (parentPath == null || parentPath.getSegmentCount() == 0) { // We need to handle the sorting at the top level int cat1 = category(e1); int cat2 = category(e2); if (cat1 != cat2) return cat1 - cat2; if (e1 instanceof ModelProvider && e2 instanceof ModelProvider) { ModelProvider mp1 = (ModelProvider) e1; ModelProvider mp2 = (ModelProvider) e2; if (isExtends(mp1, mp2.getDescriptor())) { return 1; } if (isExtends(mp2, mp1.getDescriptor())) { return -1; } return mp1.getDescriptor().getLabel().compareTo(mp2.getDescriptor().getLabel()); } IResource r1 = Utils.getResource(e1); IResource r2 = Utils.getResource(e2); if (r1 != null && r2 != null) { return r1.getName().compareTo(r2.getName()); } } return sorter.compare(viewer, parentPath, e1, e2); }
public int category(Object element) { if (contentService == null) return 0; INavigatorContentDescriptor source = contentService.getSourceOfContribution(element); if (source == null) source = getSource(element); return source != null ? source.getPriority() : Priority.NORMAL_PRIORITY_VALUE; }
@Override public void createArea(Composite parent) { Composite composite = new Composite(parent, SWT.NULL); GridLayout layout = new GridLayout(1, false); layout.marginHeight = 0; layout.marginWidth = 0; composite.setLayout(layout); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); if (description != null) createWrappingLabel(composite, description, 1); viewer = new CommonViewer(TEAM_NAVIGATOR_CONTENT, composite, SWT.BORDER); viewer.setSorter(new CommonViewerSorter()); viewer.setSorter(new TeamViewerSorter((CommonViewerSorter)viewer.getSorter())); viewer.getNavigatorContentService().bindExtensions(TeamUI.getTeamContentProviderManager().getContentProviderIds(scope), true); viewer.getNavigatorContentService().getActivationService().activateExtensions(TeamUI.getTeamContentProviderManager().getContentProviderIds(scope), true); GridData data = new GridData(GridData.FILL_BOTH); data.heightHint = 100; data.widthHint = 300; viewer.getControl().setLayoutData(data); viewer.getNavigatorContentService().addListener(this); viewer.setInput(getInitialInput()); viewer.refresh(); Object[] objects = getRootModelObjects(); viewer.setSelection(new StructuredSelection(objects), true); }
@Override public int compare(Viewer viewer, TreePath parentPath, Object e1, Object e2) { if (parentPath == null || parentPath.getSegmentCount() == 0) { // We need to handle the sorting at the top level int cat1 = category(e1); int cat2 = category(e2); if (cat1 != cat2) return cat1 - cat2; if (e1 instanceof ModelProvider && e2 instanceof ModelProvider) { ModelProvider mp1 = (ModelProvider) e1; ModelProvider mp2 = (ModelProvider) e2; if (isExtends(mp1, mp2.getDescriptor())) { return 1; } if (isExtends(mp2, mp1.getDescriptor())) { return -1; } return mp1.getDescriptor().getLabel().compareTo(mp2.getDescriptor().getLabel()); } IResource r1 = Utils.getResource(e1); IResource r2 = Utils.getResource(e2); if (r1 != null && r2 != null) { return resourceComparator.compare(viewer, r1, r2); } } return sorter.compare(viewer, parentPath, e1, e2); }
/** * Create a common viewer * @param parent the parent composite of the common viewer * @param configuration the configuration for the viewer * @return a newly created common viewer */ private static CommonViewer createViewer(Composite parent, final ISynchronizePageConfiguration configuration, IEmptyTreeListener listener) { final CommonViewer v = new NavigableCommonViewer(configuration.getViewerId(), parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL, listener); v.setSorter(new CommonViewerSorter()); v.setSorter(new TeamViewerSorter((CommonViewerSorter)v.getSorter())); ISynchronizationScope scope = getScope(configuration); bindTeamContentProviders(v); scope.addScopeChangeListener((scope1, newMappings, newTraversals) -> { enableContentProviders(v, configuration); Utils.asyncExec((Runnable) () -> v.refresh(), v); }); enableContentProviders(v, configuration); configuration.getSite().setSelectionProvider(v); return v; }
/** * Create a common viewer * @param parent the parent composite of the common viewer * @param configuration the configuration for the viewer * @return a newly created common viewer */ private static CommonViewer createViewer(Composite parent, final ISynchronizePageConfiguration configuration, IEmptyTreeListener listener) { final CommonViewer v = new NavigableCommonViewer(configuration.getViewerId(), parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL, listener); v.setSorter(new CommonViewerSorter()); v.setSorter(new TeamViewerSorter((CommonViewerSorter)v.getSorter())); ISynchronizationScope scope = getScope(configuration); bindTeamContentProviders(v); scope.addScopeChangeListener(new ISynchronizationScopeChangeListener() { public void scopeChanged(final ISynchronizationScope scope, ResourceMapping[] newMappings, ResourceTraversal[] newTraversals) { enableContentProviders(v, configuration); Utils.asyncExec(new Runnable() { public void run() { v.refresh(); } }, v); } }); enableContentProviders(v, configuration); configuration.getSite().setSelectionProvider(v); return v; }
commonViewer.setSorter(new CommonViewerSorter());