/// <summary> /// Returns the localized text of the given <paramref name="resultItem"/>. /// </summary> /// <param name="resultItem">Item to localize</param> /// <returns>Localized result item text</returns> private string LocalizeText(EMessageDialogResult resultItem) { if (resultItem == EMessageDialogResult.Ok) { return(Messages.MessageDialogWindow_Button_Ok); } if (resultItem == EMessageDialogResult.Cancel) { return(Messages.MessageDialogWindow_Button_Cancel); } if (resultItem == EMessageDialogResult.No) { return(Messages.MessageDialogWindow_Button_No); } if (resultItem == EMessageDialogResult.Yes) { return(Messages.MessageDialogWindow_Button_Yes); } if (resultItem == EMessageDialogResult.None) { return(Messages.MessageDialogWindow_Button_None); } if (resultItem == EMessageDialogResult.Close) { return(Messages.MessageDialogWindow_Button_Close); } return(resultItem.ToString()); }
/// <summary> /// Returns TRUE if the given editor instance can be closed. If the editor is dirty, a question dialog /// is shown. If the user decides to save the modified content, <see cref="ISaveableWorkbenchPart.ExecuteSave"/> /// is called. /// </summary> /// <param name="editor">Editor instance to check</param> /// <returns>TRUE or FALSE</returns> protected virtual bool CanCloseEditor(IEditor editor) { if (editor == null) { return(true); } if (!editor.IsDirty) { return(true); } EMessageDialogResult questionResult = MessageDialog.ShowQuestion( Messages.AbstractPerspective_CanCloseEditor_Dialog_Title, Messages.AbstractPerspective_CanCloseEditor_Dialog_Header, Messages.AbstractPerspective_CanCloseEditor_Dialog_Text, new[] { EMessageDialogResult.Yes, EMessageDialogResult.No, EMessageDialogResult.Cancel }); // User has canceled if (questionResult == EMessageDialogResult.Cancel) { return(false); } // User wants to save if (questionResult == EMessageDialogResult.Yes) { try { editor.ExecuteSave(null); } catch (Exception ex) { _log.Error("Error on execute save on active editor.", ex); } } return(true); }
/// <summary> /// Creates and adds a button for each result item of the given collection. /// </summary> /// <param name="resultSet">Collection of avaiable result items</param> protected virtual void AddMessageDialogButtons(EMessageDialogResult[] resultSet) { for (int i = resultSet.Length; --i != -1;) { EMessageDialogResult resultItem = resultSet[i]; string buttonText = LocalizeText(resultItem); ((IDialogWindow)this).AddButton(buttonText, new ActionHandlerDelegate(() => { MessageDialogResult = resultItem; Close(); })); // XXX Closure } }