示例#1
0
        static void DoProcessMergesButton(
            bool isEnabled,
            string processMergesButtonText,
            IViewSwitcher switcher,
            IWorkspaceWindow workspaceWindow,
            GuiMessage.IGuiMessage guiMessage,
            MergeViewLogic mergeViewLogic,
            Action afterProcessMergesAction)
        {
            GUI.enabled = isEnabled;

            if (DrawActionButton.For(processMergesButtonText))
            {
                mergeViewLogic.ProcessMerges(
                    workspaceWindow,
                    switcher,
                    guiMessage,
                    new List <string>(),
                    MergeContributorType.MergeContributors,
                    afterProcessMergesAction,
                    null);
            }

            GUI.enabled = true;
        }
示例#2
0
 internal ContinueWithPendingChangesQuestionerBuilder(
     IViewSwitcher viewSwitcher,
     EditorWindow parentWindow)
 {
     mViewSwitcher = viewSwitcher;
     mParentWindow = parentWindow;
 }
示例#3
0
        internal AssetOperations(
            WorkspaceInfo wkInfo,
            IWorkspaceWindow workspaceWindow,
            IViewSwitcher viewSwitcher,
            IHistoryViewLauncher historyViewLauncher,
            ViewHost viewHost,
            NewIncomingChangesUpdater newIncomingChangesUpdater,
            IAssetStatusCache assetStatusCache,
            IMergeViewLauncher mergeViewLauncher,
            IGluonViewSwitcher gluonViewSwitcher,
            EditorWindow parentWindow,
            IAssetSelection assetSelection,
            bool isGluonMode)
        {
            mWkInfo                    = wkInfo;
            mWorkspaceWindow           = workspaceWindow;
            mViewSwitcher              = viewSwitcher;
            mHistoryViewLauncher       = historyViewLauncher;
            mViewHost                  = viewHost;
            mNewIncomingChangesUpdater = newIncomingChangesUpdater;
            mAssetStatusCache          = assetStatusCache;
            mMergeViewLauncher         = mergeViewLauncher;
            mGluonViewSwitcher         = gluonViewSwitcher;
            mAssetSelection            = assetSelection;
            mIsGluonMode               = isGluonMode;
            mParentWindow              = parentWindow;

            mGuiMessage       = new UnityPlasticGuiMessage(parentWindow);
            mProgressControls = new EditorProgressControls(mGuiMessage);
        }
示例#4
0
        internal ChangesetsTab(
            WorkspaceInfo wkInfo,
            IWorkspaceWindow workspaceWindow,
            IViewSwitcher viewSwitcher,
            IHistoryViewLauncher historyViewLauncher,
            EditorWindow parentWindow,
            bool isGluonMode)
        {
            mWkInfo       = wkInfo;
            mParentWindow = parentWindow;
            mIsGluonMode  = isGluonMode;

            BuildComponents(
                wkInfo, workspaceWindow, viewSwitcher,
                historyViewLauncher, parentWindow);

            mProgressControls = new ProgressControlsForViews();

            mSplitterState = PlasticSplitterGUILayout.InitSplitterState(
                new float[] { 0.50f, 0.50f },
                new int[] { 100, (int)UnityConstants.DIFF_PANEL_MIN_WIDTH },
                new int[] { 100000, 100000 }
                );

            mBorderColor = EditorGUIUtility.isProSkin
                ? (Color) new Color32(35, 35, 35, 255)
                : (Color) new Color32(153, 153, 153, 255);

            ((IRefreshableView)this).Refresh();
        }
示例#5
0
        internal static void BuildOperations(
            WorkspaceInfo wkInfo,
            WorkspaceWindow workspaceWindow,
            IViewSwitcher viewSwitcher,
            IHistoryViewLauncher historyViewLauncher,
            GluonGui.ViewHost viewHost,
            PlasticGui.WorkspaceWindow.NewIncomingChangesUpdater incomingChangesUpdater,
            IMergeViewLauncher mergeViewLauncher,
            PlasticGui.Gluon.IGluonViewSwitcher gluonViewSwitcher,
            EditorWindow parentWindow,
            bool isGluonMode)
        {
            if (!sIsEnabled)
            {
                Enable();
            }

            sOperations = new AssetOperations(
                wkInfo,
                workspaceWindow,
                viewSwitcher,
                historyViewLauncher,
                viewHost,
                incomingChangesUpdater,
                PlasticPlugin.AssetStatusCache,
                mergeViewLauncher,
                gluonViewSwitcher,
                parentWindow,
                sAssetSelection,
                isGluonMode);
        }
示例#6
0
        internal PlasticGUIClient(
            WorkspaceInfo wkInfo,
            IViewSwitcher switcher,
            IMergeViewLauncher mergeViewLauncher,
            ViewHost viewHost,
            PlasticGui.WorkspaceWindow.PendingChanges.PendingChanges pendingChanges,
            NewIncomingChangesUpdater developerNewIncomingChangesUpdater,
            GluonNewIncomingChangesUpdater gluonNewIncomingChangesUpdater,
            EditorWindow parentWindow,
            GuiMessage.IGuiMessage guiMessage)
        {
            mWkInfo            = wkInfo;
            mSwitcher          = switcher;
            mMergeViewLauncher = mergeViewLauncher;
            mViewHost          = viewHost;
            mPendingChanges    = pendingChanges;
            mDeveloperNewIncomingChangesUpdater = developerNewIncomingChangesUpdater;
            mGluonNewIncomingChangesUpdater     = gluonNewIncomingChangesUpdater;
            mPlasticWindow = parentWindow;
            mGuiMessage    = guiMessage;

            ((IWorkspaceWindow)this).UpdateTitle();

            mCheckedStateManager = new CheckedStateManager();

            mDeveloperProgressOperationHandler = new Developer.ProgressOperationHandler(mWkInfo, this);
            mGluonProgressOperationHandler     = new Gluon.ProgressOperationHandler(this);
        }
示例#7
0
        internal ChangesetsTab(
            WorkspaceInfo wkInfo,
            IWorkspaceWindow workspaceWindow,
            IViewSwitcher viewSwitcher,
            IHistoryViewLauncher historyViewLauncher,
            EditorWindow parentWindow,
            bool isGluonMode)
        {
            mWkInfo       = wkInfo;
            mParentWindow = parentWindow;
            mIsGluonMode  = isGluonMode;

            BuildComponents(
                wkInfo, workspaceWindow, viewSwitcher,
                historyViewLauncher, parentWindow);

            mProgressControls = new ProgressControlsForViews();

            mSplitterState = PlasticSplitterGUILayout.InitSplitterState(
                new float[] { 0.50f, 0.50f },
                new int[] { 100, 100 },
                new int[] { 100000, 100000 }
                );

            ((IRefreshableView)this).Refresh();
        }
        internal BranchesTab(
            WorkspaceInfo wkInfo,
            IWorkspaceWindow workspaceWindow,
            IViewSwitcher viewSwitcher,
            IMergeViewLauncher mergeViewLauncher,
            IUpdateReport updateReport,
            NewIncomingChangesUpdater developerNewIncomingChangesUpdater,
            EditorWindow parentWindow)
        {
            mWkInfo           = wkInfo;
            mParentWindow     = parentWindow;
            mProgressControls = new ProgressControlsForViews();

            mProgressControls = new ProgressControlsForViews();

            BuildComponents(
                wkInfo,
                workspaceWindow,
                viewSwitcher,
                mergeViewLauncher,
                updateReport,
                developerNewIncomingChangesUpdater,
                parentWindow);

            ((IRefreshableView)this).Refresh();
        }
示例#9
0
 public AnsweringViewModel(TestController tester, IViewSwitcher viewSwitcher)
 {
     _testController = tester;
     _viewSwitcher   = viewSwitcher;
     GetListOfExaminationItems();
     CheckAnswersCommand = new Command((a) => { return(true); }, (a) => CheckAnswers());
 }
        public EntryPointViewModel(IViewSwitcher viewSwitcher, int numberOfKnownWords)
        {
            _viewSwitcher      = viewSwitcher;
            NumberOfKnownWords = numberOfKnownWords;

            _questionsCommand    = new Command((a) => { return(NumberOfKnownWords != 0); }, (a) => StartAnsweringMode());
            _learnedWordsCommand = new Command((a) => { return(true); }, (a) => StartLearnedWordsMode());
        }
示例#11
0
 public ResultsViewModel(TestController tester, IViewSwitcher viewSwitcher)
 {
     _testController      = tester;
     _viewSwitcher        = viewSwitcher;
     _questionsCommand    = new Command((a) => { return(true); }, (a) => StartAnsweringMode());
     _learnedWordsCommand = new Command((a) => { return(true); }, (a) => StartLearnedWordsMode());
     RefreshListOfExaminationItems();
 }
示例#12
0
        internal PendingChangesTab(
            WorkspaceInfo wkInfo,
            ViewHost viewHost,
            bool isGluonMode,
            WorkspaceWindow workspaceWindow,
            IViewSwitcher switcher,
            IMergeViewLauncher mergeViewLauncher,
            IHistoryViewLauncher historyViewLauncher,
            PlasticGui.WorkspaceWindow.PendingChanges.PendingChanges pendingChanges,
            NewIncomingChangesUpdater developerNewIncomingChangesUpdater,
            GluonNewIncomingChangesUpdater gluonNewIncomingChangesUpdater,
            IAssetStatusCache assetStatusCache,
            NotificationDrawer notificationDrawer,
            EditorWindow parentWindow)
        {
            mWkInfo              = wkInfo;
            mViewHost            = viewHost;
            mIsGluonMode         = isGluonMode;
            mWorkspaceWindow     = workspaceWindow;
            mHistoryViewLauncher = historyViewLauncher;
            mPendingChanges      = pendingChanges;
            mDeveloperNewIncomingChangesUpdater = developerNewIncomingChangesUpdater;
            mGluonNewIncomingChangesUpdater     = gluonNewIncomingChangesUpdater;
            mAssetStatusCache    = assetStatusCache;
            mNotificationDrawer  = notificationDrawer;
            mParentWindow        = parentWindow;
            mGuiMessage          = new UnityPlasticGuiMessage(parentWindow);
            mMergeViewLauncher   = mergeViewLauncher;
            mCheckedStateManager = new CheckedStateManager();

            mNewChangesInWk = NewChangesInWk.Build(
                mWkInfo,
                new BuildWorkspacekIsRelevantNewChange());

            BuildComponents(isGluonMode, parentWindow);

            mBorderColor = EditorGUIUtility.isProSkin
                ? (Color) new Color32(35, 35, 35, 255)
                : (Color) new Color32(153, 153, 153, 255);

            mProgressControls = new ProgressControlsForViews();

            workspaceWindow.RegisterPendingChangesProgressControls(mProgressControls);

            mPendingChangesOperations = new PendingChangesOperations(
                mWkInfo,
                workspaceWindow,
                switcher,
                mergeViewLauncher,
                this,
                mProgressControls,
                workspaceWindow,
                null,
                null,
                null);

            InitIgnoreRulesAndRefreshView(mWkInfo.ClientPath, this);
        }
示例#13
0
 public MenuLayer(IGuiServices guiServices,
                  IViewSwitcher viewSwitcher,
                  ITexts texts,
                  ICommonGuiFactory commonGuiFactory) : base(guiServices)
 {
     _viewSwitcher     = viewSwitcher;
     _texts            = texts;
     _commonGuiFactory = commonGuiFactory;
 }
示例#14
0
 public TerrainView(IGuiServices guiServices,
                    TerrainLayer terrainLayer,
                    CharactersLayer charactersLayer,
                    IViewSwitcher viewSwitcher) : base(guiServices)
 {
     _viewSwitcher = viewSwitcher;
     Layers        = new List <Layer> {
         terrainLayer, charactersLayer
     };
 }
示例#15
0
 internal ContinueWithPendingChangesQuestioner(
     string title,
     string explanation,
     IViewSwitcher viewSwitcher,
     EditorWindow parentWindow)
 {
     mTitle        = title;
     mExplanation  = explanation;
     mViewSwitcher = viewSwitcher;
     mParentWindow = parentWindow;
 }
示例#16
0
 public CommonGuiFactory(
     IGuiServices guiServices,
     ITexts texts,
     IGameArchive gameArchive,
     IViewSwitcher viewSwitcher)
 {
     _guiServices  = guiServices;
     _texts        = texts;
     _gameArchive  = gameArchive;
     _viewSwitcher = viewSwitcher;
 }
示例#17
0
        static ConfirmContinueWithPendingChangesDialog Create(
            string title,
            string explanation,
            IViewSwitcher viewSwitcher)
        {
            var instance = CreateInstance <ConfirmContinueWithPendingChangesDialog>();

            instance.mTitle        = title;
            instance.mExplanation  = explanation;
            instance.mViewSwitcher = viewSwitcher;
            return(instance);
        }
示例#18
0
 public CityIncidents(IArmiesRepository armiesRepository,
                      ICharactersRepository charactersRepository,
                      IDefinitionsRepository definitionsRepository,
                      IArmiesHelper armiesHelper,
                      IMessagesService messagesService,
                      IViewSwitcher viewSwitcher)
 {
     _armiesRepository      = armiesRepository;
     _charactersRepository  = charactersRepository;
     _definitionsRepository = definitionsRepository;
     _armiesHelper          = armiesHelper;
     _messagesService       = messagesService;
     _viewSwitcher          = viewSwitcher;
 }
示例#19
0
 public BattleManager(IArmiesRepository armiesRepository,
                      IPlayersRepository playersRepository,
                      IArmiesHelper armiesHelper,
                      ICitiesHelper citiesHelper,
                      IMessagesService messagesService,
                      IViewSwitcher viewSwitcher)
 {
     _playersRepository = playersRepository;
     _armiesRepository  = armiesRepository;
     _armiesHelper      = armiesHelper;
     _citiesHelper      = citiesHelper;
     _messagesService   = messagesService;
     _viewSwitcher      = viewSwitcher;
 }
示例#20
0
        internal IncomingChangesTab(
            WorkspaceInfo wkInfo,
            IWorkspaceWindow workspaceWindow,
            IViewSwitcher switcher,
            NewIncomingChangesUpdater newIncomingChangesUpdater,
            EditorWindow parentWindow)
        {
            mWkInfo                    = wkInfo;
            mWorkspaceWindow           = workspaceWindow;
            mSwitcher                  = switcher;
            mNewIncomingChangesUpdater = newIncomingChangesUpdater;
            mParentWindow              = parentWindow;
            mGuiMessage                = new UnityPlasticGuiMessage();

            BuildComponents(mWkInfo);

            mProgressControls = new ProgressControlsForViews();

            mCooldownClearUpdateSuccessAction = new CooldownWindowDelayer(
                DelayedClearUpdateSuccess,
                UnityConstants.NOTIFICATION_CLEAR_INTERVAL);

            PlasticNotifier plasticNotifier = new PlasticNotifier();

            mMergeController = new MergeController(
                mWkInfo,
                null,
                null,
                EnumMergeType.IncomingMerge,
                true,
                plasticNotifier,
                null);

            mMergeViewLogic = new MergeViewLogic(
                mWkInfo,
                EnumMergeType.IncomingMerge,
                true,
                mMergeController,
                plasticNotifier,
                ShowIncomingChangesFrom.NotificationBar,
                null,
                mNewIncomingChangesUpdater,
                null,
                this,
                NewChangesInWk.Build(mWkInfo, new BuildWorkspacekIsRelevantNewChange()),
                mProgressControls,
                null);

            ((IRefreshableView)this).Refresh();
        }
示例#21
0
        internal DiffPanel(
            WorkspaceInfo wkInfo,
            IWorkspaceWindow workspaceWindow,
            IViewSwitcher viewSwitcher,
            EditorWindow parentWindow)
        {
            mWkInfo          = wkInfo;
            mWorkspaceWindow = workspaceWindow;
            mViewSwitcher    = viewSwitcher;
            mParentWindow    = parentWindow;
            mGuiMessage      = new UnityPlasticGuiMessage(parentWindow);

            BuildComponents();

            mProgressControls = new ProgressControlsForViews();
        }
        void BuildComponents(
            WorkspaceInfo wkInfo,
            IWorkspaceWindow workspaceWindow,
            IViewSwitcher viewSwitcher,
            IMergeViewLauncher mergeViewLauncher,
            IUpdateReport updateReport,
            NewIncomingChangesUpdater developerNewIncomingChangesUpdater,
            EditorWindow parentWindow)
        {
            mSearchField = new SearchField();
            mSearchField.downOrUpArrowKeyPressed += SearchField_OnDownOrUpArrowKeyPressed;

            DateFilter.Type dateFilterType =
                EnumPopupSetting <DateFilter.Type> .Load(
                    UnityConstants.BRANCHES_DATE_FILTER_SETTING_NAME,
                    DateFilter.Type.LastMonth);

            mDateFilter = new DateFilter(dateFilterType);

            BranchesListHeaderState headerState =
                BranchesListHeaderState.GetDefault();

            TreeHeaderSettings.Load(headerState,
                                    UnityConstants.BRANCHES_TABLE_SETTINGS_NAME,
                                    (int)BranchesListColumn.CreationDate, false);

            mBranchesListView = new BranchesListView(
                headerState,
                BranchesListHeaderState.GetColumnNames(),
                new BranchesViewMenu(this),
                sizeChangedAction: OnBranchesListViewSizeChanged);

            mBranchesListView.Reload();

            mBranchOperations = new BranchOperations(
                wkInfo,
                workspaceWindow,
                viewSwitcher,
                mergeViewLauncher,
                this,
                ViewType.BranchesView,
                mProgressControls,
                updateReport,
                new ContinueWithPendingChangesQuestionerBuilder(viewSwitcher, parentWindow),
                developerNewIncomingChangesUpdater);
        }
示例#23
0
        internal IncomingChangesTab(
            WorkspaceInfo wkInfo,
            IViewSwitcher switcher,
            PlasticGUIClient plasticClient,
            NewIncomingChangesUpdater newIncomingChangesUpdater,
            EditorWindow parentWindow)
        {
            mWkInfo                    = wkInfo;
            mSwitcher                  = switcher;
            mPlasticClient             = plasticClient;
            mNewIncomingChangesUpdater = newIncomingChangesUpdater;
            mParentWindow              = parentWindow;
            mGuiMessage                = new UnityPlasticGuiMessage(parentWindow);

            BuildComponents(mWkInfo);

            mProgressControls = new ProgressControlsForViews();

            PlasticNotifier plasticNotifier = new PlasticNotifier();

            mMergeController = new MergeController(
                mWkInfo,
                null,
                null,
                EnumMergeType.IncomingMerge,
                true,
                plasticNotifier,
                null);

            mMergeViewLogic = new MergeViewLogic(
                mWkInfo,
                EnumMergeType.IncomingMerge,
                true,
                mMergeController,
                plasticNotifier,
                ShowIncomingChangesFrom.NotificationBar,
                null,
                mNewIncomingChangesUpdater,
                null,
                this,
                NewChangesInWk.Build(mWkInfo, new BuildWorkspacekIsRelevantNewChange()),
                mProgressControls,
                null);

            ((IRefreshableView)this).Refresh();
        }
        public LearnedItemsAddViewModel(TestController testController, IViewSwitcher viewSwitcher)
        {
            _viewSwitcher   = viewSwitcher;
            _testController = testController;

            GetQuestionsCommand = new Command(
                CanExecute: (a) => { return(_testController.GetNumberOfKnownItems() != 0); },
                Execute: (a) => StartAnsweringMode());

            foreach (var en in Enum.GetValues(typeof(LearnedWordTypeEnum)))
            {
                _allowedWordTypes.Add((LearnedWordTypeEnum)en);
            }

            _messageDisplay = "Add the new words that you've learned!";

            UpdateLearnedWordControl();
        }
示例#25
0
        internal DiffPanel(
            WorkspaceInfo wkInfo,
            IWorkspaceWindow workspaceWindow,
            IViewSwitcher viewSwitcher,
            IHistoryViewLauncher historyViewLauncher,
            EditorWindow parentWindow,
            bool isGluonMode)
        {
            mWkInfo              = wkInfo;
            mWorkspaceWindow     = workspaceWindow;
            mViewSwitcher        = viewSwitcher;
            mHistoryViewLauncher = historyViewLauncher;
            mParentWindow        = parentWindow;
            mGuiMessage          = new UnityPlasticGuiMessage(parentWindow);
            mIsGluonMode         = isGluonMode;

            BuildComponents();

            mProgressControls = new ProgressControlsForViews();
        }
示例#26
0
        void BuildComponents(
            WorkspaceInfo wkInfo,
            IWorkspaceWindow workspaceWindow,
            IViewSwitcher viewSwitcher,
            IHistoryViewLauncher historyViewLauncher,
            EditorWindow parentWindow)
        {
            mSearchField = new SearchField();
            mSearchField.downOrUpArrowKeyPressed += SearchField_OnDownOrUpArrowKeyPressed;

            DateFilter.Type dateFilterType =
                EnumPopupSetting <DateFilter.Type> .Load(
                    UnityConstants.CHANGESETS_DATE_FILTER_SETTING_NAME,
                    DateFilter.Type.LastMonth);

            mDateFilter = new DateFilter(dateFilterType);

            ChangesetsListHeaderState headerState =
                ChangesetsListHeaderState.GetDefault();

            TreeHeaderSettings.Load(headerState,
                                    UnityConstants.CHANGESETS_TABLE_SETTINGS_NAME,
                                    (int)ChangesetsListColumn.CreationDate, false);

            mChangesetsListView = new ChangesetsListView(
                headerState,
                ChangesetsListHeaderState.GetColumnNames(),
                new ChangesetsViewMenu(this, this, mIsGluonMode),
                sizeChangedAction: OnChangesetsListViewSizeChanged,
                selectionChangedAction: OnSelectionChanged,
                doubleClickAction: ((IChangesetMenuOperations)this).DiffChangeset);
            mChangesetsListView.Reload();

            mIsChangesPanelVisible = BoolSetting.Load(
                UnityConstants.CHANGESETS_SHOW_CHANGES_SETTING_NAME,
                true);

            mDiffPanel = new DiffPanel(
                wkInfo, workspaceWindow, viewSwitcher,
                historyViewLauncher, parentWindow, mIsGluonMode);
        }
示例#27
0
        static void DoProcessMergesButton(
            bool isEnabled,
            string processMergesButtonText,
            IViewSwitcher switcher,
            PlasticGUIClient plasticClient,
            GuiMessage.IGuiMessage guiMessage,
            MergeViewLogic mergeViewLogic)
        {
            GUI.enabled = isEnabled;

            if (DrawActionButton.For(processMergesButtonText))
            {
                mergeViewLogic.ProcessMerges(
                    plasticClient,
                    switcher,
                    guiMessage,
                    new List <string>(),
                    MergeContributorType.MergeContributors,
                    Refresh.UnityAssetDatabase);
            }

            GUI.enabled = true;
        }
示例#28
0
        internal static bool ConfirmContinue(
            string title,
            string explanation,
            IViewSwitcher viewSwitcher,
            EditorWindow parentWindow)
        {
            ConfirmContinueWithPendingChangesDialog dialog = Create(
                title,
                explanation,
                viewSwitcher);

            if (dialog.RunModal(parentWindow) != ResponseType.Ok)
            {
                return(false);
            }

            if (dialog.mIsSwitchToConfirmationChecked)
            {
                SavePreference();
            }

            return(true);
        }