1 20 21 package org.apache.directory.ldapstudio.browser.ui.editors.searchresult; 22 23 24 import org.apache.directory.ldapstudio.browser.core.jobs.AbstractEclipseJob; 25 import org.apache.directory.ldapstudio.browser.core.jobs.ExtendedProgressMonitor; 26 import org.apache.directory.ldapstudio.browser.core.model.IConnection; 27 28 29 36 public class FilterAndSortJob extends AbstractEclipseJob 37 { 38 39 40 private SearchResultEditorConfiguration configuration; 41 42 43 private SearchResultEditorWidget mainWidget; 44 45 46 private Object [] elements; 47 48 49 private Object [] filteredAndSortedElements; 50 51 52 59 public FilterAndSortJob( SearchResultEditorConfiguration configuration, SearchResultEditorWidget mainWidget, 60 Object [] elements ) 61 { 62 this.configuration = configuration; 63 this.mainWidget = mainWidget; 64 this.elements = elements; 65 } 66 67 68 71 protected Object [] getLockedObjects() 72 { 73 return new Object [0]; 74 } 75 76 77 80 protected void executeAsyncJob( ExtendedProgressMonitor monitor ) throws Exception 81 { 82 monitor.beginTask( "Filter and Sort", 3 ); 83 monitor.worked( 1 ); 84 85 monitor.setTaskName( "Filter and Sort" ); 86 87 monitor.reportProgress( "Filtering..." ); 88 this.filteredAndSortedElements = this.configuration.getFilter().filter( this.mainWidget.getViewer(), "", 89 elements ); 90 monitor.worked( 1 ); 91 92 monitor.reportProgress( "Sorting..." ); 93 this.configuration.getSorter().sort( this.mainWidget.getViewer(), this.filteredAndSortedElements ); 94 monitor.worked( 1 ); 95 } 96 97 98 101 protected IConnection[] getConnections() 102 { 103 return new IConnection[0]; 104 } 105 106 107 112 public Object [] getFilteredAndSortedElements() 113 { 114 return filteredAndSortedElements; 115 } 116 117 } 118 | Popular Tags |