Exemplo n.º 1
0
        internal UpdateProgress(
            UpdateNotifier notifier, string wkPath, string title,
            WorkspaceWindow workspaceWindow)
        {
            mNotifier        = notifier;
            mWkPath          = wkPath;
            mWorkspaceWindow = workspaceWindow;

            mProgressData = new BuildProgressSpeedAndRemainingTime.ProgressData(DateTime.Now);

            mWorkspaceWindow.Progress.ProgressHeader    = title;
            mWorkspaceWindow.Progress.CanCancelProgress = false;
        }
Exemplo n.º 2
0
        private void Attach()
        {
            _ownerWindow = WorkspaceWindow.GetOuterWorkspaceWindow(_ownerView.Control);

            var workSpace = App.Current.Workspace;

            if (this.EnableAlertOnWindowActiving)
            {
                workSpace.WindowActiving += Workspace_WindowActiving;
            }
            workSpace.WindowClosing += workSpace_WindowClosing;
            workSpace.WindowClosed  += workSpace_WindowClosed;
        }
Exemplo n.º 3
0
        internal IncomingChangesTab(
            WorkspaceInfo wkInfo,
            ViewHost viewHost,
            WorkspaceWindow workspaceWindow,
            NewIncomingChangesUpdater newIncomingChangesUpdater,
            CheckIncomingChanges.IUpdateIncomingChanges updateIncomingChanges,
            StatusBar statusBar,
            EditorWindow parentWindow)
        {
            mWkInfo = wkInfo;
            mNewIncomingChangesUpdater = newIncomingChangesUpdater;
            mParentWindow = parentWindow;
            mStatusBar    = statusBar;

            BuildComponents();

            mProgressControls = new ProgressControlsForViews();

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

            mErrorsSplitterState = PlasticSplitterGUILayout.InitSplitterState(
                new float[] { 0.75f, 0.25f },
                new int[] { 100, 100 },
                new int[] { 100000, 100000 }
                );

            mErrorDetailsSplitterState = PlasticSplitterGUILayout.InitSplitterState(
                new float[] { 0.60f, 0.40f },
                new int[] { 100, 100 },
                new int[] { 100000, 100000 }
                );

            mIncomingChangesViewLogic = new IncomingChangesViewLogic(
                wkInfo, viewHost, this, new UnityPlasticGuiMessage(parentWindow),
                mProgressControls, updateIncomingChanges,
                workspaceWindow.GluonProgressOperationHandler, workspaceWindow,
                new IncomingChangesViewLogic.ApplyWorkspaceLocalChanges(),
                new IncomingChangesViewLogic.OutOfDateItemsOperations(),
                new IncomingChangesViewLogic.ResolveUserName(),
                new IncomingChangesViewLogic.GetWorkingBranch(),
                NewChangesInWk.Build(wkInfo, new BuildWorkspacekIsRelevantNewChange()),
                null);

            mIncomingChangesViewLogic.Refresh();
        }
        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,
            EditorWindow parentWindow)
        {
            mWkInfo              = wkInfo;
            mViewHost            = viewHost;
            mIsGluonMode         = isGluonMode;
            mWorkspaceWindow     = workspaceWindow;
            mHistoryViewLauncher = historyViewLauncher;
            mPendingChanges      = pendingChanges;
            mDeveloperNewIncomingChangesUpdater = developerNewIncomingChangesUpdater;
            mGluonNewIncomingChangesUpdater     = gluonNewIncomingChangesUpdater;
            mAssetStatusCache = assetStatusCache;
            mParentWindow     = parentWindow;
            mGuiMessage       = new UnityPlasticGuiMessage(parentWindow);

            mCheckedStateManager = new CheckedStateManager();

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

            BuildComponents(isGluonMode, parentWindow);

            mProgressControls = new ProgressControlsForViews();

            workspaceWindow.RegisterPendingChangesProgressControls(
                mProgressControls);

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

            InitIgnoreRulesAndRefreshView(mWkInfo.ClientPath, this);
        }
Exemplo n.º 5
0
        internal static void Initialize(
            WorkspaceWindow workspaceWindow,
            ViewHost viewHost,
            NewIncomingChangesUpdater incomingChangesUpdater,
            bool isGluonMode)
        {
            if (!sIsEnabled)
            {
                Enable();
            }

            sWorkspaceWindow           = workspaceWindow;
            sViewHost                  = viewHost;
            sNewIncomingChangesUpdater = incomingChangesUpdater;
            sIsGluonMode               = isGluonMode;

            sGuiMessage       = new UnityPlasticGuiMessage();
            sProgressControls = new EditorProgressControls(sGuiMessage);
        }
Exemplo n.º 6
0
        internal CheckinProgress(WorkspaceInfo wkInfo, WorkspaceWindow workspaceWindow)
        {
            mWkInfo          = wkInfo;
            mWorkspaceWindow = workspaceWindow;

            mWorkspaceWindow.Progress.CanCancelProgress = true;

            mProgressRender = new CheckinUploadProgressRender(
                PlasticLocalization.GetString(
                    PlasticLocalization.Name.CheckinProgressMultiThreadUploading),
                PlasticLocalization.GetString(
                    PlasticLocalization.Name.CheckinProgressMultiThreadNumOfBlocks),
                PlasticLocalization.GetString(PlasticLocalization.Name.CheckinProgressUploadingFiles),
                PlasticLocalization.GetString(
                    PlasticLocalization.Name.CheckinProgressUploadingFileData),
                PlasticLocalization.GetString(PlasticLocalization.Name.CheckinProgressOf),
                PlasticLocalization.GetString(
                    PlasticLocalization.Name.RemainingProgressMessage));
        }
        static void DoCancelButton(
            WorkspaceWindow workspaceWindow)
        {
            Rect beginRect = GUILayoutUtility.GetLastRect();
            Rect endRect   = GUILayoutUtility.GetLastRect();

            float freeVerticalSpace = endRect.yMax - beginRect.yMin;

            Rect cancelButtonRect = new Rect(
                endRect.xMax - UnityConstants.CANCEL_BUTTON_SIZE + 1,
                beginRect.yMin + (freeVerticalSpace - UnityConstants.CANCEL_BUTTON_SIZE) / 2,
                UnityConstants.CANCEL_BUTTON_SIZE, UnityConstants.CANCEL_BUTTON_SIZE);

            if (!GUI.Button(cancelButtonRect, GUIContent.none, UnityStyles.CancelButton))
            {
                return;
            }

            workspaceWindow.CancelCurrentOperation();
        }
Exemplo n.º 8
0
        public void LogIn_Action()
        {
            CurrentUser = CryptoServices.LogIn(UserName, Password);
            if (CurrentUser == null)
            {
                MessageBox.Show("Login Not successful");
                Password = null;
            }
            else
            {
#if DEBUG
                Trace.WriteLine($"[LoginViewModel]: Welcome, {CurrentUser.Identity.Name}, Is Authenticated: {CurrentUser.Identity.IsAuthenticated}");
                Trace.Flush();
#endif

                Window wkspace = new WorkspaceWindow();
                wkspace.Show();
                Application.Current.MainWindow = wkspace;
                Application.Current.Windows[0].Close();
            }
        }
Exemplo n.º 9
0
        public void AddCommand(WPFCommand cmd, object commandArg = null)
        {
            if (commandArg == null)
            {
                var window = WorkspaceWindow.GetOuterWorkspaceWindow(this.InnerContent) as ModuleWorkspaceWindow;
                if (window == null)
                {
                    throw new ArgumentNullException("内部控件没有 WindowTemplate 时,必须提供 commandArg 参数。");
                }
                commandArg = window.MainView;
            }

            var items = commandPanel.Items;

            items.Remove(btnConfirm);
            items.Remove(btnCancel);

            AutoUI.BlockUIFactory.AppendCommands(commandPanel, commandArg, cmd);

            //始终把 btnConfirm、btnCancel 放到最后。
            items.Add(btnConfirm);
            items.Add(btnCancel);

            //commandPanel.Style = RafyResources.Rafy_CommandsContainer_Style;

            //Button btn = new Button()
            //{
            //    Margin = new Thickness(10, 2, 20, 2),
            //};
            //commandPanel.Children.Insert(0, btn);
            //if (window != null)
            //{
            //    btn.CommandParameter = window.View;
            //}
            //else
            //    btn.CommandParameter = View;
            //ButtonCommand.SetCommand(btn, CommandRepository.NewCommand(commandName));
        }
Exemplo n.º 10
0
        internal void OnGUI(
            WorkspaceInfo wkInfo,
            WorkspaceWindow workspaceWindow,
            IMergeViewLauncher mergeViewLauncher,
            IGluonViewSwitcher gluonViewSwitcher,
            IIncomingChangesNotifier incomingChangesNotifier,
            bool isGluonMode)
        {
            EditorGUILayout.BeginVertical(
                GetBarStyle(),
                GUILayout.Height(UnityConstants.STATUS_BAR_HEIGHT));
            GUILayout.FlexibleSpace();
            EditorGUILayout.BeginHorizontal();

            if (incomingChangesNotifier.HasNotification)
            {
                DrawIncomingChangesNotification(
                    wkInfo,
                    workspaceWindow,
                    mergeViewLauncher,
                    gluonViewSwitcher,
                    incomingChangesNotifier.Notification,
                    isGluonMode);
            }

            if (mNotification != null)
            {
                DrawNotification(mNotification);
            }

            GUILayout.FlexibleSpace();

            DrawWorkspaceStatus(workspaceWindow.WorkspaceStatus);

            EditorGUILayout.EndHorizontal();
            GUILayout.FlexibleSpace();
            EditorGUILayout.EndVertical();
        }
Exemplo n.º 11
0
        private void Edit()
        {
            if (selectedNode == null)
            {
                return;
            }

            Window window = null;

            if (selectedNode.IsBook)
            {
                window = new EditBookWindow((Book)selectedNode.GetData());
                window.ShowDialog();
            }
            else if (selectedNode.IsNote)
            {
                Note n = (Note)selectedNode.GetData();
                window = new EditNotesWindow(n.Book, n);
                window.ShowDialog();
            }

            SetFilter(window);
        }
Exemplo n.º 12
0
        public void Load()
        {
            try
            {
                FileInfo fi = new FileInfo(SelectedPath);

                if (!fi.Exists)
                {
                    if (MessageBoxFactory.ShowConfirmAsBool("Do you want to create a new workspace?", "Create New Workspace"))
                    {
                        Workspace.CreateWorkspace(SelectedPath);
                    }
                    else
                    {
                        return;
                    }
                }
                else
                {
                    Workspace.LoadWorkspace(SelectedPath);
                }

                if (!Settings.Default.PathHistory.Contains(selectedPath))
                {
                    Settings.Default.PathHistory.Add(selectedPath);
                    Settings.Default.Save();
                }

                WorkspaceWindow wiw = new WorkspaceWindow();
                wiw.Show();
                window.Close();
            }
            catch (Exception e)
            {
                MessageBoxFactory.ShowError(e, "Error Loading Workspace");
            }
        }
 public WorkspaceWindowClosingEventArgs(WorkspaceWindow window)
 {
     this.Window = window;
 }
Exemplo n.º 14
0
        public void Add(WorkspaceWindow window)
        {
            var ti = new CloseableTabItem()
            {
                Header = window.Title.Translate(),
                ClosingButtonTooltip = "关闭页签(Ctrl+W)".Translate(),
                Content = window.WindowControl
            };
            ti.AddHandler(TabItem.PreviewMouseLeftButtonDownEvent,
                new MouseButtonEventHandler(this.On_tabItem_PreviewMouseButtonDown)
                );

            this._tabControl.Items.Add(ti);
        }
Exemplo n.º 15
0
        public bool TryRemove(WorkspaceWindow window)
        {
            try
            {
                this._suppressEvent = true;

                TabItem dc = GetTabItem(window.Title);
                if (dc != null)
                {
                    var args = new WorkspaceWindowClosingEventArgs(window);
                    this.OnWindowClosing(args);
                    if (args.Cancel) { return false; }

                    this._tabControl.Items.Remove(dc);

                    //处理内存泄漏:当没有页签时,清除SelectedItem属性,
                    //否则仍旧保留了最后一个页面的值在DependencyObject的_effectiveValues中
                    if (this._tabControl.Items.Count == 0)
                    {
                        this._tabControl.SelectedItem = null;
                    }

                    this.OnWindowClosed(new WorkspaceWindowChangedEventArgs(window, null));
                }

                return true;
            }
            finally
            {
                this._suppressEvent = false;
            }
        }
Exemplo n.º 16
0
        public bool TryActive(WorkspaceWindow window)
        {
            try
            {
                this._suppressEvent = true;

                TabItem newItem = GetTabItem(window.Title);
                if (newItem != null)
                {
                    var oldItem = this._tabControl.SelectedItem as TabItem;
                    if (oldItem == newItem) { return true; }

                    var args = new WorkspaceWindowActivingEventArgs(GetWindow(oldItem), window);
                    this.OnWindowActiving(args);

                    if (!args.Cancel)
                    {
                        this._tabControl.SelectedItem = newItem;

                        this.OnWindowActived(args);

                        return true;
                    }
                }

                return false;
            }
            finally
            {
                this._suppressEvent = false;
            }
        }
Exemplo n.º 17
0
        public void Load()
        {
            try
            {
                FileInfo fi = new FileInfo(SelectedPath);

                if (!fi.Exists)
                {
                    if (MessageBoxFactory.ShowConfirmAsBool("Do you want to create a new workspace?", "Create New Workspace"))
                    {
                        Workspace.CreateWorkspace(SelectedPath);
                    }
                    else
                        return;
                }
                else
                    Workspace.LoadWorkspace(SelectedPath);

                if (!Settings.Default.PathHistory.Contains(selectedPath))
                {
                    Settings.Default.PathHistory.Add(selectedPath);
                    Settings.Default.Save();
                }

                WorkspaceWindow wiw = new WorkspaceWindow();
                wiw.Show();
                window.Close();
            }
            catch (Exception e)
            {
                MessageBoxFactory.ShowError(e, "Error Loading Workspace");
            }
        }
Exemplo n.º 18
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,
            StatusBar statusBar,
            EditorWindow parentWindow)
        {
            mWkInfo              = wkInfo;
            mViewHost            = viewHost;
            mIsGluonMode         = isGluonMode;
            mWorkspaceWindow     = workspaceWindow;
            mHistoryViewLauncher = historyViewLauncher;
            mPendingChanges      = pendingChanges;
            mDeveloperNewIncomingChangesUpdater = developerNewIncomingChangesUpdater;
            mGluonNewIncomingChangesUpdater     = gluonNewIncomingChangesUpdater;
            mAssetStatusCache    = assetStatusCache;
            mStatusBar           = statusBar;
            mParentWindow        = parentWindow;
            mGuiMessage          = new UnityPlasticGuiMessage(parentWindow);
            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();

            mCooldownClearCheckinSuccessAction = new CooldownWindowDelayer(
                DelayedClearCheckinSuccess,
                UnityConstants.NOTIFICATION_CLEAR_INTERVAL);

            workspaceWindow.RegisterPendingChangesProgressControls(mProgressControls);

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

            InitIgnoreRulesAndRefreshView(mWkInfo.ClientPath, this);
        }
Exemplo n.º 19
0
 public ModuleEventArgs(WorkspaceWindow window)
 {
     this.Window = window;
 }
Exemplo n.º 20
0
 internal UpdateProgress(WorkspaceWindow workspaceWindow)
 {
     mWorkspaceWindow = workspaceWindow;
 }
 public WorkspaceWindowActivedEventArgs(WorkspaceWindow deactiveWindow, WorkspaceWindow activeWindow)
     : base(deactiveWindow, activeWindow)
 {
 }
Exemplo n.º 22
0
 public async void Workspace()
 {
     Window window = new WorkspaceWindow();
     bool?  result = await window.ShowDialogAsync();
 }
Exemplo n.º 23
0
 internal ProgressOperationHandler(WorkspaceWindow workspaceWindow)
 {
     mWorkspaceWindow = workspaceWindow;
 }
Exemplo n.º 24
0
 internal ProgressOperationHandler(WorkspaceInfo wkInfo, WorkspaceWindow workspaceWindow)
 {
     mWkInfo          = wkInfo;
     mWorkspaceWindow = workspaceWindow;
 }
Exemplo n.º 25
0
 internal CheckinProgress(WorkspaceWindow workspaceWindow)
 {
     mWorkspaceWindow = workspaceWindow;
 }
Exemplo n.º 26
0
        private void Attach()
        {
            _ownerWindow = WorkspaceWindow.GetOuterWorkspaceWindow(_ownerView.Control);

            var workSpace = App.Current.Workspace;
            if (this.EnableAlertOnWindowActiving)
            {
                workSpace.WindowActiving += Workspace_WindowActiving;
            }
            workSpace.WindowClosing += workSpace_WindowClosing;
            workSpace.WindowClosed += workSpace_WindowClosed;
        }
 public WorkspaceWindowChangedEventArgs(WorkspaceWindow deactiveWindow, WorkspaceWindow activeWindow)
 {
     this.DeactiveWindow = deactiveWindow;
     this.ActiveWindow = activeWindow;
 }
Exemplo n.º 28
0
 internal GenericProgress(WorkspaceWindow workspaceWindow)
 {
     mWorkspaceWindow = workspaceWindow;
     mWorkspaceWindow.Progress.CanCancelProgress = false;
 }