aggiunto hardware

This commit is contained in:
Annamaria Sassi
2025-09-10 18:45:57 +02:00
parent 618c1acc4f
commit 036d50b29b
11 changed files with 871 additions and 682 deletions
+212 -187
View File
@@ -155,7 +155,7 @@ namespace WebWindowComplex
internal abstract JsonArea Serialize();
public void AddSplit()
public void AddSplit(Area ParentArea)
{
List<Area> ContentArea = new List<Area>();
// Salvo gli oggetti già presenti e li cancello da AreaList
@@ -171,17 +171,19 @@ namespace WebWindowComplex
List<Splitted> newSplittedList = new List<Splitted>();
for (int i = 0; i < 2; i++)
newSplittedList.Add(Splitted.CreateSplitted(SplitArea));
// Inserisco nelle aree Splitted il Fill salvato e un Fill uguale (e setto ParentArea)
// Inserisco nelle aree Splitted il Fill salvato e un Fill uguale (e setto ParentArea del fill)
ContentArea[0].SetParentArea(newSplittedList[0]);
newSplittedList[0].AreaList.Add(ContentArea[0]);
newSplittedList[0].AreaList[0].SetParentArea(newSplittedList[0]);
if (ContentArea[0] is Fill)
{
Fill fill2 = (Fill)ContentArea[0];
newSplittedList[1].AreaList.Add(Fill.CreateFill(newSplittedList[1], fill2.FillType));
Fill fill1 = (Fill)ContentArea[0];
Fill fill2 = Fill.CreateFill(newSplittedList[1], fill1.FillType);
newSplittedList[1].AreaList.Add(fill2);
}
else
{
newSplittedList[1].AreaList.Add(Fill.CreateFill(newSplittedList[1], FillTypes.GLASS));
Fill fill2 = Fill.CreateFill(newSplittedList[1], FillTypes.GLASS);
newSplittedList[1].AreaList.Add(fill2);
}
// All'area Split aggiunto le due aree Splitted
for (int i = 0; i < 2; i++)
@@ -233,7 +235,7 @@ namespace WebWindowComplex
}
}
public abstract Area Copy();
public abstract Area Copy(Area ParentArea);
}
public class Frame : Area
@@ -636,7 +638,7 @@ namespace WebWindowComplex
}
}
public override Frame Copy()
public override Frame Copy(Area ParentArea)
{
return null;
}
@@ -700,9 +702,7 @@ namespace WebWindowComplex
}
else
{
// Se tolgo singola anta, ma tengo split
SashList.RemoveAt(0);
}
}
if(m_SashList.Count == 0)
@@ -1063,107 +1063,107 @@ namespace WebWindowComplex
}
}
//private Hardware m_SelHardware;
//public Hardware SelHardware
//{
// get
// {
// return m_SelHardware;
// }
// set
// {
// m_SelHardware = value;
// if (m_SelHardware != null && m_SelHardware.sId != "000000")
// {
// string sHwdOptPath = "";
// var gf = EgtLuaCreateGlobTable("WDG");
// var tft = EgtLuaSetGlobIntVar("WDG.AREAID", m_nAreaId);
// var tfy = EgtLuaSetGlobStringVar("WDG.HDWFAVOURITE", value.sId);
// SashDimension HandleSash = m_SashList.FirstOrDefault(x => x.bHasHandle);
// string sHandle = "Dx";
// switch (GetOpeningSide(HandleSash.OpeningType))
// {
// case object _ when OpeningSides.LEFT:
// {
// sHandle = "Sx";
// break;
// }
private Hardware m_SelHardware;
public Hardware SelHardware
{
get
{
return m_SelHardware;
}
set
{
m_SelHardware = value;
// if (m_SelHardware != null && m_SelHardware.sId != "000000")
// {
// string sHwdOptPath = "";
// var gf = EgtLuaCreateGlobTable("WDG");
// var tft = EgtLuaSetGlobIntVar("WDG.AREAID", m_nAreaId);
// var tfy = EgtLuaSetGlobStringVar("WDG.HDWFAVOURITE", value.sId);
// SashDimension HandleSash = m_SashList.FirstOrDefault(x => x.bHasHandle);
// string sHandle = "Dx";
// switch (GetOpeningSide(HandleSash.OpeningType))
// {
// case object _ when OpeningSides.LEFT:
// {
// sHandle = "Sx";
// break;
// }
// case object _ when OpeningSides.RIGHT:
// {
// sHandle = "Dx";
// break;
// }
// }
// var tfd = EgtLuaSetGlobStringVar("WDG.HDWHANDLE", sHandle);
// var tlt = EgtLuaCallFunction("WinCreate_GetHardwareOptionPath");
// var tltf = EgtLuaGetGlobStringVar("WDG.HWDOPTPATH", sHwdOptPath);
// if (!string.IsNullOrWhiteSpace(sHwdOptPath))
// {
// XmlSerializer serializer = new XmlSerializer(typeof(ParametriOpzioni));
// ParametriOpzioni HwdOptions = null/* TODO Change to default(_) if this is not a reference type */;
// string sHdwOptPath = Path.ChangeExtension(sHwdOptPath, ".opt");
// bool bHdwOptFound = false;
// for (var WaitIndex = 0; WaitIndex <= 100; WaitIndex++)
// {
// if (File.Exists(sHdwOptPath))
// {
// bHdwOptFound = true;
// break;
// }
// System.Threading.Thread.Sleep(100);
// }
// if (bHdwOptFound)
// {
// string sHwdOptText = "";
// try
// {
// sHwdOptText = File.ReadAllText(sHdwOptPath);
// }
// catch (Exception ex)
// {
// EgtOutLog("Hardware file opt not found or read!");
// }
// if (!string.IsNullOrWhiteSpace(sHwdOptText))
// {
// using (TextReader reader = new StringReader(sHwdOptText))
// {
// HwdOptions = serializer.Deserialize(reader);
// }
// if (!IsNothing(HwdOptions))
// {
// m_HwdOptionList.Clear();
// foreach (var HdwOption in HwdOptions.Items)
// m_HwdOptionList.Add(new AGBOption(HdwOption));
// NotifyPropertyChanged(nameof(HwdOptionList));
// }
// }
// }
// var ud = EgtLuaResetGlobVar("WDG");
// }
// }
// }
//}
// case object _ when OpeningSides.RIGHT:
// {
// sHandle = "Dx";
// break;
// }
// }
// var tfd = EgtLuaSetGlobStringVar("WDG.HDWHANDLE", sHandle);
// var tlt = EgtLuaCallFunction("WinCreate_GetHardwareOptionPath");
// var tltf = EgtLuaGetGlobStringVar("WDG.HWDOPTPATH", sHwdOptPath);
// if (!string.IsNullOrWhiteSpace(sHwdOptPath))
// {
// XmlSerializer serializer = new XmlSerializer(typeof(ParametriOpzioni));
// ParametriOpzioni HwdOptions = null/* TODO Change to default(_) if this is not a reference type */;
// string sHdwOptPath = Path.ChangeExtension(sHwdOptPath, ".opt");
// bool bHdwOptFound = false;
// for (var WaitIndex = 0; WaitIndex <= 100; WaitIndex++)
// {
// if (File.Exists(sHdwOptPath))
// {
// bHdwOptFound = true;
// break;
// }
// System.Threading.Thread.Sleep(100);
// }
// if (bHdwOptFound)
// {
// string sHwdOptText = "";
// try
// {
// sHwdOptText = File.ReadAllText(sHdwOptPath);
// }
// catch (Exception ex)
// {
// EgtOutLog("Hardware file opt not found or read!");
// }
// if (!string.IsNullOrWhiteSpace(sHwdOptText))
// {
// using (TextReader reader = new StringReader(sHwdOptText))
// {
// HwdOptions = serializer.Deserialize(reader);
// }
// if (!IsNothing(HwdOptions))
// {
// m_HwdOptionList.Clear();
// foreach (var HdwOption in HwdOptions.Items)
// m_HwdOptionList.Add(new AGBOption(HdwOption));
// NotifyPropertyChanged(nameof(HwdOptionList));
// }
// }
// }
// var ud = EgtLuaResetGlobVar("WDG");
// }
// }
}
}
//internal void SetSelHardware(Hardware value)
//{
// m_SelHardware = value;
//}
internal void SetSelHardware(Hardware value)
{
m_SelHardware = value;
}
//internal void SetSelHardwareFromId(string sId)
//{
// m_SelHardware = m_HardwareList.FirstOrDefault(x => x.sId == sId);
// if (IsNothing(m_SelHardware))
// m_SelHardware = m_HardwareList(0);
//}
internal void SetSelHardwareFromId(string sId)
{
m_SelHardware = m_HardwareList.FirstOrDefault(x => x.sId == sId);
if (m_SelHardware != null)
m_SelHardware = m_HardwareList[0];
}
//internal void SetFirstHardware()
//{
// if (m_HardwareList.Count > 0)
// {
// m_SelHardware = m_HardwareList(0);
// }
//}
internal void SetFirstHardware()
{
if (m_HardwareList.Count > 0)
{
m_SelHardware = m_HardwareList[0];
}
}
private ObservableCollection<AGBOption> m_HwdOptionList = new ObservableCollection<AGBOption>();
public ObservableCollection<AGBOption> HwdOptionList
@@ -1197,6 +1197,11 @@ namespace WebWindowComplex
//NewSash.SetFirstHardware();
return NewSash;
}
private string FindSashShape()
{
// Return "R"
return "RECTANGLE";
}
internal OpeningTypes GetOpeningType(Openings OpeningType)
{
@@ -1251,109 +1256,120 @@ namespace WebWindowComplex
private string ConvertOpeningType()
{
if (m_SashList.Any(x => GetOpeningType(x.OpeningType) == OpeningTypes.TILTTURN))
return "AR";
if(m_SashList.Count > 1)
{
if (GetOpeningType(m_SashList[0].OpeningType) == OpeningTypes.TURNONLY)
return "ANTA_BANDIERA";
else
return "ANTA_RIBALTA";
}
else
{
switch (GetOpeningType(m_SashList[0].OpeningType))
{
case OpeningTypes.TILTTURN:
{
return "ANTA_RIBALTA";
}
case OpeningTypes.TURNONLY:
{
return "AB";
return "ANTA_BANDIERA";
}
case OpeningTypes.TILTONLY:
{
return "VA";
return "VASISTAS";
}
case OpeningTypes.PIVOT:
{
return "BI";
return "PIVOT";
}
case OpeningTypes.COMPLANARSLIDE:
{
return "CO";
return "COMPLANARE";
}
case OpeningTypes.LIFTSLIDE:
{
return "AS";
return "ALZANTE_SCORREVOLE";
}
default:
{
return "";
}
}
}
}
//internal void RefreshHardwareList()
//{
// m_HardwareList.Clear();
// string sSashShape = FindSashShape();
// string sOpeningType = ConvertOpeningType();
// m_HardwareList = new ObservableCollection<Hardware>(from Hardware in Map.refManageWindowVM.HardwareList
// where Hardware.sId == "000000" || (Hardware.nSashQty == nSashQty && Hardware.sShape == sSashShape && Hardware.sOpeningType == sOpeningType)
// select Hardware);
//}
public void RefreshHardwareList(List<Hardware> HardwareCompleteList, string nameFamily)
{
m_HardwareList.Clear();
string sSashShape = FindSashShape();
string sOpeningType = ConvertOpeningType();
m_HardwareList = new ObservableCollection<Hardware>(from Hardware in HardwareCompleteList
where Hardware.sId == "000000" || (Hardware.sFamily == nameFamily && Hardware.nSashQty == nSashQty && Hardware.sShape == sSashShape && Hardware.sOpeningType == sOpeningType)
select Hardware);
}
internal void RefreshHardwareOptionList()
{
m_HwdOptionList.Clear();
}
internal OpeningSides GetOpeningSide(Openings OpeningType)
//internal OpeningSides GetOpeningSide(Openings OpeningType)
//{
// switch (OpeningType)
// {
// case Openings.TURNONLY_LEFT:
// case Openings.TILTTURN_LEFT:
// case Openings.TILTONLY_TOP:
// case Openings.COMPLANARSLIDE_LEFT:
// case Openings.LIFTSLIDE_LEFT:
// {
// return OpeningSides.LEFT;
// }
// case Openings.TURNONLY_RIGHT:
// case Openings.TILTTURN_RIGHT:
// case Openings.TILTONLY_BOTTOM:
// case Openings.COMPLANARSLIDE_RIGHT:
// case Openings.LIFTSLIDE_RIGHT:
// {
// return OpeningSides.RIGHT;
// }
// default:
// {
// return OpeningSides.NULL;
// }
// }
//}
public override Sash Copy(Area newParentArea)
{
switch (OpeningType)
{
case Openings.TURNONLY_LEFT:
case Openings.TILTTURN_LEFT:
case Openings.TILTONLY_TOP:
case Openings.COMPLANARSLIDE_LEFT:
case Openings.LIFTSLIDE_LEFT:
{
return OpeningSides.LEFT;
}
case Openings.TURNONLY_RIGHT:
case Openings.TILTTURN_RIGHT:
case Openings.TILTONLY_BOTTOM:
case Openings.COMPLANARSLIDE_RIGHT:
case Openings.LIFTSLIDE_RIGHT:
{
return OpeningSides.RIGHT;
}
default:
{
return OpeningSides.NULL;
}
}
}
public override Sash Copy()
{
Sash newSash = new Sash(ParentArea, m_ParentWindow);
Sash newSash = new Sash(newParentArea, m_ParentWindow);
newSash.SetAreaType(AreaType);
// Imposta la quantità di ante e definisce SashDimension di ogni anta ai valori di default
newSash.SetSashQty(nSashQty);
newSash.SetIsSashVertical(bIsSashVertical);
newSash.SetOrientationSashType(OrientationSashType);
newSash.SetSashBottomRailQty(SashBottomRailQty);
foreach (var item in SashList)
for (int i = 0; i <SashList.Count; i++)
{
SashDimension dim = item.Copy();
newSash.SashList.Add(dim);
//Cancello SashDimension di default e aggiungo la copia
newSash.SashList.RemoveAt(i);
SashDimension newSashDim = SashList[i].Copy();
newSash.SashList.Insert(i,newSashDim);
}
foreach (var item in JointList)
{
Joint j = item.Copy();
newSash.JointList.Add(j);
Joint newJoint = item.Copy();
newSash.JointList.Add(newJoint);
}
foreach (var item in AreaList)
{
Area a = item.Copy();
newSash.AreaList.Add(a);
Area newArea = item.Copy(newSash);
newSash.AreaList.Add(newArea);
}
return newSash;
}
@@ -1416,19 +1432,17 @@ namespace WebWindowComplex
dLastDimension += m_SplitPositionList[SplitPositionList.Count - 1].dDimension;
SplitPositionList[SplitPositionList.Count - 1].SetDimension(dLastDimension);
}
for(var SplitIndex = AreaList.Count; SplitIndex <= SplitPositionList.Count - 1; SplitIndex++)
// Se aggiungo split devo aggiungere vetro nell'area splitted aggiunta
for (var SplitIndex = AreaList.Count; SplitIndex <= SplitPositionList.Count - 1; SplitIndex++)
{
AreaList.Add(Splitted.CreateSplitted(this));
if(AreaList[AreaList.Count - 2].AreaList[0] is Fill)
{
Fill f1 = (Fill)AreaList[AreaList.Count - 2].AreaList[0];
AreaList.Last().AreaList.Add(Fill.CreateFill(AreaList.Last(), f1.FillType));
}
else
AreaList.Last().AreaList.Add(Fill.CreateFill(AreaList.Last(), FillTypes.GLASS));
Fill newFill = new Fill(AreaList.Last(), ParentWindow);
newFill.SetFillType(FillTypes.GLASS);
newFill.SetAreaType(AreaTypes.FILL);
AreaList[AreaList.Count - 1].AreaList.Add(newFill);
}
// Se ho più di uno split, elimino l'ultimo
if(AreaList.Count > 2)
if (AreaList.Count > 2)
{
for (var SplitIndex = SplitPositionList.Count; SplitIndex <= AreaList.Count - 1; SplitIndex++)
{
@@ -1439,6 +1453,7 @@ namespace WebWindowComplex
else
{
Splitted s = (Splitted)AreaList[0];
s.SetParentArea(ParentArea);
ParentArea.AreaList.Add(s.AreaList[0]);
ParentArea.AreaList.Remove(this);
}
@@ -1559,15 +1574,15 @@ namespace WebWindowComplex
return Split;
}
public override Split Copy()
public override Split Copy(Area newParentArea)
{
Split newSplit = new Split(ParentArea, ParentWindow);
Split newSplit = new Split(newParentArea, ParentWindow);
newSplit.SetSplitQty(nSplitQty);
newSplit.SetSplitShape(SelSplitShape, true);
newSplit.SetAreaType(AreaType);
foreach(var item in AreaList)
{
Area a = item.Copy();
Area a = item.Copy(newSplit);
newSplit.AreaList.Add(a);
}
return newSplit;
@@ -1591,20 +1606,20 @@ namespace WebWindowComplex
{
}
internal static Splitted CreateSplitted(Area Area)
internal static Splitted CreateSplitted(Area ParentArea)
{
Splitted Splitted = new Splitted(Area, Area.ParentWindow);
Splitted Splitted = new Splitted(ParentArea, ParentArea.ParentWindow);
Splitted.SetAreaType(AreaTypes.SPLITTED);
return Splitted;
}
public override Splitted Copy()
public override Splitted Copy(Area newParentArea)
{
Splitted newSplitted = new Splitted(ParentArea, ParentWindow);
Splitted newSplitted = new Splitted(newParentArea, ParentWindow);
newSplitted.SetAreaType(AreaType);
foreach (var item in AreaList)
{
Area a = item.Copy();
Area a = item.Copy(newSplitted);
newSplitted.AreaList.Add(a);
}
return newSplitted;
@@ -1674,17 +1689,17 @@ namespace WebWindowComplex
{
}
internal static Fill CreateFill(Area Area, FillTypes FillType)
internal static Fill CreateFill(Area AreaParent, FillTypes FillType)
{
Fill Fill = new Fill(Area, Area.ParentWindow);
Fill Fill = new Fill(AreaParent, AreaParent.ParentWindow);
Fill.SetAreaType(AreaTypes.FILL);
Fill.SetFillType(FillType);
return Fill;
}
public override Fill Copy()
public override Fill Copy(Area newParentArea)
{
Fill newFill = new Fill(ParentArea, m_ParentWindow);
Fill newFill = new Fill(newParentArea, m_ParentWindow);
newFill.SetFillType(SelFillType);
newFill.SetAreaType(AreaType);
return newFill;
@@ -1835,6 +1850,15 @@ namespace WebWindowComplex
}
}
private string m_sFamily;
public string sFamily
{
get
{
return m_sFamily;
}
}
private string m_sName;
public string sName
{
@@ -1880,9 +1904,10 @@ namespace WebWindowComplex
}
}
public Hardware(string sId, string sName, string sOpeningType, string sShape, int nSashQty, int nSashPosition)
public Hardware(string sId, string sFamily, string sName, string sOpeningType, string sShape, int nSashQty, int nSashPosition)
{
m_sId = sId;
m_sFamily = sFamily;
m_sName = sName;
m_sOpeningType = sOpeningType;
m_sShape = sShape;
@@ -2123,7 +2148,7 @@ namespace WebWindowComplex
{
m_SelOpeningType = value;
//m_Parent.RefreshHardwareList();
m_Parent.RefreshHardwareOptionList();
//m_Parent.RefreshHardwareOptionList();
//m_Parent.SetFirstHardware();
}
}