123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- using System.Collections.Generic;
-
- using UnityEngine;
-
- using Codice.CM.Common;
- using PlasticGui;
- using PlasticGui.WorkspaceWindow.Open;
- using PlasticGui.WorkspaceWindow.PendingChanges;
- using PlasticGui.WorkspaceWindow.PendingChanges.Changelists;
- using Unity.PlasticSCM.Editor.Views.PendingChanges.Changelists;
-
- namespace Unity.PlasticSCM.Editor.Views.PendingChanges
- {
- internal class PendingChangesViewMenu
- {
- internal interface IGetSelectedNodes
- {
- List<IPlasticTreeNode> GetSelectedNodes();
- }
-
- internal PendingChangesViewMenu(
- WorkspaceInfo wkInfo,
- IPendingChangesMenuOperations pendingChangesViewOperations,
- IFilesFilterPatternsMenuOperations filterMenuOperations,
- IOpenMenuOperations openMenuOperations,
- PendingChangesViewPendingChangeMenu.IMetaMenuOperations metaMenuOperations,
- PendingChangesViewPendingChangeMenu.IAdvancedUndoMenuOperations advancedUndoMenuOperations,
- IChangelistMenuOperations changelistMenuOperations,
- IGetSelectedNodes getSelectedNodes,
- bool isGluonMode)
- {
- mWkInfo = wkInfo;
- mPendingChangesViewOperations = pendingChangesViewOperations;
- mFilterMenuOperations = filterMenuOperations;
- mOpenMenuOperations = openMenuOperations;
- mMetaMenuOperations = metaMenuOperations;
- mAdvancedUndoMenuOperations = advancedUndoMenuOperations;
- mChangelistMenuOperations = changelistMenuOperations;
- mGetSelectedNodes = getSelectedNodes;
- mIsGluonMode = isGluonMode;
- }
-
- internal void Popup()
- {
- List<IPlasticTreeNode> selectedNodes = mGetSelectedNodes.GetSelectedNodes();
-
- if (AreAllChangelists(selectedNodes))
- {
- GetChangelistMenu().Popup();
- return;
- }
-
- if (AreAllPendingChanges(selectedNodes))
- {
- GetPendingChangeMenu().Popup();
- return;
- }
- }
-
- internal bool ProcessKeyActionIfNeeded(Event e)
- {
- List<IPlasticTreeNode> selectedNodes = mGetSelectedNodes.GetSelectedNodes();
-
- if (AreAllChangelists(selectedNodes))
- {
- return GetChangelistMenu().ProcessKeyActionIfNeeded(e);
- }
-
- if (AreAllPendingChanges(selectedNodes))
- {
- return GetPendingChangeMenu().ProcessKeyActionIfNeeded(e);
- }
-
- return false;
- }
-
- PendingChangesViewPendingChangeMenu GetPendingChangeMenu()
- {
- if (mPendingChangeMenu == null)
- {
- mPendingChangeMenu = new PendingChangesViewPendingChangeMenu(
- mWkInfo,
- mPendingChangesViewOperations,
- mChangelistMenuOperations,
- mOpenMenuOperations,
- mMetaMenuOperations,
- mAdvancedUndoMenuOperations,
- mFilterMenuOperations,
- mIsGluonMode);
- }
-
- return mPendingChangeMenu;
- }
-
- ChangelistMenu GetChangelistMenu()
- {
- if (mChangelistMenu == null)
- mChangelistMenu = new ChangelistMenu(
- mChangelistMenuOperations,
- mIsGluonMode);
-
- return mChangelistMenu;
- }
-
- static bool AreAllChangelists(List<IPlasticTreeNode> selectedNodes)
- {
- foreach (IPlasticTreeNode node in selectedNodes)
- {
- if (!(node is ChangelistNode))
- return false;
- }
- return true;
- }
-
- static bool AreAllPendingChanges(List<IPlasticTreeNode> selectedNodes)
- {
- foreach (IPlasticTreeNode node in selectedNodes)
- {
- if (!(node is PendingChangeInfo))
- return false;
- }
- return true;
- }
-
- PendingChangesViewPendingChangeMenu mPendingChangeMenu;
- ChangelistMenu mChangelistMenu;
-
- readonly WorkspaceInfo mWkInfo;
- readonly IPendingChangesMenuOperations mPendingChangesViewOperations;
- readonly IFilesFilterPatternsMenuOperations mFilterMenuOperations;
- readonly IOpenMenuOperations mOpenMenuOperations;
- readonly PendingChangesViewPendingChangeMenu.IMetaMenuOperations mMetaMenuOperations;
- readonly PendingChangesViewPendingChangeMenu.IAdvancedUndoMenuOperations mAdvancedUndoMenuOperations;
- readonly IChangelistMenuOperations mChangelistMenuOperations;
- readonly IGetSelectedNodes mGetSelectedNodes;
- readonly bool mIsGluonMode;
- }
- }
|