3
using System.Collections.Generic;
5
using System.Threading.Tasks;
6
using MonoMac.Foundation;
11
public partial class AppleDocMergeWindowController : MonoMac.AppKit.NSWindowController
13
public AppleDocMergeWindowController (IntPtr handle) : base (handle)
18
[Export ("initWithCoder:")]
19
public AppleDocMergeWindowController (NSCoder coder) : base (coder)
24
public AppleDocMergeWindowController () : base ("AppleDocMergeWindow")
33
public override void WindowDidLoad ()
35
ProgressWidget.StartAnimation (this);
38
public void TrackProcessTask (Task<int> task)
40
task.ContinueWith (t => {
41
var faulted = t.IsFaulted;
44
Logger.LogError ("Merger exception", t.Exception);
46
BeginInvokeOnMainThread (() => Finish (faulted || t.Result > 0, faulted ? 99 : t.Result));
50
void Finish (bool errored, int code)
52
ProgressWidget.Hidden = true;
53
WizardButton.Hidden = false;
56
WizardText.StringValue = string.Format ("There was a problem running the update (code {0}).", code);
57
WizardButton.Title = "Close";
58
WizardButton.Activated += CloseCallback;
60
WizardText.StringValue = "Update successful. Restart MacDoc for changes to take effect.";
61
WizardButton.Title = "Restart MacDoc";
62
WizardButton.Activated += RestartCallback;
66
void CloseCallback (object sender, EventArgs e)
71
void RestartCallback (object sender, EventArgs e)
73
AppDelegate.RestartRequested = true;
74
NSApplication.SharedApplication.Terminate (this);
77
public new AppleDocMergeWindow Window {
79
return (AppleDocMergeWindow)base.Window;