diff options
4 files changed, 39 insertions, 9 deletions
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/messages.properties b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/messages.properties index 2c469aaf3..d4c7bc17d 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/messages.properties +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/messages.properties @@ -248,6 +248,7 @@ action.changeFilterShowAdditions.label=Show Additions action.changeFilterShowDeletions.label=Show Deletions action.changeFilterShowChanges.label=Show Changes action.layout.label=Layout +action.modes.label=Modes ############################################### # Misc diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SyncInfoSetSynchronizePage.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SyncInfoSetSynchronizePage.java index ef369029f..481ff5b35 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SyncInfoSetSynchronizePage.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/SyncInfoSetSynchronizePage.java @@ -13,20 +13,37 @@ package org.eclipse.team.internal.ui.synchronize; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.jface.action.IContributionItem; +import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.dialogs.IDialogSettings; -import org.eclipse.jface.viewers.*; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.StructuredViewer; +import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; +import org.eclipse.team.internal.ui.Policy; import org.eclipse.team.internal.ui.TeamUIPlugin; import org.eclipse.team.internal.ui.Utils; import org.eclipse.team.internal.ui.synchronize.actions.DirectionFilterActionGroup; -import org.eclipse.team.ui.synchronize.*; -import org.eclipse.ui.*; -import org.eclipse.ui.part.*; +import org.eclipse.team.ui.synchronize.ISynchronizePage; +import org.eclipse.team.ui.synchronize.ISynchronizePageConfiguration; +import org.eclipse.team.ui.synchronize.ISynchronizePageSite; +import org.eclipse.team.ui.synchronize.SynchronizePageActionGroup; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.IPageLayout; +import org.eclipse.ui.IWorkingSet; +import org.eclipse.ui.IWorkingSetManager; +import org.eclipse.ui.part.IShowInSource; +import org.eclipse.ui.part.IShowInTargetList; +import org.eclipse.ui.part.Page; +import org.eclipse.ui.part.ShowInContext; /** * Abstract synchronize page that populates the view using a sync info set @@ -67,9 +84,16 @@ public abstract class SyncInfoSetSynchronizePage extends Page implements ISynchr if (modes == null) return; IToolBarManager manager = actionBars.getToolBarManager(); IContributionItem group = findGroup(manager, ISynchronizePageConfiguration.MODE_GROUP); - if (group != null) { + if (manager != null && group != null) { modes.fillToolBar(group.getId(), manager); } + IMenuManager viewMenu = actionBars.getMenuManager(); + group = findGroup(manager, ISynchronizePageConfiguration.MODE_GROUP); + if (viewMenu != null && group != null) { + MenuManager modesItem = new MenuManager(Policy.bind("action.modes.label")); //$NON-NLS-1$ + viewMenu.appendToGroup(group.getId(), modesItem); + modes.fillMenu(modesItem); + } } private boolean isThreeWay() { return ISynchronizePageConfiguration.THREE_WAY.equals(configuration.getComparisonType()); diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/actions/DirectionFilterActionGroup.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/actions/DirectionFilterActionGroup.java index 826c20217..3af7efa9b 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/actions/DirectionFilterActionGroup.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/synchronize/actions/DirectionFilterActionGroup.java @@ -14,6 +14,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IContributionManager; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent; @@ -161,9 +162,6 @@ public class DirectionFilterActionGroup extends ActionGroup implements IProperty } } - /* (non-Javadoc) - * @see org.eclipse.ui.actions.ActionGroup#fillActionBars(org.eclipse.ui.IActionBars) - */ public void fillToolBar(String groupId, IToolBarManager toolBar) { for (Iterator it = actions.iterator(); it.hasNext();) { DirectionFilterAction action = (DirectionFilterAction) it.next(); @@ -171,6 +169,13 @@ public class DirectionFilterActionGroup extends ActionGroup implements IProperty } } + public void fillMenu(IContributionManager manager) { + for (Iterator it = actions.iterator(); it.hasNext();) { + DirectionFilterAction action = (DirectionFilterAction) it.next(); + manager.add(action); + } + } + private void checkMode(int mode) { for (Iterator it = actions.iterator(); it.hasNext();) { DirectionFilterAction action = (DirectionFilterAction)it.next(); diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ISynchronizePageConfiguration.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ISynchronizePageConfiguration.java index 0eab60694..2c5ade511 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ISynchronizePageConfiguration.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ISynchronizePageConfiguration.java @@ -204,7 +204,7 @@ public interface ISynchronizePageConfiguration { * by adding new unique group ids to the array. Added groups * will appear in the order specified but after the default groups. */ - public static final String[] DEFAULT_VIEW_MENU = new String[] { WORKING_SET_GROUP, LAYOUT_GROUP, SYNCHRONIZE_GROUP, PREFERENCES_GROUP }; + public static final String[] DEFAULT_VIEW_MENU = new String[] { WORKING_SET_GROUP, LAYOUT_GROUP, MODE_GROUP, SYNCHRONIZE_GROUP, PREFERENCES_GROUP }; /** * Comparison type contstants |