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; }
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; }
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); }
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); }
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(); }
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(); } }
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)); }
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(); }
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); }
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; }
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); }
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; } }
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; } }
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"); } }
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); }
public ModuleEventArgs(WorkspaceWindow window) { this.Window = window; }
internal UpdateProgress(WorkspaceWindow workspaceWindow) { mWorkspaceWindow = workspaceWindow; }
public WorkspaceWindowActivedEventArgs(WorkspaceWindow deactiveWindow, WorkspaceWindow activeWindow) : base(deactiveWindow, activeWindow) { }
public async void Workspace() { Window window = new WorkspaceWindow(); bool? result = await window.ShowDialogAsync(); }
internal ProgressOperationHandler(WorkspaceWindow workspaceWindow) { mWorkspaceWindow = workspaceWindow; }
internal ProgressOperationHandler(WorkspaceInfo wkInfo, WorkspaceWindow workspaceWindow) { mWkInfo = wkInfo; mWorkspaceWindow = workspaceWindow; }
internal CheckinProgress(WorkspaceWindow workspaceWindow) { mWorkspaceWindow = workspaceWindow; }
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; }
internal GenericProgress(WorkspaceWindow workspaceWindow) { mWorkspaceWindow = workspaceWindow; mWorkspaceWindow.Progress.CanCancelProgress = false; }