Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/views/SynchronizeView.java')
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/views/SynchronizeView.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/views/SynchronizeView.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/views/SynchronizeView.java
index 599de883e..d732df502 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/views/SynchronizeView.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/views/SynchronizeView.java
@@ -19,6 +19,7 @@ import java.util.Map;
import java.util.Set;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.QualifiedName;
import org.eclipse.core.runtime.jobs.IJobChangeEvent;
@@ -56,6 +57,7 @@ import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.team.core.TeamException;
import org.eclipse.team.core.subscribers.ITeamResourceChangeListener;
import org.eclipse.team.core.subscribers.SyncInfo;
import org.eclipse.team.core.subscribers.TeamDelta;
@@ -76,7 +78,12 @@ import org.eclipse.team.internal.ui.sync.sets.ISyncSetChangedListener;
import org.eclipse.team.internal.ui.sync.sets.SubscriberInput;
import org.eclipse.team.internal.ui.sync.sets.SyncSetChangedEvent;
import org.eclipse.team.ui.ISharedImages;
+import org.eclipse.team.ui.sync.AndSyncInfoFilter;
import org.eclipse.team.ui.sync.ISynchronizeView;
+import org.eclipse.team.ui.sync.PseudoConflictFilter;
+import org.eclipse.team.ui.sync.SyncInfoChangeTypeFilter;
+import org.eclipse.team.ui.sync.SyncInfoDirectionFilter;
+import org.eclipse.team.ui.sync.SyncInfoFilter;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IViewSite;
@@ -837,4 +844,28 @@ public class SynchronizeView extends ViewPart implements ITeamResourceChangeList
input.setWorkingSet(set);
updateTitle();
}
+ /**
+ * Updates the filter applied to the active subscriber input and ensures that selection and expansions
+ * is preserved when the filtered contents are shown.
+ * @param filter
+ */
+ public void updateInputFilter(int[] directions, int[] changeTypes) {
+ try {
+ if(viewer instanceof INavigableControl) {
+ ((INavigableControl)viewer).preserveState(1);
+ }
+ input.setFilter(
+ new AndSyncInfoFilter(
+ new SyncInfoFilter[] {
+ new SyncInfoDirectionFilter(directions),
+ new SyncInfoChangeTypeFilter(changeTypes),
+ new PseudoConflictFilter()
+ }), new NullProgressMonitor());
+ if(viewer instanceof INavigableControl) {
+ ((INavigableControl)viewer).restoreState(1);
+ }
+ } catch (TeamException e) {
+ Utils.handleError(getSite().getShell(), e, Policy.bind("SynchronizeView.16"), e.getMessage()); //$NON-NLS-1$
+ }
+ }
} \ No newline at end of file

Back to the top