using CaeGlobals; using CaeKnowledge.View; using DynamicTypeDescriptor; using System.Collections.Generic; using System.ComponentModel; using System.Drawing.Design; using System.Linq; namespace CPSO.Forms._92_Knowledge { public class ViewJobs { private readonly DynamicCustomTypeDescriptor _dctd; private readonly Controller _controller; [Category("1数据")] [OrderedDisplayName(0, 3, "计算步Step")] [Description("选择要继承的计算步")] public string Step { get; set; } [Category("1数据")] [OrderedDisplayName(1, 3, "曲面集")] [Description("选择要载荷所在的曲面集")] public string Surface { get; set; } [Category("1数据")] [OrderedDisplayName(2, 3, "切削力")] [Editor(typeof(MyCollectionEditor), typeof(UITypeEditor))] public List ToolPositionList { get; set; } = new List(); [Category("2分析")] [DisplayName("新分析步名称")] public string NewStepName { get; set; } = "Step"; public ViewJobs(Controller self) { _controller = self; _dctd = ProviderInstaller.Install(this); PopulateDropDownList(); } public void PopulateDropDownList() { // ReSharper disable once JoinDeclarationAndInitializer CustomPropertyDescriptor cpd; // 1.加入已有的Steps列表 cpd = _dctd.GetProperty(nameof(Step)); cpd.StatandardValues.Clear(); _controller.Model.StepCollection.StepsList.ForEach(x => { cpd.StatandardValues.Add(new StandardValueAttribute(x.Name)); }); // 2.加入已有的Surface列表 cpd = _dctd.GetProperty(nameof(Surface)); cpd.StatandardValues.Clear(); foreach (var surfaceName in _controller.Model.Mesh.Surfaces.Values .Where(x => !x.Internal) .Select(x => x.Name)) { cpd.StatandardValues.Add(new StandardValueAttribute(surfaceName)); } } } }