// Copyright (C) Stichting Deltares 2016. All rights reserved. // // This file is part of Ringtoets. // // Ringtoets is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System; using System.Drawing; using System.Windows.Forms; using Application.Ringtoets.Properties; using Core.Common.Controls.Dialogs; namespace Application.Ringtoets { /// /// Class for showing an exception dialog. /// The exception dialog can return the following results: /// /// /// : this result represents a request for restarting the application. /// /// /// : this result represents a request for closing the application. /// /// /// public partial class ExceptionDialog : DialogBase { private Action openLogClicked; /// /// Constructs a new . /// /// The owner of the dialog. /// The exception to show in the dialog. public ExceptionDialog(IWin32Window dialogParent, Exception exception) : base(dialogParent, (Icon) Resources.bug__exclamation, 470, 200) { InitializeComponent(); buttonOpenLog.Enabled = false; exceptionTextBox.Text = exception == null ? "" : exception.ToString(); } /// /// Gets or sets the action that should be performed after clicking the log button. /// /// The log button is only enabled when this action is set. public Action OpenLogClicked { private get { return openLogClicked; } set { openLogClicked = value; buttonOpenLog.Enabled = openLogClicked != null; } } protected override Button GetCancelButton() { return buttonExit; } private void ButtonRestartClick(object sender, EventArgs e) { DialogResult = DialogResult.OK; Close(); } private void ButtonExitClick(object sender, EventArgs e) { DialogResult = DialogResult.Cancel; Close(); } private void ButtonCopyTextToClipboardClick(object sender, EventArgs e) { Clipboard.SetDataObject(exceptionTextBox.Text, true); } private void ButtonOpenLogClick(object sender, EventArgs e) { OpenLogClicked(); } } }