aggiunti bottoni per copiare singola anta
This commit is contained in:
@@ -56,6 +56,7 @@ namespace WebWindowComplex
|
||||
if (m_CurrWindow != null)
|
||||
{
|
||||
m_maxCol = 0;
|
||||
m_maxRow = 0;
|
||||
m_FillList = new List<Fill>();
|
||||
m_SashList = new List<Sash>();
|
||||
m_SplitList = new List<Split>();
|
||||
@@ -238,10 +239,11 @@ namespace WebWindowComplex
|
||||
m_SplitParentList = new List<SplitParent>();
|
||||
m_ItemTableList = new List<ItemTable>();
|
||||
m_maxCol = 0;
|
||||
m_maxRow = 0;
|
||||
// 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();
|
||||
}
|
||||
|
||||
@@ -329,7 +331,10 @@ namespace WebWindowComplex
|
||||
{
|
||||
case AreaTypes.FRAME:
|
||||
{
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.FRAME, "FR",row, col));
|
||||
if(node.AreaList.Count >= 1)
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.FRAME, "FR", row, col, -1, node.AreaList.Count));
|
||||
else
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.FRAME, "FR", row, col, -1, 0));
|
||||
row++;
|
||||
col++;
|
||||
maxRow++;
|
||||
@@ -338,15 +343,30 @@ namespace WebWindowComplex
|
||||
}
|
||||
case AreaTypes.SASH:
|
||||
{
|
||||
if (node.ParentArea.AreaList.Count > 1)
|
||||
// Se ha fratelli
|
||||
if ((node.ParentArea.ParentArea != null && node.ParentArea.ParentArea.AreaList.Count > 1) ||
|
||||
(node.ParentArea != null && node.ParentArea.AreaList.Count > 1))
|
||||
{
|
||||
if (node.ParentArea.AreaList[0].Equals(node))
|
||||
maxCol++;
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.SASH, "SH", maxRow, col));
|
||||
for(int i = 0; i < SashList.Count; i++)
|
||||
{
|
||||
if (SashList[i].Equals(node))
|
||||
{
|
||||
// Se il nodo ha figli, salvo il numero nell'oggetto
|
||||
if(node.AreaList.Count >= 1)
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.SASH, "SH", maxRow, col, i, node.AreaList.Count));
|
||||
else
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.SASH, "SH", maxRow, col, i, 0));
|
||||
}
|
||||
}
|
||||
maxCol++;
|
||||
}
|
||||
else
|
||||
{
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.SASH, "SH", row, col));
|
||||
// Se il nodo ha figli, salvo il numero nell'oggetto
|
||||
if (node.AreaList.Count >= 1)
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.SASH, "SH", row, col, 0, node.AreaList.Count));
|
||||
else
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.SASH, "SH", row, col, 0, 0));
|
||||
maxCol++;
|
||||
}
|
||||
row++;
|
||||
@@ -356,11 +376,10 @@ namespace WebWindowComplex
|
||||
}
|
||||
case AreaTypes.FILL:
|
||||
{
|
||||
if(node.ParentArea.AreaList.Count > 1 && node.ParentArea.AreaList[0].Equals(node))
|
||||
if((node.ParentArea.AreaList.Count > 1 && node.ParentArea.AreaList[0].Equals(node)) ||
|
||||
(node.ParentArea.ParentArea != null && node.ParentArea.ParentArea.AreaList.Count > 1 && node.ParentArea.ParentArea.AreaList[0].AreaList[0].Equals(node)))
|
||||
maxCol++;
|
||||
if(node.ParentArea.AreaList.Count > 1)
|
||||
maxCol++;
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.FILL, "FL", row, col));
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.FILL, "FL", maxRow, col, -1, 0));
|
||||
row++;
|
||||
col++;
|
||||
maxRow++;
|
||||
@@ -368,15 +387,21 @@ namespace WebWindowComplex
|
||||
}
|
||||
case AreaTypes.SPLIT:
|
||||
{
|
||||
if (node.ParentArea.AreaList.Count > 1)
|
||||
if (node.ParentArea.AreaList.Count > 1 || (node.ParentArea.ParentArea != null && node.ParentArea.ParentArea.AreaList.Count > 1))
|
||||
{
|
||||
if (node.ParentArea.AreaList[0].Equals(node))
|
||||
if (node.ParentArea.AreaList[0].Equals(node) || node.ParentArea.ParentArea.AreaList[0].Equals(node))
|
||||
maxCol ++;
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.SPLIT, "SP", maxRow, col));
|
||||
if (node.AreaList.Count >= 1 || node.AreaList.Count >= 1)
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.SPLIT, "SP", maxRow, col, -1, node.AreaList.Count));
|
||||
else
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.SPLIT, "SP", maxRow, col, -1, 0));
|
||||
}
|
||||
else
|
||||
{
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.SPLIT, "SP", row, col));
|
||||
if (node.AreaList.Count >= 1 || node.AreaList.Count >= 1)
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.SPLIT, "SP", row, col, -1, node.AreaList.Count));
|
||||
else
|
||||
ItemTableList.Add(new ItemTable(AreaTypes.SPLIT, "SP", row, col, -1, 0));
|
||||
maxCol++;
|
||||
}
|
||||
row++;
|
||||
@@ -391,15 +416,100 @@ namespace WebWindowComplex
|
||||
}
|
||||
foreach (var item in node.AreaList)
|
||||
{
|
||||
CreateElementTable(item, row, col, maxRow, maxCol);
|
||||
if (maxRow < m_maxRow)
|
||||
CreateElementTable(item, row, col, m_maxRow, maxCol);
|
||||
else
|
||||
CreateElementTable(item, row, col, maxRow, maxCol);
|
||||
}
|
||||
}
|
||||
if(maxCol> m_maxCol)
|
||||
{
|
||||
m_maxCol = maxCol;
|
||||
}
|
||||
if (maxRow > m_maxRow)
|
||||
{
|
||||
m_maxRow = maxRow;
|
||||
}
|
||||
}
|
||||
|
||||
private string fillTable(int row, int col)
|
||||
{
|
||||
List<ItemTable> itemSameCol = new List<ItemTable>();
|
||||
for(int k = 0; k < row; k++)
|
||||
{
|
||||
if(ItemTableList[k].Col == col+1)
|
||||
{
|
||||
itemSameCol.Add(ItemTableList[k]);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
int numItemNextCol = 0;
|
||||
for (int k = 0; k < row; k++)
|
||||
{
|
||||
if (ItemTableList[k].Row <= row && ItemTableList[k].Col == col + 2)
|
||||
{
|
||||
numItemNextCol++;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (itemSameCol.Count > 1)
|
||||
{
|
||||
for (int i = 0; i <= itemSameCol.Count - 2; i++)
|
||||
{
|
||||
if (itemSameCol[i].NumChild > 0)
|
||||
numItemNextCol = numItemNextCol - itemSameCol[i].NumChild;
|
||||
}
|
||||
}
|
||||
if (itemSameCol.Count > 0)
|
||||
{
|
||||
// Sono alla riga successiva di un elemento e nella stessa colonna
|
||||
if(itemSameCol.Last().Row == row)
|
||||
{
|
||||
// se ha un solo figlio
|
||||
if(itemSameCol.Last().NumChild == 1)
|
||||
{
|
||||
return "└";
|
||||
}
|
||||
else if (itemSameCol.Last().NumChild == 0)
|
||||
{
|
||||
return " ";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "├";
|
||||
}
|
||||
}
|
||||
// Non solo alla riga successiva
|
||||
else
|
||||
{
|
||||
// se ha un solo figlio
|
||||
if(itemSameCol.Last().NumChild == 1)
|
||||
{
|
||||
return " ";
|
||||
}
|
||||
else if (col + 2 <= m_maxCol && ItemTableList[row].Col == col + 2)
|
||||
{
|
||||
if (numItemNextCol < itemSameCol.Last().NumChild && numItemNextCol != (itemSameCol.Last().NumChild - 1))
|
||||
{
|
||||
return "├";
|
||||
}
|
||||
return "└";
|
||||
}
|
||||
else if (numItemNextCol < itemSameCol.Last().NumChild)
|
||||
{
|
||||
return "│";
|
||||
}
|
||||
else
|
||||
{
|
||||
return " ";
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return " ";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Metodo per settare tutti i Joints di Frame o Sash come ANGLED o FULL_H o FULL_V
|
||||
@@ -455,6 +565,16 @@ namespace WebWindowComplex
|
||||
await DoPreviewSvg();
|
||||
}
|
||||
|
||||
private void CopyContent(Sash sashItem, int IndexCopy, int IndexModify)
|
||||
{
|
||||
// Rimuovo riempimento da anta selezionata
|
||||
sashItem.AreaList[IndexModify].AreaList.RemoveAt(0);
|
||||
// Creo la copia dell'anta scelta
|
||||
Area a = sashItem.AreaList[IndexCopy-1].AreaList[0].Copy();
|
||||
// Aggiungo copia all'anta selezionata
|
||||
sashItem.AreaList[IndexModify].AreaList.Add(a);
|
||||
}
|
||||
|
||||
private async Task SwapTwoAree(Area currArea)
|
||||
{
|
||||
currArea.SwapAree();
|
||||
@@ -487,6 +607,7 @@ namespace WebWindowComplex
|
||||
private List<SplitParent> m_SplitParentList = new List<SplitParent>();
|
||||
|
||||
private int m_maxCol = 0;
|
||||
private int m_maxRow = 0;
|
||||
|
||||
private enum positionJoints
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user