DataWindow :

- modifiche per uniformare struttura jwd con struttura del progetto
- gestione numerazione delle aree
- correzioni varie.
This commit is contained in:
SaraP
2025-10-15 13:01:06 +02:00
parent 665ad78c87
commit 5e4a0b2cb1
7 changed files with 1404 additions and 1525 deletions
+20 -15
View File
@@ -160,7 +160,10 @@ local function ConvertTableToGeometry( AreaTable, nParentId)
if not AreaTable then
return
end
-- recupero numerazione
local nAreaNbr = AreaTable[JWD_ID_GROUP]
-- TELAIO
if AreaTable[JWD_AREA_TYPE] == 'FRAME' then
@@ -174,7 +177,7 @@ local function ConvertTableToGeometry( AreaTable, nParentId)
end
-- creo il telaio
local nAreaId = WinCreate.CreateFrame( nType, vJoints, vDim[1], vDim[2], vDim[3])
local nAreaId = WinCreate.CreateFrame( nType, vJoints, vDim[1], vDim[2], vDim[3], nAreaNbr)
-- verifico presenza bottomrail
if AreaTable[JWD_BOTTOMRAIL] then
@@ -202,7 +205,7 @@ local function ConvertTableToGeometry( AreaTable, nParentId)
-- anta singola
if #tSashes == 1 then
local nOpeningType = GetOpeningType( tSashes[1][JWD_OPENING_TYPE])
local nAreaId = WinCreate.AddSash( nParentId, vJoints, WIN_SASHTYPES.NULL, nOpeningType)
local nAreaId = WinCreate.AddSash( nParentId, vJoints, nOpeningType, nAreaNbr)
-- aggiungo ferramenta sull'anta
if nOpeningType == WIN_OPENING_TYPES.TURNONLY_LEFT or
nOpeningType == WIN_OPENING_TYPES.TILTTURN_LEFT or
@@ -231,24 +234,24 @@ local function ConvertTableToGeometry( AreaTable, nParentId)
-- recupero dati delle ante
local vDimensions = {}
local vOpeningTypes = {}
local vSashNbrs = {}
for i = 1, #tSashes do
vDimensions[i] = tSashes[i][JWD_DIMENSION] / 100
vOpeningTypes[i] = GetOpeningType( tSashes[i][JWD_OPENING_TYPE])
vSashNbrs[i] = tSashes[i][JWD_ID_SASH]
end
table.remove( vDimensions)
local vSashTypes, sHandleSide = GetSashTypes( tSashes, vOpeningTypes)
EgtSetInfo( nParentId, WIN_HDW_HANDLE, sHandleSide)
-- aggiungo gli split
local vSplitAreas = WinCreate.AddSplits( nParentId, WIN_SPLITORIENTATION.VERTICAL, WIN_MEASURE.PERCENTAGE, vDimensions, 1, WIN_SPLITTYPES.FRENCH)
-- aggiungo il gruppo di ante
local vAreas = WinCreate.AddSashGroup( nParentId, WIN_MEASURE.PERCENTAGE, vDimensions, vJoints, vSashTypes, vOpeningTypes, nAreaNbr, vSashNbrs)
-- aggiungo le ante
for i = 1, #vSplitAreas do
local nAreaId = WinCreate.AddSash( vSplitAreas[i], vJoints, vSashTypes[i], vOpeningTypes[i])
for i = 1, #vAreas do
-- bottomrail
WinCreate.AddBottomRail( nAreaId, nBottomRailNbr)
WinCreate.AddBottomRail( vAreas[i], nBottomRailNbr)
-- analizzo sottaree
ConvertTableToGeometry( AreaTable[JWD_AREA_LIST][i], nAreaId)
ConvertTableToGeometry( AreaTable[JWD_AREA_LIST][i], vAreas[i])
end
end
@@ -256,11 +259,11 @@ local function ConvertTableToGeometry( AreaTable, nParentId)
-- FILL
elseif AreaTable[JWD_AREA_TYPE] == 'FILL' then
local nFillType = EgtIf( AreaTable[JWD_FILL_TYPE] == 'GLASS', WIN_FILLTYPES.GLASS, WIN_FILLTYPES.WOOD)
WinCreate.AddFill( nParentId, nFillType)
WinCreate.AddFill( nParentId, nFillType, nAreaNbr)
-- SPLIT
elseif AreaTable[JWD_AREA_TYPE] == 'SPLIT' then
elseif AreaTable[JWD_AREA_TYPE] == 'SPLIT' then
local vVertDimensions = {}
local vSplitVertDimensions = AreaTable[JWD_SPLIT_VERT_POS]
for i = 1, #vSplitVertDimensions - 1 do
@@ -273,11 +276,11 @@ elseif AreaTable[JWD_AREA_TYPE] == 'SPLIT' then
end
local vSplitAreas
if AreaTable[JWD_SPLIT_TYPE] == 'GRID' then
vSplitAreas = WinCreate.AddGridSplits( nParentId, WIN_MEASURE.PERCENTAGE, vVertDimensions, vHorizDimensions, AreaTable[JWD_SPLIT_START_VERT])
vSplitAreas = WinCreate.AddGridSplits( nParentId, WIN_MEASURE.PERCENTAGE, vVertDimensions, vHorizDimensions, AreaTable[JWD_SPLIT_START_VERT], nAreaNbr)
elseif AreaTable[JWD_SPLIT_TYPE] == 'VERTICAL' then
vSplitAreas = WinCreate.AddSplits( nParentId, WIN_SPLITORIENTATION.VERTICAL, WIN_MEASURE.PERCENTAGE, vVertDimensions)
vSplitAreas = WinCreate.AddSplits( nParentId, WIN_SPLITORIENTATION.VERTICAL, WIN_MEASURE.PERCENTAGE, vVertDimensions, false, nAreaNbr)
else
vSplitAreas = WinCreate.AddSplits( nParentId, WIN_SPLITORIENTATION.HORIZONTAL, WIN_MEASURE.PERCENTAGE, vHorizDimensions)
vSplitAreas = WinCreate.AddSplits( nParentId, WIN_SPLITORIENTATION.HORIZONTAL, WIN_MEASURE.PERCENTAGE, vHorizDimensions, false, nAreaNbr)
end
for i = 1, #vSplitAreas do
ConvertTableToGeometry( AreaTable[JWD_AREA_LIST][i], vSplitAreas[i])
@@ -286,6 +289,7 @@ elseif AreaTable[JWD_AREA_TYPE] == 'SPLIT' then
-- NULL
elseif AreaTable[JWD_AREA_TYPE] == 'SPLITTED' then
EgtSetInfo( nParentId, WIN_AREA_NBR, nAreaNbr)
if AreaTable[JWD_AREA_LIST] then
ConvertTableToGeometry( AreaTable[JWD_AREA_LIST][1], nParentId)
end
@@ -317,6 +321,7 @@ function WinManageProject.ReadFromFile( sFilePath, sProfileDir)
return true
end
---------------------------------------------------------------------
-- funzione che apre un file jwd
function WinManageProject.ReadFromJwd( sJwd)
local tData = JSON:decode( sJwd)