diff options
author | Michael Valenta | 2004-11-22 18:26:00 +0000 |
---|---|---|
committer | Michael Valenta | 2004-11-22 18:26:00 +0000 |
commit | 0edefde1a2a4604e0907642d2f60dcf53ecb2e1e (patch) | |
tree | 6109130cbcb88eca5f6876b484eea4a13d0d0d4f | |
parent | 39bb3d349fc377fdd0882eee1172957fc5656247 (diff) | |
download | eclipse.platform.team-0edefde1a2a4604e0907642d2f60dcf53ecb2e1e.tar.gz eclipse.platform.team-0edefde1a2a4604e0907642d2f60dcf53ecb2e1e.tar.xz eclipse.platform.team-0edefde1a2a4604e0907642d2f60dcf53ecb2e1e.zip |
Changing test case support
3 files changed, 39 insertions, 66 deletions
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 c5ee46202..176ac6270 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 @@ -17,14 +17,11 @@ import org.eclipse.jface.action.*; import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.swt.widgets.Display; import org.eclipse.team.core.synchronize.SyncInfoSet; import org.eclipse.team.internal.core.Assert; import org.eclipse.team.internal.ui.*; -import org.eclipse.team.ui.synchronize.ISynchronizePageConfiguration; -import org.eclipse.team.ui.synchronize.SynchronizePageActionGroup; +import org.eclipse.team.ui.synchronize.*; import org.eclipse.ui.IActionBars; /** @@ -173,21 +170,12 @@ public abstract class SynchronizeModelManager extends SynchronizePageActionGroup } /** - * Gets a new selection that contains the view model objects that - * correspond to the given objects. The advisor will try and - * convert the objects into the appropriate viewer objects. - * This is required because the model provider controls the actual - * model elements in the viewer and must be consulted in order to - * understand what objects can be selected in the viewer. - * <p> - * This method does not affect the selection of the viewer itself. - * It's main purpose is for testing and should not be used by other - * clients. - * </p> - * @param object the objects to select - * @return a selection corresponding to the given objects + * Return the model root of the currently active model provider. + * This method will wait until the model is done updating. + * It is for use by test purposes only. + * @return the model root */ - public ISelection getSelection(Object[] objects) { + public ISynchronizeModelElement getModelRoot() { if (modelProvider != null && modelProvider instanceof SynchronizeModelProvider) { ((SynchronizeModelProvider)modelProvider).waitUntilDone(new IProgressMonitor() { public void beginTask(String name, int totalWork) { @@ -209,13 +197,9 @@ public abstract class SynchronizeModelManager extends SynchronizePageActionGroup while (Display.getCurrent().readAndDispatch()) {} } }); - Object[] viewerObjects = new Object[objects.length]; - for (int i = 0; i < objects.length; i++) { - viewerObjects[i] = ((SynchronizeModelProvider)modelProvider).getMapping(objects[i]); - } - return new StructuredSelection(viewerObjects); + return modelProvider.getModelRoot(); } else { - return StructuredSelection.EMPTY; + return null; } } diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelProvider.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelProvider.java index b10f0f752..69f8cd13e 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelProvider.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SynchronizeModelProvider.java @@ -53,20 +53,6 @@ public abstract class SynchronizeModelProvider extends AbstractSynchronizeModelP // associate the root resource with the provider's root element resourceMap.put(ResourcesPlugin.getWorkspace().getRoot(), modelRoot); } - - /** - * The provider can try and return a mapping for the provided object. Providers often use mappings - * to store the source of a logical element they have created. For example, when displaying resource - * based logical elements, a provider will cache the resource -> element mapping for quick retrieval - * of the element when resource based changes are made. - * - * @param object the object to query for a mapping - * @return an object created by this provider that would be shown in a viewer, or <code>null</code> - * if the provided object is not mapped by this provider. - */ - public Object getMapping(Object object) { - return resourceMap.get(object); - } /** * Dispose of the builder diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/SynchronizeViewTestAdapter.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/SynchronizeViewTestAdapter.java index af25bd586..5ba4458a8 100644 --- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/SynchronizeViewTestAdapter.java +++ b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/SynchronizeViewTestAdapter.java @@ -12,37 +12,22 @@ package org.eclipse.team.tests.ccvs.ui; import junit.framework.AssertionFailedError; +import org.eclipse.compare.structuremergeviewer.IDiffElement; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.swt.widgets.Display; import org.eclipse.team.core.TeamException; import org.eclipse.team.core.subscribers.Subscriber; -import org.eclipse.team.core.synchronize.SyncInfo; -import org.eclipse.team.core.synchronize.SyncInfoSet; -import org.eclipse.team.core.synchronize.SyncInfoTree; -import org.eclipse.team.internal.ccvs.core.CVSCompareSubscriber; -import org.eclipse.team.internal.ccvs.core.CVSMergeSubscriber; -import org.eclipse.team.internal.ccvs.core.CVSTag; -import org.eclipse.team.internal.ccvs.ui.subscriber.CompareParticipant; -import org.eclipse.team.internal.ccvs.ui.subscriber.MergeSynchronizeParticipant; -import org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceSynchronizeParticipant; +import org.eclipse.team.core.synchronize.*; +import org.eclipse.team.internal.ccvs.core.*; +import org.eclipse.team.internal.ccvs.ui.subscriber.*; import org.eclipse.team.internal.core.subscribers.SubscriberSyncInfoCollector; import org.eclipse.team.internal.ui.TeamUIPlugin; -import org.eclipse.team.internal.ui.synchronize.SubscriberParticipantPage; -import org.eclipse.team.internal.ui.synchronize.SyncInfoModelElement; -import org.eclipse.team.internal.ui.synchronize.SynchronizeView; +import org.eclipse.team.internal.ui.synchronize.*; import org.eclipse.team.tests.ccvs.core.EclipseTest; import org.eclipse.team.tests.ccvs.core.subscriber.SyncInfoSource; import org.eclipse.team.ui.TeamUI; import org.eclipse.team.ui.synchronize.*; -import org.eclipse.team.ui.synchronize.ISynchronizeManager; -import org.eclipse.team.ui.synchronize.ISynchronizeParticipant; -import org.eclipse.team.ui.synchronize.ISynchronizeParticipantReference; -import org.eclipse.team.ui.synchronize.ISynchronizeView; -import org.eclipse.team.ui.synchronize.SubscriberParticipant; -import org.eclipse.team.ui.synchronize.WorkspaceScope; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PartInitException; import org.eclipse.ui.part.IPage; @@ -234,13 +219,9 @@ public class SynchronizeViewTestAdapter extends SyncInfoSource { IPage page = ((SynchronizeView)view).getPage(participant); if (page instanceof SubscriberParticipantPage) { SubscriberParticipantPage subscriberPage = (SubscriberParticipantPage)page; - ISelection selection = subscriberPage.getViewerAdvisor().getModelManager().getSelection(new Object[] { resource }); - if (!selection.isEmpty() && selection instanceof StructuredSelection) { - StructuredSelection ss = (StructuredSelection)selection; - Object o = ss.getFirstElement(); - if (o instanceof SyncInfoModelElement) { - return ((SyncInfoModelElement)o).getSyncInfo(); - } + ISynchronizeModelElement root = subscriberPage.getViewerAdvisor().getModelManager().getModelRoot(); + if (root != null) { + return findSyncInfo(root, resource); } } } catch (PartInitException e) { @@ -249,7 +230,29 @@ public class SynchronizeViewTestAdapter extends SyncInfoSource { return null; } - public static ISynchronizePage getSyncViewPage(ISynchronizeParticipant participant) throws PartInitException { + /** + * @param root + * @param resource + * @return + */ + private SyncInfo findSyncInfo(ISynchronizeModelElement node, IResource resource) { + if (node instanceof SyncInfoModelElement) { + SyncInfoModelElement element = (SyncInfoModelElement)node; + if (element.getResource().equals(resource)) { + return element.getSyncInfo(); + } + } + IDiffElement[] children = node.getChildren(); + for (int i = 0; i < children.length; i++) { + ISynchronizeModelElement child = (ISynchronizeModelElement)children[i]; + SyncInfo info = findSyncInfo(child, resource); + if (info != null) + return info; + } + return null; + } + + public static ISynchronizePage getSyncViewPage(ISynchronizeParticipant participant) throws PartInitException { IWorkbenchPage activePage = TeamUIPlugin.getActivePage(); ISynchronizeView view = (ISynchronizeView)activePage.showView(ISynchronizeView.VIEW_ID); IPage page = ((SynchronizeView)view).getPage(participant); |