}
else if (currStep == CompileStep.Fill)
@@ -231,7 +331,7 @@
@if (currStep == CompileStep.General)
{
- @foreach (FrameDimension dimension in m_frame.DimensionList)
+ @foreach (FrameDimension dimension in m_Frame.DimensionList)
{
@dimension.nIndex
diff --git a/WebWindowConfigurator/WebWindowMaker.razor.cs b/WebWindowConfigurator/WebWindowMaker.razor.cs
index 88b6c55..33c66fc 100644
--- a/WebWindowConfigurator/WebWindowMaker.razor.cs
+++ b/WebWindowConfigurator/WebWindowMaker.razor.cs
@@ -36,6 +36,7 @@ namespace WebWindowConfigurator
m_SelTemplate = value;
JsonWindow WindowFromJson = JsonConvert.DeserializeObject(m_SelTemplate.JWD, new PolymorphicJsonConverter());
m_CurrWindow = WindowFromJson.Deserialize();
+ SearchInAreaList(m_CurrWindow.AreaList[0]);
m_SelSVG = m_SelTemplate.SVG;
}
}
@@ -46,7 +47,6 @@ namespace WebWindowConfigurator
public TemplateSelectDTO? SelTemplateDTO { get; set; } = null;
- public Area m_SelArea { get; set; } = null!;
public string m_SelSVG { get; set; } = "";
#endregion Public Properties
@@ -66,9 +66,11 @@ namespace WebWindowConfigurator
#region Protected Properties
- protected Frame m_frame
+ private Frame m_Frame;
+ protected Frame Frame
{
- get => (Frame)m_CurrWindow.AreaList[0];
+ get => m_Frame;
+ set => m_Frame = value;
}
#endregion Protected Properties
@@ -116,6 +118,56 @@ namespace WebWindowConfigurator
#region Private Methods
+ private List m_SashList = new List();
+ public List SashList
+ {
+ get => m_SashList;
+ }
+ private List m_FillList = new List();
+ public List FillList
+ {
+ get => m_FillList;
+ }
+ private List m_SplitList = new List();
+ public List SplitList
+ {
+ get => m_SplitList;
+ }
+
+ public void SearchInAreaList(Area node)
+ {
+ if (node != null)
+ {
+ switch (node.AreaType)
+ {
+ case AreaTypes.FRAME:
+ {
+ m_Frame = (Frame)node;
+ break;
+ }
+ case AreaTypes.SASH:
+ {
+ m_SashList.Add((Sash)node);
+ break;
+ }
+ case AreaTypes.FILL:
+ {
+ m_FillList.Add((Fill)node);
+ break;
+ }
+ case AreaTypes.SPLIT:
+ {
+ m_SplitList.Add((Split)node);
+ break;
+ }
+ }
+ foreach (var item in node.AreaList)
+ {
+ SearchInAreaList(item);
+ }
+ }
+ }
+
private void AdvStep(CompileStep newStep)
{
currStep = newStep;
diff --git a/WebWindowConfigurator/Window.cs b/WebWindowConfigurator/Window.cs
index ac65959..89083e1 100644
--- a/WebWindowConfigurator/Window.cs
+++ b/WebWindowConfigurator/Window.cs
@@ -129,38 +129,145 @@ namespace WebWindowConfigurator
new IdNameStruct((int)Shapes.DOUBLEARC, "Double Arc"),
new IdNameStruct((int)Shapes.TRIANGLE, "Triangle")
};
- public ObservableCollection ShapeList
- {
- get
+ public ObservableCollection ShapeList
{
- return m_ShapeList;
+ get
+ {
+ return m_ShapeList;
+ }
}
- }
- private Shapes m_Shape;
- public Shapes Shape
- {
- get
+ private Shapes m_Shape;
+ public Shapes Shape
{
- return m_Shape;
+ get
+ {
+ return m_Shape;
+ }
}
- }
- public int SelShapeIndex
- {
- get
+ public int SelShapeIndex
{
- return IdNameStruct.IndFromId((int)m_Shape, m_ShapeList);
+ get
+ {
+ return IdNameStruct.IndFromId((int)m_Shape, m_ShapeList);
+ }
+ set
+ {
+ Shapes SelShape = (Shapes)IdNameStruct.IdFromInd(value, m_ShapeList);
+ if (m_Shape != SelShape)
+ {
+ // verifico parametri Dimension
+ DimensionList.Clear();
+ // aggiungo Dimensioni
+ switch (SelShape)
+ {
+ case Shapes.RECTANGLE:
+ case Shapes.ARC_FULL:
+ {
+ DimensionList.Add(new FrameDimension(1, "Width", 1500, true));
+ DimensionList.Add(new FrameDimension(2, "Height", 1800, true));
+ break;
+ }
+
+ case Shapes.RIGHTCHAMFER:
+ {
+ DimensionList.Add(new FrameDimension(1, "Width", 1500, true));
+ DimensionList.Add(new FrameDimension(2, "Left Height", 1800, true));
+ DimensionList.Add(new FrameDimension(3, "Right Height", 1500, true));
+ break;
+ }
+
+ case Shapes.LEFTCHAMFER:
+ {
+ DimensionList.Add(new FrameDimension(1, "Width", 1500, true));
+ DimensionList.Add(new FrameDimension(2, "Left Height", 1500, true));
+ DimensionList.Add(new FrameDimension(3, "Right Height", 1800, true));
+ break;
+ }
+
+ case Shapes.DOUBLECHAMFER:
+ case Shapes.ARC:
+ {
+ DimensionList.Add(new FrameDimension(1, "Width", 1500, true));
+ DimensionList.Add(new FrameDimension(2, "Height", 1500, true));
+ DimensionList.Add(new FrameDimension(3, "Full Height", 1800, true));
+ break;
+ }
+
+ case Shapes.DOUBLEARC:
+ {
+ DimensionList.Add(new FrameDimension(1, "Width", 1500, true));
+ DimensionList.Add(new FrameDimension(2, "Height", 1500, true));
+ DimensionList.Add(new FrameDimension(3, "Full Height", 2400, true));
+ break;
+ }
+
+ case Shapes.TRIANGLE:
+ {
+ DimensionList.Add(new FrameDimension(1, "Width", 2000, true));
+ DimensionList.Add(new FrameDimension(2, "Height", 1500, true));
+ DimensionList.Add(new FrameDimension(3, "Height projection", 0, true));
+ break;
+ }
+
+ case Shapes.CUSTOM:
+ {
+ DimensionList.Clear();
+ break;
+ }
+ }
+ // aggiungo Joint
+ m_JointList.Clear();
+ switch (SelShape)
+ {
+ case Shapes.RECTANGLE:
+ case Shapes.RIGHTCHAMFER:
+ case Shapes.LEFTCHAMFER:
+ case Shapes.DOUBLECHAMFER:
+ case Shapes.ARC:
+ case Shapes.DOUBLEARC:
+ {
+ JointList.Add(new Joint(1, Joints.FULL_H));
+ JointList.Add(new Joint(2, Joints.FULL_H));
+ JointList.Add(new Joint(3, Joints.FULL_H));
+ JointList.Add(new Joint(4, Joints.FULL_H));
+ break;
+ }
+
+ case Shapes.ARC_FULL:
+ {
+ JointList.Add(new Joint(1, Joints.FULL_H));
+ JointList.Add(new Joint(2, Joints.FULL_H));
+ JointList.Add(new Joint(3, Joints.ANGLED));
+ JointList.Add(new Joint(4, Joints.ANGLED));
+ break;
+ }
+
+ case Shapes.TRIANGLE:
+ {
+ JointList.Add(new Joint(1, Joints.FULL_H));
+ JointList.Add(new Joint(2, Joints.FULL_H));
+ JointList.Add(new Joint(3, Joints.ANGLED));
+ break;
+ }
+
+ case Shapes.CUSTOM:
+ {
+ JointList.Clear();
+ break;
+ }
+ }
+ m_Shape = SelShape;
+ }
+ }
}
- set
- {
- Shapes SelShape = (Shapes)IdNameStruct.IdFromInd(value, m_ShapeList);
- if (m_Shape != SelShape)
- {
- // verifico parametri Dimension
+
+ internal void SetSelShape(Shapes Value)
+ {
DimensionList.Clear();
- // aggiungo Dimensioni
- switch (SelShape)
+ // aggiungo Dimension
+ switch (Value)
{
case Shapes.RECTANGLE:
case Shapes.ARC_FULL:
@@ -218,8 +325,8 @@ namespace WebWindowConfigurator
}
}
// aggiungo Joint
- m_JointList.Clear();
- switch (SelShape)
+ int nJointQty = 4;
+ switch (Value)
{
case Shapes.RECTANGLE:
case Shapes.RIGHTCHAMFER:
@@ -258,263 +365,156 @@ namespace WebWindowConfigurator
break;
}
}
- m_Shape = SelShape;
+ m_Shape = Value;
+ }
+
+ private ObservableCollection m_DimensionList = new ObservableCollection();
+ public ObservableCollection DimensionList
+ {
+ get
+ {
+ return m_DimensionList;
}
}
- }
-
- internal void SetSelShape(Shapes Value)
+
+ private ObservableCollection m_JointList = new ObservableCollection();
+ public ObservableCollection JointList
{
- DimensionList.Clear();
- // aggiungo Dimension
- switch (Value)
+ get
+ {
+ return m_JointList;
+ }
+ set
+ {
+ m_JointList = value;
+ }
+ }
+
+ private bool m_bBottomRail;
+ public bool BottomRail
+ {
+ get
+ {
+ return m_bBottomRail;
+ }
+ set
+ {
+ m_bBottomRail = value;
+ }
+ }
+ internal void SetBottomRail(bool bBottomRail)
+ {
+ m_bBottomRail = bBottomRail;
+ }
+
+ private int m_nBottomRailQty = 0;
+ public int BottomRailQty
+ {
+ get
+ {
+ return m_nBottomRailQty;
+ }
+ set
+ {
+ m_nBottomRailQty = value;
+ }
+ }
+ internal void SetBottomRailQty(int nBottomRailQty)
+ {
+ m_nBottomRailQty = nBottomRailQty;
+ }
+
+ private ObservableCollection m_Outline;
+ public ObservableCollection Outline
+ {
+ get
+ {
+ return m_Outline;
+ }
+ set
+ {
+ m_Outline = value;
+ }
+ }
+
+ public Frame(Area ParentArea) : base(ParentArea)
+ {
+ }
+
+ internal static Area CreateFrame(Window Window)
+ {
+ Frame NewFrame = new Frame(null/* TODO Change to default(_) if this is not a reference type */);
+ NewFrame.SetAreaType(AreaTypes.FRAME);
+ NewFrame.SetSelShape(Shapes.RECTANGLE);
+ NewFrame.SetBottomRail(false);
+ NewFrame.SetBottomRailQty(0);
+ return NewFrame;
+ }
+
+ private LuaShapes ConvertShape(Shapes value)
+ {
+ switch (value)
{
case Shapes.RECTANGLE:
- case Shapes.ARC_FULL:
{
- DimensionList.Add(new FrameDimension(1, "Width", 1500, true));
- DimensionList.Add(new FrameDimension(2, "Height", 1800, true));
- break;
+ return LuaShapes.RECT;
}
case Shapes.RIGHTCHAMFER:
{
- DimensionList.Add(new FrameDimension(1, "Width", 1500, true));
- DimensionList.Add(new FrameDimension(2, "Left Height", 1800, true));
- DimensionList.Add(new FrameDimension(3, "Right Height", 1500, true));
- break;
+ return LuaShapes.CHAMFER_SIDE;
}
case Shapes.LEFTCHAMFER:
{
- DimensionList.Add(new FrameDimension(1, "Width", 1500, true));
- DimensionList.Add(new FrameDimension(2, "Left Height", 1500, true));
- DimensionList.Add(new FrameDimension(3, "Right Height", 1800, true));
- break;
+ return LuaShapes.CHAMFER_SIDE;
}
case Shapes.DOUBLECHAMFER:
+ {
+ return LuaShapes.CHAMFER;
+ }
+
case Shapes.ARC:
{
- DimensionList.Add(new FrameDimension(1, "Width", 1500, true));
- DimensionList.Add(new FrameDimension(2, "Height", 1500, true));
- DimensionList.Add(new FrameDimension(3, "Full Height", 1800, true));
- break;
- }
-
- case Shapes.DOUBLEARC:
- {
- DimensionList.Add(new FrameDimension(1, "Width", 1500, true));
- DimensionList.Add(new FrameDimension(2, "Height", 1500, true));
- DimensionList.Add(new FrameDimension(3, "Full Height", 2400, true));
- break;
- }
-
- case Shapes.TRIANGLE:
- {
- DimensionList.Add(new FrameDimension(1, "Width", 2000, true));
- DimensionList.Add(new FrameDimension(2, "Height", 1500, true));
- DimensionList.Add(new FrameDimension(3, "Height projection", 0, true));
- break;
- }
-
- case Shapes.CUSTOM:
- {
- DimensionList.Clear();
- break;
- }
- }
- // aggiungo Joint
- int nJointQty = 4;
- switch (Value)
- {
- case Shapes.RECTANGLE:
- case Shapes.RIGHTCHAMFER:
- case Shapes.LEFTCHAMFER:
- case Shapes.DOUBLECHAMFER:
- case Shapes.ARC:
- case Shapes.DOUBLEARC:
- {
- JointList.Add(new Joint(1, Joints.FULL_H));
- JointList.Add(new Joint(2, Joints.FULL_H));
- JointList.Add(new Joint(3, Joints.FULL_H));
- JointList.Add(new Joint(4, Joints.FULL_H));
- break;
+ return LuaShapes.SEGMENTAL_ARC;
}
case Shapes.ARC_FULL:
{
- JointList.Add(new Joint(1, Joints.FULL_H));
- JointList.Add(new Joint(2, Joints.FULL_H));
- JointList.Add(new Joint(3, Joints.ANGLED));
- JointList.Add(new Joint(4, Joints.ANGLED));
- break;
+ return LuaShapes.ROUND_ARC;
+ }
+
+ case Shapes.DOUBLEARC:
+ {
+ return LuaShapes.POINTED_ARC;
}
case Shapes.TRIANGLE:
{
- JointList.Add(new Joint(1, Joints.FULL_H));
- JointList.Add(new Joint(2, Joints.FULL_H));
- JointList.Add(new Joint(3, Joints.ANGLED));
- break;
+ return LuaShapes.TRIANGLE;
}
- case Shapes.CUSTOM:
+ default:
{
- JointList.Clear();
- break;
+ return LuaShapes.RECT;
}
}
- m_Shape = Value;
}
- private ObservableCollection m_DimensionList = new ObservableCollection();
- public ObservableCollection DimensionList
- {
- get
+ internal override JsonArea Serialize()
{
- return m_DimensionList;
+ JsonFrame JsonFrame = new JsonFrame(m_Shape, m_bBottomRail, m_nBottomRailQty);
+ foreach (var Dimension in DimensionList)
+ JsonFrame.DimensionList.Add(Dimension.Serialize());
+ foreach (var Joint in JointList)
+ JsonFrame.JointList.Add(Joint.Serialize());
+ foreach (var Area in AreaList)
+ JsonFrame.AreaList.Add(Area.Serialize());
+ return JsonFrame;
}
}
- private ObservableCollection m_JointList = new ObservableCollection();
- public ObservableCollection JointList
- {
- get
- {
- return m_JointList;
- }
- set
- {
- m_JointList = value;
- }
- }
-
- private bool m_bBottomRail;
- public bool BottomRail
- {
- get
- {
- return m_bBottomRail;
- }
- set
- {
- m_bBottomRail = value;
- }
- }
- internal void SetBottomRail(bool bBottomRail)
- {
- m_bBottomRail = bBottomRail;
- }
-
- private int m_nBottomRailQty = 0;
- public int BottomRailQty
- {
- get
- {
- return m_nBottomRailQty;
- }
- set
- {
- m_nBottomRailQty = value;
- }
- }
- internal void SetBottomRailQty(int nBottomRailQty)
- {
- m_nBottomRailQty = nBottomRailQty;
- }
-
- private ObservableCollection m_Outline;
- public ObservableCollection Outline
- {
- get
- {
- return m_Outline;
- }
- set
- {
- m_Outline = value;
- }
- }
-
- public Frame(Area ParentArea) : base(ParentArea)
- {
- }
-
- internal static Area CreateFrame(Window Window)
- {
- Frame NewFrame = new Frame(null/* TODO Change to default(_) if this is not a reference type */);
- NewFrame.SetAreaType(AreaTypes.FRAME);
- NewFrame.SetSelShape(Shapes.RECTANGLE);
- NewFrame.SetBottomRail(false);
- NewFrame.SetBottomRailQty(0);
- return NewFrame;
- }
-
- private LuaShapes ConvertShape(Shapes value)
- {
- switch (value)
- {
- case Shapes.RECTANGLE:
- {
- return LuaShapes.RECT;
- }
-
- case Shapes.RIGHTCHAMFER:
- {
- return LuaShapes.CHAMFER_SIDE;
- }
-
- case Shapes.LEFTCHAMFER:
- {
- return LuaShapes.CHAMFER_SIDE;
- }
-
- case Shapes.DOUBLECHAMFER:
- {
- return LuaShapes.CHAMFER;
- }
-
- case Shapes.ARC:
- {
- return LuaShapes.SEGMENTAL_ARC;
- }
-
- case Shapes.ARC_FULL:
- {
- return LuaShapes.ROUND_ARC;
- }
-
- case Shapes.DOUBLEARC:
- {
- return LuaShapes.POINTED_ARC;
- }
-
- case Shapes.TRIANGLE:
- {
- return LuaShapes.TRIANGLE;
- }
-
- default:
- {
- return LuaShapes.RECT;
- }
- }
- }
-
- internal override JsonArea Serialize()
- {
- JsonFrame JsonFrame = new JsonFrame(m_Shape, m_bBottomRail, m_nBottomRailQty);
- foreach (var Dimension in DimensionList)
- JsonFrame.DimensionList.Add(Dimension.Serialize());
- foreach (var Joint in JointList)
- JsonFrame.JointList.Add(Joint.Serialize());
- foreach (var Area in AreaList)
- JsonFrame.AreaList.Add(Area.Serialize());
- return JsonFrame;
- }
-}
-
public class Sash : Area
{
public int nSashQty