List of usage examples for org.eclipse.jface.viewers ViewerComparator sort
public void sort(final Viewer viewer, Object[] elements)
From source file:com.codeandme.tools.ui.TableExporter.java
License:Open Source License
/** * Prints the whole data area.//from w w w. ja v a2 s . c om * * @param output * output stream * @throws IOException * if an I/O error occurs. */ protected void printData(OutputStream output) throws IOException { IContentProvider contentProvider = fViewer.getContentProvider(); if (contentProvider instanceof IStructuredContentProvider) { Object input = fViewer.getInput(); Object[] elements = ((IStructuredContentProvider) contentProvider).getElements(input); // filter elements if (fFilterElements) { for (ViewerFilter filter : fViewer.getFilters()) elements = filter.filter(fViewer, (Object) null, elements); } // sort elements if (fSortElements) { ViewerComparator comparator = fViewer.getComparator(); if (comparator != null) comparator.sort(fViewer, elements); } // print elements for (Object element : elements) printDataRow(output, element); } }
From source file:de.femodeling.e4.ui.progress.internal.DetailedProgressViewer.java
License:Open Source License
public void add(Object[] elements) { ViewerComparator sorter = getComparator(); // Use a Set in case we are getting something added that exists Set newItems = new HashSet(elements.length); Control[] existingChildren = control.getChildren(); for (int i = 0; i < existingChildren.length; i++) { if (existingChildren[i].getData() != null) newItems.add(existingChildren[i].getData()); }/*from w w w. ja va 2 s . c om*/ for (int i = 0; i < elements.length; i++) { if (elements[i] != null) newItems.add(elements[i]); } JobTreeElement[] infos = new JobTreeElement[newItems.size()]; newItems.toArray(infos); if (sorter != null) { sorter.sort(this, infos); } // Update with the new elements to prevent flash for (int i = 0; i < existingChildren.length; i++) { ((ProgressInfoItem) existingChildren[i]).dispose(); } int totalSize = Math.min(newItems.size(), MAX_DISPLAYED); for (int i = 0; i < totalSize; i++) { ProgressInfoItem item = createNewItem(infos[i]); item.setColor(i); } control.layout(true); updateForShowingProgress(); }
From source file:fr.opensagres.eclipse.jsbuild.internal.ui.views.JSBuildFileView.java
License:Open Source License
private void setProjectViewerSelectionAfterDeletion() { Object[] children = getProjects(); if (children.length > 0) { ViewerComparator comparator = projectViewer.getComparator(); comparator.sort(projectViewer, children); IStructuredSelection selection = new StructuredSelection(children[0]); projectViewer.setSelection(selection); handleSelectionChanged(selection); }//from ww w . j av a 2s.c om }
From source file:org.eclipse.e4.ui.internal.progress.DetailedProgressViewer.java
License:Open Source License
@Override public void add(Object[] elements) { ViewerComparator sorter = getComparator(); // Use a Set in case we are getting something added that exists Set<Object> newItems = new HashSet<Object>(elements.length); Control[] existingChildren = control.getChildren(); for (int i = 0; i < existingChildren.length; i++) { if (existingChildren[i].getData() != null) newItems.add(existingChildren[i].getData()); }//from www . ja v a 2s . c o m for (int i = 0; i < elements.length; i++) { if (elements[i] != null) newItems.add(elements[i]); } JobTreeElement[] infos = new JobTreeElement[newItems.size()]; newItems.toArray(infos); if (sorter != null) { sorter.sort(this, infos); } // Update with the new elements to prevent flash for (int i = 0; i < existingChildren.length; i++) { ((ProgressInfoItem) existingChildren[i]).dispose(); } int totalSize = Math.min(newItems.size(), MAX_DISPLAYED); for (int i = 0; i < totalSize; i++) { ProgressInfoItem item = createNewItem(infos[i]); item.setColor(i); } control.layout(true); updateForShowingProgress(); }
From source file:org.eclipse.e4.ui.progress.internal.DetailedProgressViewer.java
License:Open Source License
@Override public void add(Object[] elements) { ViewerComparator sorter = getComparator(); // Use a Set in case we are getting something added that exists Set<Object> newItems = new HashSet<>(elements.length); Control[] existingChildren = control.getChildren(); for (int i = 0; i < existingChildren.length; i++) { if (existingChildren[i].getData() != null) newItems.add(existingChildren[i].getData()); }//from w ww . ja va 2 s. com for (int i = 0; i < elements.length; i++) { if (elements[i] != null) newItems.add(elements[i]); } JobTreeElement[] infos = new JobTreeElement[newItems.size()]; newItems.toArray(infos); if (sorter != null) { sorter.sort(this, infos); } // Update with the new elements to prevent flash for (int i = 0; i < existingChildren.length; i++) { ((ProgressInfoItem) existingChildren[i]).dispose(); } int totalSize = Math.min(newItems.size(), MAX_DISPLAYED); for (int i = 0; i < totalSize; i++) { ProgressInfoItem item = createNewItem(infos[i]); item.setColor(i); } control.layout(true); updateForShowingProgress(); }
From source file:org.eclipse.equinox.internal.p2.ui.discovery.util.ControlListViewer.java
License:Open Source License
public void add(Object[] elements) { ViewerComparator sorter = getComparator(); // Use a Set in case we are getting something added that exists Set<Object> newItems = new HashSet<Object>(elements.length); Control[] existingChildren = control.getChildren(); for (Control element : existingChildren) { if (element.getData() != null) { newItems.add(element.getData()); }/* ww w .j a va 2 s. c om*/ } for (Object element : elements) { if (element != null) { newItems.add(element); } } Object[] infos = new Object[newItems.size()]; newItems.toArray(infos); if (sorter != null) { sorter.sort(this, infos); } // Update with the new elements to prevent flash for (Control element : existingChildren) { ((ControlListItem) element).dispose(); } for (int i = 0; i < infos.length; i++) { ControlListItem item = createNewItem(infos[i]); item.updateColors(i); } control.layout(true); doUpdateContent(); }
From source file:org.eclipse.ltk.internal.ui.refactoring.PreviewWizardPage.java
License:Open Source License
public void setVisible(boolean visible) { fCurrentSelection = null;// w ww.ja v a 2 s .co m final RefactoringWizard refactoringWizard = getRefactoringWizard(); if (hasChanges()) { fPageContainer.showPage(fStandardPage); AbstractChangeNode treeViewerInput = (AbstractChangeNode) fTreeViewer.getInput(); if (visible && treeViewerInput != null) { IStructuredSelection selection = (IStructuredSelection) fTreeViewer.getSelection(); if (selection.isEmpty()) { ITreeContentProvider provider = (ITreeContentProvider) fTreeViewer.getContentProvider(); ViewerComparator comparator = fTreeViewer.getComparator(); PreviewNode element = getFirstNonCompositeChange(provider, comparator, treeViewerInput); if (element != null) { if (refactoringWizard != null && refactoringWizard.internalGetExpandFirstNode(InternalAPI.INSTANCE)) { Object[] subElements = provider.getElements(element); if (subElements != null && subElements.length > 0) { comparator.sort(fTreeViewer, subElements); fTreeViewer.expandToLevel(element, 999); } } fTreeViewer.setSelection(new StructuredSelection(element)); } } } else if (!visible) // dispose the previewer fCurrentPreviewViewer.setInput(new ChangePreviewViewerInput(new NullChange())); ((FilterDropDownAction) fFilterDropDownAction).initialize(collectGroupCategories()); super.setVisible(visible); fTreeViewer.getControl().setFocus(); } else { fPageContainer.showPage(fNullPage); super.setVisible(visible); } if (refactoringWizard != null) refactoringWizard.internalSetPreviewShown(InternalAPI.INSTANCE, visible); }
From source file:org.eclipse.ltk.internal.ui.refactoring.PreviewWizardPage.java
License:Open Source License
private PreviewNode getFirstNonCompositeChange(ITreeContentProvider provider, ViewerComparator comparator, AbstractChangeNode input) {/*from ww w .ja v a2s . c o m*/ PreviewNode focus = input; Change change = input.getChange(); while (change != null && change instanceof CompositeChange) { PreviewNode[] children = (PreviewNode[]) provider.getElements(focus); if (children == null || children.length == 0) return null; comparator.sort(fTreeViewer, children); focus = children[0]; change = (focus instanceof AbstractChangeNode) ? ((AbstractChangeNode) focus).getChange() : null; } return focus; }
From source file:org.eclipse.thym.ui.plugins.internal.PluginControlListViewer.java
License:Open Source License
public void add(Object[] elements) { ViewerComparator sorter = getComparator(); // Use a Set in case we are getting something added that exists Set<Object> newItems = new HashSet<Object>(elements.length); Control[] existingChildren = control.getChildren(); for (Control element : existingChildren) { if (element.getData() != null) { newItems.add(element.getData()); }//from w w w .j a va 2 s .co m } for (Object element : elements) { if (element != null) { newItems.add(element); } } Object[] infos = new Object[newItems.size()]; newItems.toArray(infos); if (sorter != null) { sorter.sort(this, infos); } // Update with the new elements to prevent flash for (Control element : existingChildren) { ((ControlListItem<?>) element).dispose(); } for (int i = 0; i < infos.length; i++) { createNewItem(infos[i]); } control.layout(true); doUpdateContent(); }
From source file:org.eclipse.ui.views.markers.internal.MarkerAdapter.java
License:Open Source License
/** * Build all of the markers in the receiver. * /*from w w w . j a v a 2 s . com*/ * @param collector * @param monitor */ public void buildAllMarkers(IProgressMonitor monitor) { building = true; MarkerList newMarkers; try { int markerLimit = view.getMarkerLimit(); monitor.beginTask(MarkerMessages.MarkerView_19, markerLimit == -1 ? 60 : 100); try { monitor.subTask(MarkerMessages.MarkerView_waiting_on_changes); if (monitor.isCanceled()) return; monitor.subTask(MarkerMessages.MarkerView_searching_for_markers); SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, 10); MarkerFilter[] filters = view.getEnabledFilters(); if (filters.length > 0) newMarkers = MarkerList.compute(filters, subMonitor, true); else // Grab any filter as a disabled filter gives all of them newMarkers = MarkerList.compute(new MarkerFilter[] { view.getAllFilters()[0] }, subMonitor, true); if (monitor.isCanceled()) return; view.refreshMarkerCounts(monitor); } catch (CoreException e) { Policy.handle(e); newMarkers = new MarkerList(); return; } if (monitor.isCanceled()) return; ViewerComparator sorter = view.getViewer().getComparator(); if (markerLimit == -1 || isShowingHierarchy()) { sorter.sort(view.getViewer(), newMarkers.toArray()); } else { monitor.subTask(MarkerMessages.MarkerView_18); SubProgressMonitor mon = new SubProgressMonitor(monitor, 40); newMarkers = SortUtil.getFirst(newMarkers, (Comparator) sorter, markerLimit, mon); if (monitor.isCanceled()) return; sorter.sort(view.getViewer(), newMarkers.toArray()); } if (newMarkers.getSize() == 0) { categories = new MarkerCategory[0]; lastMarkers = newMarkers; monitor.done(); return; } monitor.subTask(MarkerMessages.MarkerView_queueing_updates); if (monitor.isCanceled()) return; if (isShowingHierarchy()) { MarkerCategory[] newCategories = buildHierarchy(newMarkers, 0, newMarkers.getSize() - 1, 0); if (monitor.isCanceled()) return; categories = newCategories; } lastMarkers = newMarkers; monitor.done(); } finally { building = false; } }