PageCancelled() public méthode

User pressed the "Cancel" button, hide window.
public PageCancelled ( ) : void
Résultat void
 partial void OnCancel(MonoMac.Foundation.NSObject sender)
 {
     RemoveEvent();
     foreach (AsyncNodeLoader task in Loader.Values)
     {
         task.Cancel();
     }
     Controller.PageCancelled();
 }
Exemple #2
0
        void ShowCustomizePage()
        {
            Header = Properties_Resources.Customize;
            string localfoldername = Controller.saved_address.Host.ToString();

            foreach (KeyValuePair <String, String> repository in Controller.repositories)
            {
                if (repository.Key == Controller.saved_repository)
                {
                    localfoldername += "/" + repository.Value;
                    break;
                }
            }
            NSTextField LocalFolderLabel = new NSTextField()
            {
                Alignment       = NSTextAlignment.Left,
                BackgroundColor = NSColor.WindowBackground,
                Bordered        = false,
                Editable        = false,
                Frame           = new RectangleF(190, 320, 196 + 196 + 16, 17),
                Font            = GUI.BoldFont,
                StringValue     = Properties_Resources.EnterLocalFolderName
            };
            NSTextField LocalFolderTextField = new NSTextField()
            {
                Frame       = new RectangleF(190, 290, 196 + 196 + 16, 22),
                Font        = GUI.Font,
                Delegate    = new TextFieldDelegate(),
                StringValue = localfoldername
            };
            NSTextField LocalRepoPathLabel = new NSTextField()
            {
                Alignment       = NSTextAlignment.Left,
                BackgroundColor = NSColor.WindowBackground,
                Bordered        = false,
                Editable        = false,
                Frame           = new RectangleF(190, 220, 196 + 196 + 16, 17),
                Font            = GUI.BoldFont,
                StringValue     = Properties_Resources.ChangeRepoPath
            };
            NSTextField LocalRepoPathTextField = new NSTextField()
            {
                Frame       = new RectangleF(190, 190, 196 + 196 + 16 - 60, 22),
                Font        = GUI.Font,
                Delegate    = new TextFieldDelegate(),
                StringValue = Path.Combine(Controller.DefaultRepoPath, LocalFolderTextField.StringValue)
            };

            WarningTextField = new NSTextField()
            {
                BackgroundColor = NSColor.WindowBackground,
                Bordered        = false,
                TextColor       = NSColor.Red,
                Editable        = false,
                Frame           = new RectangleF(190, 30, 196 + 196 + 16, 140),
                Font            = NSFontManager.SharedFontManager.FontWithFamily("Lucida Grande", NSFontTraitMask.Condensed, 0, 11),
            };
            WarningTextField.Cell.LineBreakMode = NSLineBreakMode.ByWordWrapping;
            ContinueButton = new NSButton()
            {
                Title   = Properties_Resources.Add,
                Enabled = false
            };
            NSButton BackButton = new NSButton()
            {
                Title = Properties_Resources.Back
            };

            CancelButton = new NSButton()
            {
                Title = Properties_Resources.Cancel
            };
            NSButton ChooseFolderButton = new NSButton()
            {
                Title = "...",
                Frame = new RectangleF(190 + 196 + 196 + 16 - 40, 190, 40, 22)
            };

            ChooseFolderButton.Activated += delegate
            {
                NSOpenPanel OpenPanel = NSOpenPanel.OpenPanel;
                OpenPanel.AllowsMultipleSelection = false;
                OpenPanel.CanChooseFiles          = false;
                OpenPanel.CanChooseDirectories    = true;
                OpenPanel.CanCreateDirectories    = true;
                OpenPanel.DirectoryUrl            = new NSUrl("file://localhost" + Controller.DefaultRepoPath);
                if (OpenPanel.RunModal() == 1)
                {
                    string path = OpenPanel.Urls[0].Path;
                    try{
                        LocalRepoPathTextField.StringValue = Path.Combine(path, LocalFolderTextField.StringValue);
                    } catch (Exception) {
                        LocalRepoPathTextField.StringValue = path;
                    }
                    CheckCustomizeInput(LocalFolderTextField, LocalRepoPathTextField, WarningTextField);
                }
            };

            BackButton.Activated += delegate
            {
                Controller.BackToPage2();
            };
            CancelButton.Activated += delegate
            {
                Controller.PageCancelled();
            };
            ContinueButton.Activated += delegate
            {
                Controller.CustomizePageCompleted(LocalFolderTextField.StringValue, LocalRepoPathTextField.StringValue);
            };
            (LocalFolderTextField.Delegate as TextFieldDelegate).StringValueChanged += delegate
            {
                try
                {
                    LocalRepoPathTextField.StringValue = Path.Combine(Controller.DefaultRepoPath, LocalFolderTextField.StringValue);
                }
                catch (Exception)
                {
                }
                CheckCustomizeInput(LocalFolderTextField, LocalRepoPathTextField, WarningTextField);
            };
            (LocalRepoPathTextField.Delegate as TextFieldDelegate).StringValueChanged += delegate
            {
                CheckCustomizeInput(LocalFolderTextField, LocalRepoPathTextField, WarningTextField);
            };
            {
                CheckCustomizeInput(LocalFolderTextField, LocalRepoPathTextField, WarningTextField);
            }
            ContentView.AddSubview(LocalFolderLabel);
            ContentView.AddSubview(LocalFolderTextField);
            ContentView.AddSubview(LocalRepoPathLabel);
            ContentView.AddSubview(LocalRepoPathTextField);
            ContentView.AddSubview(ChooseFolderButton);
            ContentView.AddSubview(WarningTextField);
            Buttons.Add(ContinueButton);
            Buttons.Add(BackButton);
            Buttons.Add(CancelButton);
        }
Exemple #3
0
 partial void OnCancel(NSObject sender)
 {
     RemoveEvent();
     Controller.PageCancelled();
 }
Exemple #4
0
        /// <summary>
        /// Constructor.
        /// </summary>
        public Setup()
        {
            Logger.Info("Entering constructor.");

            // Defines how to show the setup window.
            Controller.ShowWindowEvent += delegate {
                Dispatcher.BeginInvoke((Action) delegate {
                    Logger.Info("Entering ShowWindowEvent.");
                    Show();
                    Activate();
                    BringIntoView();
                    Logger.Info("Exiting ShowWindowEvent.");
                });
            };

            // Defines how to hide the setup windows.
            Controller.HideWindowEvent += delegate {
                Dispatcher.BeginInvoke((Action) delegate {
                    Hide();
                });
            };

            // Defines what to do when changing page.
            // The remote folder addition wizard has several steps.
            Controller.ChangePageEvent += delegate(PageType type) {
                Dispatcher.BeginInvoke((Action) delegate {
                    Logger.Info("Entering ChangePageEvent.");
                    Reset();

                    // Show appropriate setup page.
                    switch (type)
                    {
                    // Welcome page that shows up at first run.
                    case PageType.Setup:
                        LoadWelcomeWPF();
                        break;

                    case PageType.Tutorial:
                        LoadTutorialWFP();
                        break;

                    // First step of the remote folder addition dialog: Specifying the server.
                    case PageType.Add1:
                        LoadAddLoginWPF();
                        break;

                    // Second step of the remote folder addition dialog: choosing the folder.
                    case PageType.Add2:
                        LoadAddSelectRepoWPF();
                        break;

                    // Third step of the remote folder addition dialog: Customizing the local folder.
                    case PageType.Customize:
                        LoadAddCustomizeWPF();
                        break;

                    // Final page of the remote folder addition dialog: end of the addition wizard.
                    case PageType.Finished:
                        SetupAddFinish();
                        break;
                    }

                    ShowAll();
                    Logger.Info("Exiting ChangePageEvent.");
                });
            };
            this.Closing += delegate {
                Controller.PageCancelled();
            };

            Controller.PageCancelled();
            Logger.Info("Exiting constructor.");
        }
 partial void OnCancel(MonoMac.Foundation.NSObject sender)
 {
     RemoveEvent();
     Controller.PageCancelled();
 }
Exemple #6
0
        private void ShowAdd1Page()
        {
            this.Present();
            Header = CmisSync.Properties_Resources.Where;

            VBox layout_vertical     = new VBox(false, 12);
            HBox layout_fields       = new HBox(true, 12);
            VBox layout_address      = new VBox(true, 0);
            HBox layout_address_help = new HBox(false, 3);
            VBox layout_user         = new VBox(true, 0);
            VBox layout_password     = new VBox(true, 0);

            // Address
            Label address_label = new Label()
            {
                UseMarkup = true,
                Xalign    = 0,
                Markup    = "<b>" +
                            CmisSync.Properties_Resources.EnterWebAddress +
                            "</b>"
            };

            Entry address_entry = new Entry()
            {
                Text             = (Controller.PreviousAddress == null || String.IsNullOrEmpty(Controller.PreviousAddress.ToString()))?"https://":Controller.PreviousAddress.ToString(),
                ActivatesDefault = false
            };

            Label address_help_label = new Label()
            {
                Xalign    = 0,
                UseMarkup = true,
                Markup    = "<span foreground=\"#808080\" size=\"small\">" +
                            CmisSync.Properties_Resources.Help + ": " +
                            "</span>"
            };
            EventBox address_help_urlbox   = new EventBox();
            Label    address_help_urllabel = new Label()
            {
                Xalign    = 0,
                UseMarkup = true,
                Markup    = "<span foreground=\"blue\" underline=\"single\" size=\"small\">" +
                            CmisSync.Properties_Resources.WhereToFind +
                            "</span>"
            };

            address_help_urlbox.Add(address_help_urllabel);
            address_help_urlbox.ButtonPressEvent += delegate(object o, ButtonPressEventArgs args) {
                Process process = new Process();
                process.StartInfo.FileName  = "xdg-open";
                process.StartInfo.Arguments = "https://github.com/nicolas-raoul/CmisSync/wiki/What-address";
                process.Start();
            };
            address_help_urlbox.EnterNotifyEvent += delegate(object o, EnterNotifyEventArgs args) {
                address_help_urlbox.GdkWindow.Cursor = hand_cursor;
            };

            Label address_error_label = new Label()
            {
                Xalign    = 0,
                UseMarkup = true,
                Markup    = ""
            };

            address_error_label.Hide();

            // User
            Entry user_entry = new Entry()
            {
                Text             = Controller.PreviousPath,
                ActivatesDefault = false
            };

            if (String.IsNullOrEmpty(Controller.saved_user))
            {
                user_entry.Text = Environment.UserName;
            }
            else
            {
                user_entry.Text = Controller.saved_user;
            }

            // Password
            Entry password_entry = new Entry()
            {
                Visibility       = false,
                ActivatesDefault = true
            };

            Controller.ChangeAddressFieldEvent += delegate(string text,
                                                           string example_text) {
                Application.Invoke(delegate {
                    address_entry.Text = text;
                });
            };

            Controller.ChangeUserFieldEvent += delegate(string text,
                                                        string example_text) {
                Application.Invoke(delegate {
                    user_entry.Text = text;
                });
            };

            Controller.ChangePasswordFieldEvent += delegate(string text,
                                                            string example_text) {
                Application.Invoke(delegate {
                    password_entry.Text = text;
                });
            };

            address_entry.Changed += delegate {
                string error = Controller.CheckAddPage(address_entry.Text);
                if (!String.IsNullOrEmpty(error))
                {
                    address_error_label.Markup = "<span foreground=\"red\">" + CmisSync.Properties_Resources.ResourceManager.GetString(error, CultureInfo.CurrentCulture) + "</span>";
                    address_error_label.Show();
                }
                else
                {
                    address_error_label.Hide();
                }
            };

            // Address
            layout_address_help.PackStart(address_help_label, false, false, 0);
            layout_address_help.PackStart(address_help_urlbox, false, false, 0);
            layout_address.PackStart(address_label, true, true, 0);
            layout_address.PackStart(address_entry, true, true, 0);
            layout_address.PackStart(layout_address_help, true, true, 0);
//            layout_address.PackStart (address_error_label, true, true, 0);

            // User
            layout_user.PackStart(new Label()
            {
                Markup = "<b>" + CmisSync.Properties_Resources.User + ":</b>",
                Xalign = 0
            }, true, true, 0);
            layout_user.PackStart(user_entry, false, false, 0);

            // Password
            layout_password.PackStart(new Label()
            {
                Markup = "<b>" + CmisSync.Properties_Resources.Password + ":</b>",
                Xalign = 0
            }, true, true, 0);
            layout_password.PackStart(password_entry, false, false, 0);

            layout_fields.PackStart(layout_user);
            layout_fields.PackStart(layout_password);

//            layout_vertical.PackStart (new Label (""), false, false, 0);
            layout_vertical.PackStart(layout_address, false, false, 0);
            layout_vertical.PackStart(layout_fields, false, false, 0);
            layout_vertical.PackStart(address_error_label, true, true, 0);

            Add(layout_vertical);

            // Cancel button
            Button cancel_button = new Button(cancelText);

            cancel_button.Clicked += delegate {
                Controller.PageCancelled();
            };

            // Continue button
            Button continue_button = new Button(continueText)
            {
                Sensitive = String.IsNullOrEmpty(Controller.CheckAddPage(address_entry.Text))
            };

            continue_button.Clicked += delegate {
                // Show wait cursor
                this.GdkWindow.Cursor = wait_cursor;

                // Try to find the CMIS server (asynchronous using a delegate)
                GetRepositoriesFuzzyDelegate dlgt =
                    new GetRepositoriesFuzzyDelegate(CmisUtils.GetRepositoriesFuzzy);
                ServerCredentials credentials = new ServerCredentials()
                {
                    UserName = user_entry.Text,
                    Password = password_entry.Text,
                    Address  = new Uri(address_entry.Text)
                };
                IAsyncResult ar = dlgt.BeginInvoke(credentials, null, null);
                while (!ar.AsyncWaitHandle.WaitOne(100))
                {
                    while (Application.EventsPending())
                    {
                        Application.RunIteration();
                    }
                }
                Tuple <CmisServer, Exception> result = dlgt.EndInvoke(ar);
                CmisServer cmisServer = result.Item1;
                if (cmisServer != null)
                {
                    Controller.repositories = cmisServer.Repositories;
                    address_entry.Text      = cmisServer.Url.ToString();
                }
                else
                {
                    Controller.repositories = null;
                }
                // Hide wait cursor
                this.GdkWindow.Cursor = default_cursor;

                if (Controller.repositories == null)
                {
                    // Show warning
                    string    warning = "";
                    string    message = result.Item2.Message;
                    Exception e       = result.Item2;
                    if (e is CmisPermissionDeniedException)
                    {
                        warning = Properties_Resources.LoginFailedForbidden;
                    }
                    else if (e is CmisServerNotFoundException)
                    {
                        warning = Properties_Resources.ConnectFailure;
                    }
                    else if (e.Message == "SendFailure" && cmisServer.Url.Scheme.StartsWith("https"))
                    {
                        warning = Properties_Resources.SendFailureHttps;
                    }
                    else if (e.Message == "TrustFailure")
                    {
                        warning = Properties_Resources.TrustFailure;
                    }
                    else
                    {
                        warning = message + Environment.NewLine + Properties_Resources.Sorry;
                    }
                    address_error_label.Markup = "<span foreground=\"red\">" + warning + "</span>";
                    address_error_label.Show();
                }
                else
                {
                    // Continue to folder selection
                    Controller.Add1PageCompleted(
                        new Uri(address_entry.Text), user_entry.Text, password_entry.Text);
                }
            };

            Controller.UpdateAddProjectButtonEvent += delegate(bool button_enabled) {
                Application.Invoke(delegate {
                    continue_button.Sensitive = button_enabled;
                    if (button_enabled)
                    {
                        continue_button.SetFlag(Gtk.WidgetFlags.CanFocus);
                        continue_button.SetFlag(Gtk.WidgetFlags.CanDefault);
                        continue_button.GrabDefault();
                    }
                });
            };

            AddButton(cancel_button);
            AddButton(continue_button);

            Controller.CheckAddPage(address_entry.Text);
            address_entry.GrabFocus();
        }
Exemple #7
0
        private void ShowAdd1Page()
        {
            Header = CmisSync.Properties_Resources.ResourceManager.GetString("Where", CultureInfo.CurrentCulture);

            VBox layout_vertical     = new VBox(false, 12);
            HBox layout_fields       = new HBox(true, 12);
            VBox layout_address      = new VBox(true, 0);
            HBox layout_address_help = new HBox(false, 3);
            VBox layout_user         = new VBox(true, 0);
            VBox layout_password     = new VBox(true, 0);

            // Address
            Label address_label = new Label()
            {
                UseMarkup = true,
                Xalign    = 0,
                Markup    = "<b>" +
                            CmisSync.Properties_Resources.ResourceManager.GetString("EnterWebAddress", CultureInfo.CurrentCulture) +
                            "</b>"
            };

            Entry address_entry = new Entry()
            {
                Text             = Controller.PreviousAddress,
                ActivatesDefault = false
            };

            Label address_help_label = new Label()
            {
                Xalign    = 0,
                UseMarkup = true,
                Markup    = "<span foreground=\"#808080\" size=\"small\">" +
                            CmisSync.Properties_Resources.ResourceManager.GetString("Help", CultureInfo.CurrentCulture) + ": " +
                            "</span>"
            };
            EventBox address_help_urlbox   = new EventBox();
            Label    address_help_urllabel = new Label()
            {
                Xalign    = 0,
                UseMarkup = true,
                Markup    = "<span foreground=\"blue\" underline=\"single\" size=\"small\">" +
                            CmisSync.Properties_Resources.ResourceManager.GetString("WhereToFind", CultureInfo.CurrentCulture) +
                            "</span>"
            };

            address_help_urlbox.Add(address_help_urllabel);
            address_help_urlbox.ButtonPressEvent += delegate(object o, ButtonPressEventArgs args) {
                Process process = new Process();
                process.StartInfo.FileName  = "xdg-open";
                process.StartInfo.Arguments = "https://github.com/nicolas-raoul/CmisSync/wiki/What-address";
                process.Start();
            };
            address_help_urlbox.EnterNotifyEvent += delegate(object o, EnterNotifyEventArgs args) {
                address_help_urlbox.GdkWindow.Cursor = hand_cursor;
            };

            Label address_error_label = new Label()
            {
                Xalign    = 0,
                UseMarkup = true,
                Markup    = ""
            };

            address_error_label.Hide();

            // User
            Entry user_entry = new Entry()
            {
                Text             = Controller.PreviousPath,
                ActivatesDefault = false
            };

            // Password
            Entry password_entry = new Entry()
            {
                Text             = Controller.PreviousPath,
                Visibility       = false,
                ActivatesDefault = true
            };

            Controller.ChangeAddressFieldEvent += delegate(string text,
                                                           string example_text) {
                Application.Invoke(delegate {
                    address_entry.Text = text;
                });
            };

            Controller.ChangeUserFieldEvent += delegate(string text,
                                                        string example_text) {
                Application.Invoke(delegate {
                    user_entry.Text = text;
                });
            };

            Controller.ChangePasswordFieldEvent += delegate(string text,
                                                            string example_text) {
                Application.Invoke(delegate {
                    password_entry.Text = text;
                });
            };

            address_entry.Changed += delegate {
                string error = Controller.CheckAddPage(address_entry.Text);
                if (!String.IsNullOrEmpty(error))
                {
                    address_error_label.Markup = "<span foreground=\"red\">" + CmisSync.Properties_Resources.ResourceManager.GetString(error, CultureInfo.CurrentCulture) + "</span>";
                    address_error_label.Show();
                }
                else
                {
                    address_error_label.Hide();
                }
            };

            // Address
            layout_address_help.PackStart(address_help_label, false, false, 0);
            layout_address_help.PackStart(address_help_urlbox, false, false, 0);
            layout_address.PackStart(address_label, true, true, 0);
            layout_address.PackStart(address_entry, true, true, 0);
            layout_address.PackStart(layout_address_help, true, true, 0);
            layout_address.PackStart(address_error_label, true, true, 0);

            // User
            layout_user.PackStart(new Label()
            {
                Markup = "<b>" + CmisSync.Properties_Resources.ResourceManager.GetString("User", CultureInfo.CurrentCulture) + ":</b>",
                Xalign = 0
            }, true, true, 0);
            layout_user.PackStart(user_entry, false, false, 0);

            // Password
            layout_password.PackStart(new Label()
            {
                Markup = "<b>" + CmisSync.Properties_Resources.ResourceManager.GetString("Password", CultureInfo.CurrentCulture) + ":</b>",
                Xalign = 0
            }, true, true, 0);
            layout_password.PackStart(password_entry, false, false, 0);

            layout_fields.PackStart(layout_user);
            layout_fields.PackStart(layout_password);

            layout_vertical.PackStart(new Label(""), false, false, 0);
            layout_vertical.PackStart(layout_address, false, false, 0);
            layout_vertical.PackStart(layout_fields, false, false, 0);

            Add(layout_vertical);

            // Cancel button
            Button cancel_button = new Button(cancelText);

            cancel_button.Clicked += delegate {
                Controller.PageCancelled();
            };

            // Continue button
            Button continue_button = new Button(continueText)
            {
                Sensitive = false
            };

            continue_button.Clicked += delegate {
                // Show wait cursor
                this.GdkWindow.Cursor = wait_cursor;

                // Try to find the CMIS server (asynchronous using a delegate)
                GetRepositoriesFuzzyDelegate dlgt =
                    new GetRepositoriesFuzzyDelegate(CmisUtils.GetRepositoriesFuzzy);
                IAsyncResult ar = dlgt.BeginInvoke(new Uri(address_entry.Text), user_entry.Text,
                                                   password_entry.Text, null, null);
                while (!ar.AsyncWaitHandle.WaitOne(100))
                {
                    while (Application.EventsPending())
                    {
                        Application.RunIteration();
                    }
                }
                CmisServer cmisServer = dlgt.EndInvoke(ar);

                Controller.repositories = cmisServer.Repositories;
                address_entry.Text      = cmisServer.Url.ToString();

                // Hide wait cursor
                this.GdkWindow.Cursor = default_cursor;

                if (Controller.repositories == null)
                {
                    // Show warning
                    address_error_label.Markup = "<span foreground=\"red\">" + CmisSync.Properties_Resources.ResourceManager.GetString("Sorry", CultureInfo.CurrentCulture) + "</span>";
                    address_error_label.Show();
                }
                else
                {
                    // Continue to folder selection
                    Controller.Add1PageCompleted(
                        address_entry.Text, user_entry.Text, password_entry.Text);
                }
            };

            Controller.UpdateAddProjectButtonEvent += delegate(bool button_enabled) {
                Application.Invoke(delegate {
                    continue_button.Sensitive = button_enabled;
                });
            };

            AddButton(continue_button);
            AddButton(cancel_button);

            address_entry.GrabFocus();
        }