*** empty log message ***
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/HierarchicalModelManager.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/HierarchicalModelManager.java index ae8c977..c3769aa 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/HierarchicalModelManager.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/HierarchicalModelManager.java
@@ -14,7 +14,6 @@ import org.eclipse.team.internal.ui.IPreferenceIds; import org.eclipse.team.internal.ui.TeamUIPlugin; import org.eclipse.team.ui.synchronize.ISynchronizePageConfiguration; -import org.eclipse.team.ui.synchronize.StructuredViewerAdvisor; /** * Manager for hierarchical models @@ -24,8 +23,8 @@ /** * @param configuration */ - public HierarchicalModelManager(StructuredViewerAdvisor advisor, ISynchronizePageConfiguration configuration) { - super(advisor, configuration); + public HierarchicalModelManager(ISynchronizePageConfiguration configuration) { + super(configuration); } /* (non-Javadoc)
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelManager.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelManager.java index fea5b12..42dc88d 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelManager.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelManager.java
@@ -16,6 +16,7 @@ import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.jface.viewers.*; +import org.eclipse.team.internal.core.Assert; import org.eclipse.team.internal.ui.Policy; import org.eclipse.team.ui.synchronize.*; import org.eclipse.ui.IActionBars; @@ -75,13 +76,20 @@ } } - public SynchronizeModelManager(StructuredViewerAdvisor advisor, ISynchronizePageConfiguration configuration) { - this.advisor = advisor; + public SynchronizeModelManager(ISynchronizePageConfiguration configuration) { + Assert.isNotNull(configuration, "configuration cannot be null"); //$NON-NLS-1$ this.configuration = configuration; configuration.addActionContribution(this); } /** + * Initialize the model manager to be used with the provided advisor. + */ + public void setViewerAdvisor(StructuredViewerAdvisor advisor) { + this.advisor = advisor; + } + + /** * Return the list of supported model providers for this advisor. * @param viewer * @return
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizePageConfiguration.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizePageConfiguration.java index 4ef14a9..35da310 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizePageConfiguration.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizePageConfiguration.java
@@ -56,6 +56,14 @@ * set. */ public static final String P_ADVISOR = TeamUIPlugin.ID + ".P_ADVISOR"; //$NON-NLS-1$ + + /** + * Property constant for the page's model manager which is + * an instance of <code>SynchronizeModelManager</code>. + * This property can be queried by clients but should not be + * set. + */ + public static final String P_MODEL_MANAGER = TeamUIPlugin.ID + ".P_MODEL_MANAGER"; //$NON-NLS-1$ /** * Property that gives access to a set the
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/StructuredViewerAdvisor.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/StructuredViewerAdvisor.java index be814bc..21aa745 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/StructuredViewerAdvisor.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/StructuredViewerAdvisor.java
@@ -112,7 +112,15 @@ public StructuredViewerAdvisor(ISynchronizePageConfiguration configuration) { this.configuration = configuration; configuration.setProperty(SynchronizePageConfiguration.P_ADVISOR, this); - modelManager = createModelManager(configuration); + + // Allow the configuration to provide it's own model manager but if one isn't initialized, then + // simply use the default provided by the advisor. + modelManager = (SynchronizeModelManager)configuration.getProperty(SynchronizePageConfiguration.P_MODEL_MANAGER); + if(modelManager == null) { + modelManager = createModelManager(configuration); + } + Assert.isNotNull(modelManager, "model manager must be set"); + modelManager.setViewerAdvisor(this); } /**
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/TreeViewerAdvisor.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/TreeViewerAdvisor.java index ff82a2b..dfbbc4a 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/TreeViewerAdvisor.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/TreeViewerAdvisor.java
@@ -244,15 +244,15 @@ viewer.getControl().setLayoutData(data); initializeViewer(viewer); } - + /** * Create the model manager to be used by this advisor * @param configuration */ protected SynchronizeModelManager createModelManager(ISynchronizePageConfiguration configuration) { - return new HierarchicalModelManager(this, configuration); + return new HierarchicalModelManager(configuration); } - + /* (non-Javadoc) * @see org.eclipse.team.ui.synchronize.viewers.StructuredViewerAdvisor#navigate(boolean) */
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestTreeViewerAdvisor.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestTreeViewerAdvisor.java index 5d01323..31d412e 100644 --- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestTreeViewerAdvisor.java +++ b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/ui/synchronize/TestTreeViewerAdvisor.java
@@ -26,7 +26,7 @@ * @see org.eclipse.team.ui.synchronize.TreeViewerAdvisor#createModelManager(org.eclipse.team.ui.synchronize.ISynchronizePageConfiguration) */ protected SynchronizeModelManager createModelManager(ISynchronizePageConfiguration configuration) { - return new SynchronizeModelManager(this, configuration) { + SynchronizeModelManager manager = new SynchronizeModelManager(configuration) { protected ISynchronizeModelProvider createModelProvider(String id) { return new HierarchicalModelProvider(getSyncInfoSet()); } @@ -38,5 +38,7 @@ return (SyncInfoTree)getConfiguration().getProperty(ISynchronizePageConfiguration.P_SYNC_INFO_SET); } }; + manager.setViewerAdvisor(this); + return manager; } }