using CaeGlobals; using DynamicTypeDescriptor; using System; using System.ComponentModel; using System.Drawing.Design; using System.IO; using System.Windows.Forms; #pragma warning disable IDE0130 namespace CPSO.Settings { [Serializable] public class ViewAbaqusSettings : IViewSettings, IReset { // Variables private AbaqusSettings _abaqusSettings; private DynamicCustomTypeDescriptor _dctd = null; // Properties [Category("Abaqus")] [OrderedDisplayName(0, 10, "Work directory")] [Description("Select the work directory.")] [Editor(typeof(System.Windows.Forms.Design.FolderNameEditor), typeof(UITypeEditor))] [Id(1, 1)] public string WorkDirectory { get { return _abaqusSettings.WorkDirectoryForSettingsOnly; } set { if (value != _abaqusSettings.WorkDirectoryForSettingsOnly) { if (!Directory.Exists(value) && MessageBoxes.ShowWarningQuestionOKCancel("The selected work directory does not exist.") == DialogResult.Cancel) return; // _abaqusSettings.WorkDirectoryForSettingsOnly = value; } } } // [Category("Abaqus")] [OrderedDisplayName(1, 10, "Use .pmx folder as work directory")] [Description("Select yes to use .pmx file folder as a work directory.")] [Id(2, 1)] public bool UsePmxFolderAsWorkDirectory { get { return _abaqusSettings.UsePmxFolderAsWorkDirectory; } set { _abaqusSettings.UsePmxFolderAsWorkDirectory = value; } } // [Category("Abaqus")] [OrderedDisplayName(2, 10, "Executable")] [Description("Select the Abaqus executable file.")] [Editor(typeof(System.Windows.Forms.Design.FileNameEditor), typeof(UITypeEditor))] [Id(3, 1)] public string AbaqusExe { get { return _abaqusSettings.AbaqusExe; } set { _abaqusSettings.AbaqusExe = value; } } // [Category("Parallelization")] [OrderedDisplayName(0, 10, "Number of processors")] [Description("Set the number of processors for the executable to use.")] [Id(1, 2)] public int NumCPUs { get { return _abaqusSettings.NumCPUs; } set { _abaqusSettings.NumCPUs = value; } } // Constructors public ViewAbaqusSettings(AbaqusSettings abaqusSettings) { _abaqusSettings = abaqusSettings; _dctd = ProviderInstaller.Install(this); // Now lets display Yes/No instead of True/False _dctd.RenameBooleanPropertyToYesNo(nameof(UsePmxFolderAsWorkDirectory)); } // Methods public ISettings GetBase() { return _abaqusSettings; } public void Reset() { _abaqusSettings.Reset(); } } }