Files
wg_cpso/CPSO/Forms/21_FEModel/FrmModelProperties.cs
2026-03-25 18:20:24 +08:00

107 lines
3.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using CaeGlobals;
namespace CPSO.Forms
{
class FrmModelProperties : UserControls.FrmProperties, IFormBase
{
// Variables
private ViewModelProperties _viewModelProperties;
private Controller _controller;
// Properties
public CaeModel.ModelProperties ModelProperties
{
get { return _viewModelProperties.GetBase(); }
set {_viewModelProperties = new ViewModelProperties(value);}
}
// Constructors
public FrmModelProperties(Controller controller)
: base(1.75)
{
InitializeComponent();
//
_controller = controller;
_viewModelProperties = null;
//
_addNew = false;
}
private void InitializeComponent()
{
this.gbProperties.SuspendLayout();
this.SuspendLayout();
//
// btnOkAddNew
//
this.btnOkAddNew.Text = "Apply";
//
// FrmModelProperties
//
this.ClientSize = new System.Drawing.Size(334, 411);
this.Name = "FrmModelProperties";
this.Text = "Edit Part";
this.gbProperties.ResumeLayout(false);
this.ResumeLayout(false);
}
// Overrides
protected override void OnApply(bool onOkAddNew)
{
_viewModelProperties = (ViewModelProperties)propertyGrid.SelectedObject;
//
if (_viewModelProperties.ModelType == CaeModel.ModelType.Submodel)
{
string fileName = _viewModelProperties.GlobalResultsFileName;
fileName = System.IO.Path.Combine(_controller.Settings.GetWorkDirectory(), fileName);
//
if (!System.IO.File.Exists(fileName))
throw new CaeException("The selected global results file " + fileName +" does not exist.");
}
else if (_viewModelProperties.ModelType == CaeModel.ModelType.SlipWearModel)
{
if (_viewModelProperties.NumberOfCycles % _viewModelProperties.CyclesIncrement != 0)
throw new CaeException("The number of slip wear cycles must be divided by the cycles increment.");
}
// Replace
if (_propertyItemChanged)
{
_controller.ReplaceModelPropertiesCommand(_viewModelProperties.Name, _viewModelProperties.GetBase());
}
}
protected override bool OnPrepareForm(string stepName, string modelToEditName)
{
// Disable selection
_controller.SetSelectByToOff();
//
_propertyItemChanged = false;
_viewModelProperties = null;
//
_viewModelProperties = new ViewModelProperties(_controller.Model.Properties.DeepClone());
_viewModelProperties.Name = _controller.Model.Name;
//
propertyGrid.SelectedObject = _viewModelProperties;
propertyGrid.Select();
//
propertyGrid.BuildAutocompleteMenu(_controller.GetAllParameterNames());
//
return true;
}
// Methods
}
}