1 11 package org.eclipse.team.internal.core.subscribers; 12 13 import org.eclipse.core.resources.IResource; 14 import org.eclipse.core.resources.IWorkspaceRunnable; 15 import org.eclipse.core.runtime.IProgressMonitor; 16 import org.eclipse.team.core.synchronize.*; 17 18 29 public final class WorkingSetFilteredSyncInfoCollector { 30 31 private WorkingSetSyncSetInput workingSetInput; 32 private SyncSetInputFromSyncSet filteredInput; 33 private SubscriberEventHandler eventHandler; 34 35 44 public WorkingSetFilteredSyncInfoCollector(SubscriberSyncInfoCollector collector, IResource[] roots) { 45 this.eventHandler = collector.getEventHandler(); 46 workingSetInput = new WorkingSetSyncSetInput((SubscriberSyncInfoSet)collector.getSyncInfoSet(), getEventHandler()); 48 filteredInput = new SyncSetInputFromSyncSet(workingSetInput.getSyncSet(), getEventHandler()); 49 filteredInput.setFilter(new SyncInfoFilter() { 50 public boolean select(SyncInfo info, IProgressMonitor monitor) { 51 return true; 52 } 53 }); 54 } 55 56 62 public SyncInfoTree getSyncInfoTree() { 63 return filteredInput.getSyncSet(); 64 } 65 66 72 public void reset() { 73 workingSetInput.reset(); 74 } 75 76 81 public void dispose() { 82 workingSetInput.disconnect(); 83 if(filteredInput != null) { 84 filteredInput.disconnect(); 85 } 86 } 87 88 95 protected SubscriberEventHandler getEventHandler() { 96 return eventHandler; 97 } 98 99 104 public void setFilter(SyncInfoFilter filter) { 105 filteredInput.setFilter(filter); 106 filteredInput.reset(); 107 } 108 109 115 public SyncInfoSet getWorkingSetSyncInfoSet() { 116 return workingSetInput.getSyncSet(); 117 } 118 119 123 public void run(IWorkspaceRunnable runnable) { 124 eventHandler.run(runnable, true ); 125 } 126 } 127 | Popular Tags |