internal static bool CheckinPaths( WorkspaceInfo wkInfo, List<string> paths, IAssetStatusCache assetStatusCache, bool isGluonMode, EditorWindow parentWindow, IWorkspaceWindow workspaceWindow, ViewHost viewHost, GuiMessage.IGuiMessage guiMessage, IMergeViewLauncher mergeViewLauncher, IGluonViewSwitcher gluonViewSwitcher) { MetaCache metaCache = new MetaCache(); metaCache.Build(paths); CheckinDialog dialog = Create( wkInfo, paths, assetStatusCache, metaCache, isGluonMode, new ProgressControlsForDialogs(), workspaceWindow, viewHost, guiMessage, mergeViewLauncher, gluonViewSwitcher); return dialog.RunModal(parentWindow) == ResponseType.Ok; }
internal static void CheckinPathsPartial( WorkspaceInfo wkInfo, List <string> paths, string comment, ViewHost viewHost, CheckinDialog dialog, GuiMessage.IGuiMessage guiMessage, IProgressControls progressControls, IGluonViewSwitcher gluonViewSwitcher) { BaseCommandsImpl baseCommands = new BaseCommandsImpl(); progressControls.ShowProgress(PlasticLocalization.GetString( PlasticLocalization.Name.CheckinInFilesProgress)); IThreadWaiter waiter = ThreadWaiter.GetWaiter(50); waiter.Execute( /*threadOperationDelegate*/ delegate { baseCommands.PartialCheckin(wkInfo, paths, comment); }, /*afterOperationDelegate*/ delegate { progressControls.HideProgress(); ((IPlasticDialogCloser)dialog).CloseDialog(); if (waiter.Exception is CheckinConflictsException) { // we need to explicitly call EditorWindow.Close() to ensure // that the dialog is closed before asking the user dialog.Close(); if (!UserWantsToShowIncomingView(guiMessage)) { return; } gluonViewSwitcher.ShowIncomingChangesView(); return; } if (waiter.Exception != null) { ExceptionsHandler.DisplayException(waiter.Exception); return; } viewHost.RefreshView(ViewType.CheckinView); viewHost.RefreshView(ViewType.HistoryView); }); }
internal static void CheckinPaths( WorkspaceInfo wkInfo, List <string> paths, string comment, IWorkspaceWindow workspaceWindow, CheckinDialog dialog, GuiMessage.IGuiMessage guiMessage, IProgressControls progressControls, IMergeViewLauncher mergeViewLauncher) { BaseCommandsImpl baseCommands = new BaseCommandsImpl(); progressControls.ShowProgress("Checkin in files"); IThreadWaiter waiter = ThreadWaiter.GetWaiter(50); waiter.Execute( /*threadOperationDelegate*/ delegate { CheckinParams ciParams = new CheckinParams(); ciParams.paths = paths.ToArray(); ciParams.comment = comment; ciParams.time = DateTime.MinValue; ciParams.flags = CheckinFlags.Recurse | CheckinFlags.ProcessSymlinks; baseCommands.CheckIn(ciParams); }, /*afterOperationDelegate*/ delegate { progressControls.HideProgress(); ((IPlasticDialogCloser)dialog).CloseDialog(); if (waiter.Exception is CmClientMergeNeededException || waiter.Exception is CmClientUpdateMergeNeededException) { // we need to explicitly call EditorWindow.Close() to ensure // that the dialog is closed before asking the user dialog.Close(); if (!UserWantsToShowIncomingView(guiMessage)) { return; } ShowIncomingChanges.FromCheckin( wkInfo, mergeViewLauncher, progressControls); return; } if (waiter.Exception != null) { ExceptionsHandler.DisplayException(waiter.Exception); return; } workspaceWindow.RefreshView(ViewType.PendingChangesView); workspaceWindow.RefreshView(ViewType.HistoryView); }); }