aggiunto hardware
This commit is contained in:
+186
-149
@@ -219,7 +219,7 @@
|
||||
<div class="card-body py-2">
|
||||
<h5 class="card-title">Frame</h5>
|
||||
<div class="input-group mb-2">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => FrameWindow.AddSplit()">Aggiungi split</button>
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => FrameWindow.AddSplit(FrameWindow)">Aggiungi split</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -257,7 +257,7 @@
|
||||
<div class="col-sm-6">
|
||||
<div class="border mb-2">
|
||||
<div class="card-body py-2">
|
||||
@if (currSplit.ParentArea is Splitted || currSplit.ParentArea is Sash)
|
||||
@if ((currSplit.ParentArea is Splitted || currSplit.ParentArea is Sash) && SashList.Count > 0)
|
||||
{
|
||||
@for (int j = 0; j < SashList.Count; j++)
|
||||
{
|
||||
@@ -286,9 +286,12 @@
|
||||
<div class="border mb-2">
|
||||
<div class="card-body py-2">
|
||||
<h5>Split</h5>
|
||||
<div class="input-group mb-2 justify-content-center">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => SwapTwoAree(currSplit)">Swap Aree</button>
|
||||
</div>
|
||||
@if (currSplit.nSplitQty == 1)
|
||||
{
|
||||
<div class="input-group mb-2 justify-content-center">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => SwapTwoAree(currSplit)">Swap Aree</button>
|
||||
</div>
|
||||
}
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text" id="SplitQty@(m_SplitList.IndexOf(currSplit) + 1)">Number</span>
|
||||
<input type="number" class="form-control" placeholder="0" aria-label="basic-addon1Split" @bind="@currSplit.nSplitQty">
|
||||
@@ -348,8 +351,22 @@
|
||||
<div class="border mb-2">
|
||||
<div class="card-body py-2">
|
||||
<h5>Area split</h5>
|
||||
<div class="input-group mb-2">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => currSplitted.AddSash()">Aggiungi sash</button>
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div class="input-group mb-2">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => currSplitted.AddSash()">Aggiungi sash</button>
|
||||
</div>
|
||||
</div>
|
||||
@for (int j = 0; j < SashList.Count; j++)
|
||||
{
|
||||
int Index = j;
|
||||
<div class="col-4">
|
||||
<div class="input-group mb-2">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => CopySplitted(currSplitted, Index)">Copy sash @(j+1)</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -488,163 +505,108 @@
|
||||
}
|
||||
else if (currStep == CompileStep.Sash)
|
||||
{
|
||||
@if (currSash > SashList.Count)
|
||||
@if (currSash >= SashList.Count || currSash == -1)
|
||||
{
|
||||
currStep = CompileStep.Gerarchia;
|
||||
}
|
||||
Sash item = SashList[currSash];
|
||||
<div class="container">
|
||||
<div class="text-start display-4">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text" id="NumberSash@(SashList.IndexOf(item) + 1)">Number</span>
|
||||
<input type="number" class="form-control" aria-label="NumberSash@(SashList.IndexOf(item) + 1)" @bind="@item.nSashQty">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="border mb-2">
|
||||
<div class="card-body py-2">
|
||||
<h5 class="card-title">Orientation</h5>
|
||||
<div class="input-group mb-2">
|
||||
<label class="input-group-text" for="OrientationSash@(SashList.IndexOf(item) + 1)">Tipology</label>
|
||||
<select class="form-select" id="OrientationSash@(SashList.IndexOf(item) + 1)" @bind="@item.SelOrientationSashTypeIndex">
|
||||
<option value="0">Vertical</option>
|
||||
<option value="1">Horizontal</option>
|
||||
</select>
|
||||
</div>
|
||||
else
|
||||
{
|
||||
Sash item = SashList[currSash];
|
||||
<div class="container">
|
||||
<div class="text-start display-4">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text" id="NumberSash@(SashList.IndexOf(item) + 1)">Number</span>
|
||||
<input type="number" class="form-control" aria-label="NumberSash@(SashList.IndexOf(item) + 1)" @bind="@item.nSashQty">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="border mb-2">
|
||||
<div class="card-body py-2">
|
||||
<h5 class="card-title">Bottom rail</h5>
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text" id="BottomRailQty@(SashList.IndexOf(item) + 1)">Quantity</span>
|
||||
<input type="number" class="form-control" aria-label="BottomRailQty" @bind="@item.SashBottomRailQty">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
@for (int i = 0; i <= item.SashList.Count / 2; i++)
|
||||
{
|
||||
for (int j = 0; j < 2 && (i * 2 + j <= item.SashList.Count - 1); j++)
|
||||
{
|
||||
SashDimension sash = item.SashList[i * 2 + j];
|
||||
<div class="col-sm-6">
|
||||
<div class="border mb-2">
|
||||
<div class="card-body py-2">
|
||||
@if (item.SashList.Count == 1)
|
||||
{
|
||||
<h5 class="card-title">Opening</h5>
|
||||
}
|
||||
else
|
||||
{
|
||||
<h5 class="card-title">Sash opening @(i * 2 + j + 1)</h5>
|
||||
}
|
||||
<div class="input-group mb-2">
|
||||
<label class="input-group-text" for="OpeningSash@(i * 2 + j + 1)">Tipology</label>
|
||||
<select class="form-select" id="OpeningSash@(i * 2 + j + 1)" @bind="@sash.SelOpeningTypeIndex">
|
||||
<option value="0">A sinistra</option>
|
||||
<option value="1">A destra</option>
|
||||
<option value="2">Ad anta-ribalta sinistra</option>
|
||||
<option value="3">Ad anta-ribalta destra</option>
|
||||
<option value="4">Solo verso alto</option>
|
||||
<option value="5">Solo verso basso</option>
|
||||
<option value="6">Pivot</option>
|
||||
<option value="7">Fissa</option>
|
||||
<option value="8">Complanare sinistra</option>
|
||||
<option value="9">Complanare destra</option>
|
||||
<option value="10">Scorrevole sinistra</option>
|
||||
<option value="11">Scorrevole destra</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text">Dimension</span>
|
||||
<input type="number" class="form-control" aria-label="DimensionSash" @bind="@sash.dDimension">
|
||||
<span class="input-group-text">%</span>
|
||||
</div>
|
||||
<div class="d-flex justify-content-start fs-5 mb-2">
|
||||
<div class="px-1">
|
||||
<input class="form-check-input ml-auto" type="checkbox" name="Handle" id="HandleSashLabel@(i * 2 + j + 1)" checked="@sash.bHasHandle" @onclick="() => changeHandle(sash)">
|
||||
</div>
|
||||
<div class="px-2">
|
||||
<label class="form-check-label fs-6 text-dark" for="HandleSashLabel@(i * 2 + j + 1)">Handle</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row d-grid gap-1 d-md-flex justify-content-md-center">
|
||||
@for (int k = 1; k <= i*2+j; k++)
|
||||
{
|
||||
int IndexCopy = k;
|
||||
int IndexModify = i * 2 + j;
|
||||
<div class="col-sm-4">
|
||||
<div class="input-group">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => CopyContent(item, IndexCopy, IndexModify)">Copy @(k)</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="border mb-2">
|
||||
<div class="card-body py-2">
|
||||
<h5 class="card-title">Sash joints</h5>
|
||||
<div class="row p-0 m-0 text-center">
|
||||
<div class="col">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AllJointsFrame(1, 1)">Angled</button>
|
||||
</div>
|
||||
<div class="col">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AllJointsFrame(2, 1)">Horizontal</button>
|
||||
</div>
|
||||
<div class="col">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AllJointsFrame(3, 1)">Vertical</button>
|
||||
</div>
|
||||
</div>
|
||||
@foreach (Joint joint in item.JointList)
|
||||
{
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="border mb-2">
|
||||
<div class="card-body py-2">
|
||||
<h5 class="card-title">Orientation</h5>
|
||||
<div class="input-group mb-2">
|
||||
<label class="input-group-text" for="IndexJoint@(item.JointList.IndexOf(joint) + 1)">@((positionJoints)(item.JointList.IndexOf(joint)))</label>
|
||||
<select class="form-select" id="IndexJoint@(item.JointList.IndexOf(joint) + 1)" @bind="@joint.SelJointTypeIndex">
|
||||
<option value="0">Angled</option>
|
||||
<option value="1">Full H</option>
|
||||
<option value="2">Full V</option>
|
||||
<label class="input-group-text" for="OrientationSash@(SashList.IndexOf(item) + 1)">Tipology</label>
|
||||
<select class="form-select" id="OrientationSash@(SashList.IndexOf(item) + 1)" @bind="@item.SelOrientationSashTypeIndex">
|
||||
<option value="0">Vertical</option>
|
||||
<option value="1">Horizontal</option>
|
||||
</select>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="border mb-2">
|
||||
<div class="card-body py-2">
|
||||
<h5 class="card-title">Bottom rail</h5>
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text" id="BottomRailQty@(SashList.IndexOf(item) + 1)">Quantity</span>
|
||||
<input type="number" class="form-control" aria-label="BottomRailQty" @bind="@item.SashBottomRailQty">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
@for (int i = 0; i < item.AreaList.Count; i++)
|
||||
<div class="row">
|
||||
@for (int i = 0; i <= item.SashList.Count / 2; i++)
|
||||
{
|
||||
Area anta;
|
||||
@if (item.AreaList[i] is Splitted)
|
||||
for (int j = 0; j < 2 && (i * 2 + j <= item.SashList.Count - 1); j++)
|
||||
{
|
||||
anta = item.AreaList[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
anta = item;
|
||||
}
|
||||
@if (!(anta.AreaList[0] is Split))
|
||||
{
|
||||
<div class="col">
|
||||
SashDimension sash = item.SashList[i * 2 + j];
|
||||
<div class="col-sm-6">
|
||||
<div class="border mb-2">
|
||||
<div class="card-body py-2">
|
||||
<h5 class="card-title">Anta @(i + 1)</h5>
|
||||
@if (item.SashList.Count == 1)
|
||||
{
|
||||
<h5 class="card-title">Opening</h5>
|
||||
}
|
||||
else
|
||||
{
|
||||
<h5 class="card-title">Sash opening @(i * 2 + j + 1)</h5>
|
||||
}
|
||||
<div class="input-group mb-2">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => anta.AddSplit()">Aggiungi split</button>
|
||||
<label class="input-group-text" for="OpeningSash@(i * 2 + j + 1)">Tipology</label>
|
||||
<select class="form-select" id="OpeningSash@(i * 2 + j + 1)" @bind="@sash.SelOpeningTypeIndex">
|
||||
<option value="0">A sinistra</option>
|
||||
<option value="1">A destra</option>
|
||||
<option value="2">Ad anta-ribalta sinistra</option>
|
||||
<option value="3">Ad anta-ribalta destra</option>
|
||||
<option value="4">Solo verso alto</option>
|
||||
<option value="5">Solo verso basso</option>
|
||||
<option value="6">Pivot</option>
|
||||
<option value="7">Fissa</option>
|
||||
<option value="8">Complanare sinistra</option>
|
||||
<option value="9">Complanare destra</option>
|
||||
<option value="10">Scorrevole sinistra</option>
|
||||
<option value="11">Scorrevole destra</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text">Dimension</span>
|
||||
<input type="number" class="form-control" aria-label="DimensionSash" @bind="@sash.dDimension">
|
||||
<span class="input-group-text">%</span>
|
||||
</div>
|
||||
<div class="d-flex justify-content-start fs-5 mb-2">
|
||||
<div class="px-1">
|
||||
<input class="form-check-input ml-auto" type="checkbox" name="Handle" id="HandleSashLabel@(i * 2 + j + 1)" checked="@sash.bHasHandle" @onclick="() => changeHandle(sash)">
|
||||
</div>
|
||||
<div class="px-2">
|
||||
<label class="form-check-label fs-6 text-dark" for="HandleSashLabel@(i * 2 + j + 1)">Handle</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row d-grid gap-1 d-md-flex justify-content-md-center">
|
||||
@for (int k = 1; k <= i * 2 + j; k++)
|
||||
{
|
||||
int IndexCopy = k;
|
||||
int IndexModify = i * 2 + j;
|
||||
<div class="col-sm-4">
|
||||
<div class="input-group">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => CopyContent(item, IndexCopy, IndexModify)">Copy @(k)</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -652,10 +614,85 @@
|
||||
}
|
||||
}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="border mb-2">
|
||||
<div class="card-body py-2">
|
||||
<h5 class="card-title">Sash joints</h5>
|
||||
<div class="row p-0 m-0 text-center">
|
||||
<div class="col">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AllJointsFrame(1, 1)">Angled</button>
|
||||
</div>
|
||||
<div class="col">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AllJointsFrame(2, 1)">Horizontal</button>
|
||||
</div>
|
||||
<div class="col">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => AllJointsFrame(3, 1)">Vertical</button>
|
||||
</div>
|
||||
</div>
|
||||
@foreach (Joint joint in item.JointList)
|
||||
{
|
||||
<div class="input-group mb-2">
|
||||
<label class="input-group-text" for="IndexJoint@(item.JointList.IndexOf(joint) + 1)">@((positionJoints)(item.JointList.IndexOf(joint)))</label>
|
||||
<select class="form-select" id="IndexJoint@(item.JointList.IndexOf(joint) + 1)" @bind="@joint.SelJointTypeIndex">
|
||||
<option value="0">Angled</option>
|
||||
<option value="1">Full H</option>
|
||||
<option value="2">Full V</option>
|
||||
</select>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
@for (int i = 0; i < item.AreaList.Count; i++)
|
||||
{
|
||||
Area anta;
|
||||
@if (item.AreaList[i] is Splitted)
|
||||
{
|
||||
anta = item.AreaList[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
anta = item;
|
||||
}
|
||||
@if (!(anta.AreaList[0] is Split))
|
||||
{
|
||||
<div class="col">
|
||||
<div class="border mb-2">
|
||||
<div class="card-body py-2">
|
||||
<h5 class="card-title">Anta @(i + 1)</h5>
|
||||
<div class="input-group mb-2">
|
||||
<button class="btn btn-outline-secondary btn-sm" @onclick="() => anta.AddSplit(anta)">Aggiungi split</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="border mb-2">
|
||||
<div class="card-body py-2">
|
||||
<h5 class="card-title">Hardware</h5>
|
||||
<div class="input-group mb-2">
|
||||
<label class="input-group-text" for="Hardware">Tipology</label>
|
||||
<select class="form-select" id="Hardware">
|
||||
@foreach (var hw in item.HardwareList)
|
||||
{
|
||||
<option value="@hw.sName">@hw.sName</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
else if (currStep == CompileStep.Fill)
|
||||
{
|
||||
|
||||
@@ -65,6 +65,10 @@ namespace WebWindowComplex
|
||||
m_ItemTableList = new List<ItemTable>();
|
||||
CreateWindowsList(m_CurrWindow.AreaList[0], false);
|
||||
CreateElementTable(m_CurrWindow.AreaList[0], 1, 1, 1, 1);
|
||||
foreach (var item in SashList)
|
||||
{
|
||||
item.RefreshHardwareList(IN_HardwareList, IN_FamilyHardware);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -72,6 +76,12 @@ namespace WebWindowComplex
|
||||
[Parameter]
|
||||
public List<TemplateSelectDTO> IN_TemplateDTOList { get; set; } = null!;
|
||||
|
||||
[Parameter]
|
||||
public string IN_FamilyHardware { get; set; } = null;
|
||||
|
||||
[Parameter]
|
||||
public List<Hardware> IN_HardwareList { get; set; } = null;
|
||||
|
||||
[Parameter]
|
||||
public string LiveSVG
|
||||
{
|
||||
@@ -117,6 +127,14 @@ namespace WebWindowComplex
|
||||
Nero
|
||||
}
|
||||
|
||||
protected enum positionJoints
|
||||
{
|
||||
BL = 0, // Bottom Left
|
||||
BR = 1, // Bottom Right
|
||||
TR, // Top Right
|
||||
TL // Top Left
|
||||
}
|
||||
|
||||
#endregion Protected Enums
|
||||
|
||||
#region Protected Properties
|
||||
@@ -243,7 +261,7 @@ namespace WebWindowComplex
|
||||
// popolo le liste Fill, Sash e Split
|
||||
CreateWindowsList(m_CurrWindow.AreaList[0], false);
|
||||
CreateElementTable(m_CurrWindow.AreaList[0], 1, 1, 1, 1);
|
||||
//currSash = -1;
|
||||
currSash = -1;
|
||||
await DoPreviewSvg();
|
||||
}
|
||||
|
||||
@@ -565,14 +583,35 @@ namespace WebWindowComplex
|
||||
await DoPreviewSvg();
|
||||
}
|
||||
|
||||
private void CopyContent(Sash sashItem, int IndexCopy, int IndexModify)
|
||||
/// <summary>
|
||||
/// Metodo per copiare contenuto di un'anta in un'altra anta
|
||||
/// </summary>
|
||||
/// <param name="sashItem">Sash dove si torva anta </param>
|
||||
/// <param name="IndexCopy">Indice dell'anta che si copia</param>
|
||||
/// <param name="IndexModify">Indice dell'anta che si modifica</param>
|
||||
private async Task CopyContent(Sash sashItem, int IndexCopy, int IndexModify)
|
||||
{
|
||||
// Anta selezionata
|
||||
Area sashSplitted = sashItem.AreaList[IndexModify];
|
||||
// Rimuovo riempimento da anta selezionata
|
||||
sashItem.AreaList[IndexModify].AreaList.RemoveAt(0);
|
||||
sashSplitted.AreaList.RemoveAt(0);
|
||||
// Creo la copia dell'anta scelta
|
||||
Area a = sashItem.AreaList[IndexCopy-1].AreaList[0].Copy();
|
||||
Area a = sashItem.AreaList[IndexCopy-1].AreaList[0].Copy(sashSplitted);
|
||||
// Aggiungo copia all'anta selezionata
|
||||
sashItem.AreaList[IndexModify].AreaList.Add(a);
|
||||
await DoPreviewSvg();
|
||||
}
|
||||
|
||||
private async Task CopySplitted(Splitted currSplitted, int numSash)
|
||||
{
|
||||
//Rimuovo contenuto di Splitted
|
||||
currSplitted.AreaList.RemoveAll(i => i != null);
|
||||
// Copio sash
|
||||
Area a = SashList[numSash].Copy(currSplitted);
|
||||
a.SetParentArea(currSplitted);
|
||||
// Aggiungo copia a Splitted
|
||||
currSplitted.AreaList.Add(a);
|
||||
await DoPreviewSvg();
|
||||
}
|
||||
|
||||
private async Task SwapTwoAree(Area currArea)
|
||||
@@ -581,7 +620,6 @@ namespace WebWindowComplex
|
||||
await DoPreviewSvg();
|
||||
}
|
||||
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Private Fields
|
||||
@@ -609,14 +647,6 @@ namespace WebWindowComplex
|
||||
private int m_maxCol = 0;
|
||||
private int m_maxRow = 0;
|
||||
|
||||
private enum positionJoints
|
||||
{
|
||||
BL = 0, // Bottom Left
|
||||
BR = 1, // Bottom Right
|
||||
TR, // Top Right
|
||||
TL // Top Left
|
||||
}
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Private Properties
|
||||
|
||||
+212
-187
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user