void CheckAddressTextField() { InvokeOnMainThread(delegate { string error = Controller.CheckAddPage(AddressTextField.StringValue); if (String.IsNullOrEmpty(error)) { AddressHelpLabel.StringValue = ""; } else { AddressHelpLabel.StringValue = Properties_Resources.ResourceManager.GetString(error, CultureInfo.CurrentCulture); } }); }
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(); }
private void LoadAddLoginWPF() { // define UI elements. Header = Properties_Resources.Where; System.Uri resourceLocater = new System.Uri("/DataSpaceSync;component/SetupAddLoginWPF.xaml", System.UriKind.Relative); UserControl LoadAddLoginWPF = Application.LoadComponent(resourceLocater) as UserControl; address_label = LoadAddLoginWPF.FindName("address_label") as TextBlock; address_box = LoadAddLoginWPF.FindName("address_box") as TextBox; address_help_label = LoadAddLoginWPF.FindName("address_help_label") as TextBlock; user_label = LoadAddLoginWPF.FindName("user_label") as TextBlock; user_box = LoadAddLoginWPF.FindName("user_box") as TextBox; user_help_label = LoadAddLoginWPF.FindName("user_help_label") as TextBlock; password_label = LoadAddLoginWPF.FindName("password_label") as TextBlock; password_box = LoadAddLoginWPF.FindName("password_box") as PasswordBox; password_progress = LoadAddLoginWPF.FindName("password_progress") as CircularProgressBar; password_help_label = LoadAddLoginWPF.FindName("password_help_label") as TextBlock; address_error_label = LoadAddLoginWPF.FindName("address_error_label") as TextBox; continue_button = LoadAddLoginWPF.FindName("continue_button") as Button; cancel_button = LoadAddLoginWPF.FindName("cancel_button") as Button; ContentCanvas.Children.Add(LoadAddLoginWPF); address_box.Text = (Controller.PreviousAddress != null) ? Controller.PreviousAddress.ToString() : String.Empty; if (Controller.saved_user == String.Empty || Controller.saved_user == null) { user_box.Text = DefaultEntries.Defaults.Name; } else { user_box.Text = Controller.saved_user; } TaskbarItemInfo.ProgressValue = 0.0; TaskbarItemInfo.ProgressState = TaskbarItemProgressState.None; if (!DefaultEntries.Defaults.CanModifyUrl) { address_box.IsEnabled = false; address_box.Visibility = Visibility.Hidden; address_help_label.Visibility = Visibility.Hidden; address_label.Visibility = Visibility.Hidden; } if (Controller.PreviousAddress == null || Controller.PreviousAddress.ToString() == String.Empty) { address_box.Text = DefaultEntries.Defaults.Url; } else { address_box.Text = Controller.PreviousAddress.ToString(); } address_box.Focus(); address_box.Select(address_box.Text.Length, 0); // Actions. ControllerLoginInsertAction(); Controller.CheckAddPage(address_box.Text); address_box.TextChanged += delegate { string error = Controller.CheckAddPage(address_box.Text); if (!String.IsNullOrEmpty(error)) { address_error_label.Text = Properties_Resources.ResourceManager.GetString(error, CultureInfo.CurrentCulture); address_error_label.Visibility = Visibility.Visible; } else { address_error_label.Visibility = Visibility.Hidden; } }; cancel_button.Click += delegate { ControllerLoginRemoveAction(); Controller.PageCancelled(); }; string binding = Controller.saved_binding; if (binding == null) { binding = CmisRepoCredentials.BindingBrowser; } continue_button.Click += delegate { // Show wait cursor password_progress.Visibility = Visibility.Visible; System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; // Try to find the CMIS server (asynchronously) GetRepositoriesDelegate dlgt = new GetRepositoriesDelegate(SetupController.GetRepositories); ServerCredentials credentials = new ServerCredentials() { UserName = user_box.Text, Password = password_box.Password, Address = new Uri(address_box.Text), Binding = binding, }; IAsyncResult ar = dlgt.BeginInvoke(credentials, null, null); while (!ar.AsyncWaitHandle.WaitOne(100)) { System.Windows.Forms.Application.DoEvents(); } var result = dlgt.EndInvoke(ar); Controller.repositories = result.Repositories.WithoutHiddenOnce(); address_box.Text = result.Credentials.Address.ToString(); binding = result.Credentials.Binding; // Hide wait cursor System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default; password_progress.Visibility = Visibility.Hidden; if (Controller.repositories == null) { // Could not retrieve repositories list from server, show warning. string warning = Controller.GetConnectionsProblemWarning(result.FailedException); address_error_label.Text = warning; address_error_label.Visibility = Visibility.Visible; } else { ControllerLoginRemoveAction(); // Continue to next step, which is choosing a particular folder. Controller.Add1PageCompleted( new Uri(address_box.Text), binding, user_box.Text, password_box.Password); } }; }
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(); }