// 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 Lesser 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 Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser 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.Windows.Forms;
using Core.Common.Gui.Properties;
using CoreCommonBaseResources = Core.Common.Base.Properties.Resources;
namespace Core.Common.Gui
{
///
/// Class which inquires the user for application inputs based on dialogs.
///
public class DialogBasedInquiryHelper : IInquiryHelper
{
private readonly IWin32Window dialogParent;
///
/// Creates a new instance of .
///
/// The parent window to provide to the created
/// dialogs.
/// Thrown when
/// is null.
public DialogBasedInquiryHelper(IWin32Window dialogParent)
{
if (dialogParent == null)
{
throw new ArgumentNullException(nameof(dialogParent));
}
this.dialogParent = dialogParent;
}
public string GetSourceFileLocation()
{
return GetSourceFileLocation(new FileFilterGenerator());
}
public string GetSourceFileLocation(FileFilterGenerator filter)
{
string filePath = null;
using (OpenFileDialog dialog = new OpenFileDialog
{
Multiselect = false,
Title = Resources.OpenFileDialog_Title,
Filter = filter.Filter
})
{
DialogResult result = dialog.ShowDialog();
if (result == DialogResult.OK)
{
filePath = dialog.FileName;
}
}
return filePath;
}
public string GetTargetFileLocation()
{
string filePath = null;
using (SaveFileDialog dialog = new SaveFileDialog
{
Title = Resources.SaveFileDialog_Title
})
{
DialogResult result = dialog.ShowDialog();
if (result == DialogResult.OK)
{
filePath = dialog.FileName;
}
}
return filePath;
}
public bool InquireContinuation(string query)
{
DialogResult dialog = MessageBox.Show(
dialogParent,
query,
CoreCommonBaseResources.Confirm,
MessageBoxButtons.OKCancel);
return dialog == DialogResult.OK;
}
}
}