From 9a132b16227c28211eb4a9e5c799c67b26615b84 Mon Sep 17 00:00:00 2001 From: Michael Valenta Date: Wed, 28 Apr 2004 15:44:22 +0000 Subject: Initial release of page based synchronize API --- .../ui/subscriber/MergeSynchronizeParticipant.java | 61 +++++++++++++++++----- 1 file changed, 48 insertions(+), 13 deletions(-) (limited to 'bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizeParticipant.java') diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizeParticipant.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizeParticipant.java index e1e8d53bf..3e4421541 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizeParticipant.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/subscriber/MergeSynchronizeParticipant.java @@ -12,21 +12,28 @@ package org.eclipse.team.internal.ccvs.ui.subscriber; import java.util.ArrayList; import java.util.List; - import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.*; +import org.eclipse.jface.action.IToolBarManager; import org.eclipse.team.core.subscribers.Subscriber; import org.eclipse.team.internal.ccvs.core.*; import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin; import org.eclipse.team.internal.ccvs.ui.Policy; +import org.eclipse.team.internal.ui.Utils; +import org.eclipse.team.internal.ui.synchronize.ActionDelegateWrapper; import org.eclipse.team.ui.TeamUI; import org.eclipse.team.ui.synchronize.*; -import org.eclipse.team.ui.synchronize.subscribers.SubscriberParticipant; -import org.eclipse.ui.IMemento; -import org.eclipse.ui.PartInitException; +import org.eclipse.ui.*; -public class MergeSynchronizeParticipant extends SubscriberParticipant { +public class MergeSynchronizeParticipant extends CVSParticipant { + + /** + * The id of a workspace action group to which additions actions can + * be added. + */ + public static final String ACTION_GROUP = "cvs_merge_actions"; //$NON-NLS-1$ + private final static String CTX_ROOT = "root"; //$NON-NLS-1$ private final static String CTX_ROOT_PATH = "root_resource"; //$NON-NLS-1$ @@ -35,22 +42,38 @@ public class MergeSynchronizeParticipant extends SubscriberParticipant { private final static String CTX_END_TAG = "end_tag"; //$NON-NLS-1$ private final static String CTX_END_TAG_TYPE = "end_tag_type"; //$NON-NLS-1$ + /** + * Actions for the merge particpant's toolbar + */ + public class MergeParticipantActionContribution extends SynchronizePageActionGroup { + private ActionDelegateWrapper updateAdapter; + public void initialize(ISynchronizePageConfiguration configuration) { + super.initialize(configuration); + MergeUpdateAction action = new MergeUpdateAction(); + action.setPromptBeforeUpdate(true); + updateAdapter = new ActionDelegateWrapper(action, configuration.getSite().getPart()); + Utils.initAction(updateAdapter, "action.SynchronizeViewUpdate.", Policy.getBundle()); //$NON-NLS-1$ + super.initialize(configuration); + } + public void modelChanged(ISynchronizeModelElement input) { + if (updateAdapter == null) return; + updateAdapter.setSelection(input); + } + public void fillActionBars(IActionBars actionBars) { + IToolBarManager toolbar = actionBars.getToolBarManager(); + appendToGroup(toolbar, ACTION_GROUP, updateAdapter); + super.fillActionBars(actionBars); + } + } + public MergeSynchronizeParticipant() { super(); } public MergeSynchronizeParticipant(CVSMergeSubscriber subscriber) { - super(); setSubscriber(subscriber); } - /* (non-Javadoc) - * @see org.eclipse.team.ui.synchronize.subscriber.SubscriberParticipant#createSynchronizeViewerAdvisor(org.eclipse.team.ui.synchronize.ISynchronizeView) - */ - protected StructuredViewerAdvisor createSynchronizeViewerAdvisor(ISynchronizeView view) { - return new MergeSynchronizeAdvisor(view, this); - } - /* (non-Javadoc) * @see org.eclipse.team.ui.sync.SubscriberParticipant#setSubscriber(org.eclipse.team.core.subscribers.TeamSubscriber) */ @@ -163,4 +186,16 @@ public class MergeSynchronizeParticipant extends SubscriberParticipant { private void flushStateCache() { ((CVSMergeSubscriber)getSubscriber()).cancel(); } + + /* (non-Javadoc) + * @see org.eclipse.team.ui.synchronize.subscribers.SubscriberParticipant#initializeConfiguration(org.eclipse.team.ui.synchronize.ISynchronizePageConfiguration) + */ + protected void initializeConfiguration(ISynchronizePageConfiguration configuration) { + super.initializeConfiguration(configuration); + configuration.addMenuGroup(ISynchronizePageConfiguration.P_TOOLBAR_MENU, ACTION_GROUP); + configuration.addMenuGroup(ISynchronizePageConfiguration.P_TOOLBAR_MENU, ISynchronizePageConfiguration.REMOVE_PARTICPANT_GROUP); + configuration.setSupportedModes(ISynchronizePageConfiguration.INCOMING_MODE | ISynchronizePageConfiguration.CONFLICTING_MODE); + configuration.setMode(ISynchronizePageConfiguration.INCOMING_MODE); + configuration.addActionContribution(new MergeParticipantActionContribution()); + } } \ No newline at end of file -- cgit v1.2.3