DataWindow :

- pezzi con dimensioni variabili ( prima versione).
This commit is contained in:
SaraP
2026-01-29 12:25:25 +01:00
parent b8b10497a7
commit d8d34552e9
5 changed files with 1045 additions and 896 deletions
+20 -13
View File
@@ -37,6 +37,16 @@ local function GetJoints( tJoints)
return vJoints
end
---------------------------------------------------------------------
local function GetDimensions( tDimensions)
local vDims = {}
for i = 1, #tDimensions do
local nIndex = tDimensions[i][JWD_INDEX]
vDims[nIndex] = tDimensions[i][JWD_VALUE]
end
return vDims
end
---------------------------------------------------------------------
local function GetFrameShape( sShape)
@@ -181,15 +191,10 @@ local function ConvertTableToGeometry( AreaTable, nParentId)
-- recupero i dati del telaio ( forma, giunzioni, dimensioni)
local nType = GetFrameShape( AreaTable[JWD_FRAME_SHAPE])
local vJoints = GetJoints( AreaTable[JWD_JOINTS])
local vDim = {}
local tDimensions = AreaTable[JWD_DIMENSION_LIST]
for i = 1, #tDimensions do
local nIndex = tDimensions[i][JWD_INDEX]
vDim[nIndex] = tDimensions[i][JWD_VALUE]
end
local vDim = GetDimensions( AreaTable[JWD_DIMENSION_LIST])
-- creo il telaio
local nAreaId = WinCreate.CreateFrame( nType, vJoints, vDim, nAreaNbr)
local nAreaId = WinCreate.CreateFrame( nType, vDim, vJoints, {}, nAreaNbr)
if not nAreaId then
return
end
@@ -234,7 +239,7 @@ local function ConvertTableToGeometry( AreaTable, nParentId)
if #tSashes == 1 then
local vJoints = GetJoints( tSashes[1][JWD_JOINTS])
local nOpeningType = GetOpeningType( tSashes[1][JWD_OPENING_TYPE])
local nAreaId = WinCreate.AddSash( nParentId, vJoints, nOpeningType, nAreaNbr)
local nAreaId = WinCreate.AddSash( nParentId, vJoints, {}, nOpeningType, nAreaNbr)
-- aggiungo ferramenta sull'anta
local sHandleSide
if nOpeningType == WIN_OPENING_TYPES.TURNONLY_LEFT or
@@ -265,17 +270,19 @@ local function ConvertTableToGeometry( AreaTable, nParentId)
local vMeasureType = {}
local vSashNbrs = {}
local vJoints = {}
local vPartsDim = {}
for i = 1, #tSashes do
vMeasureType[i] = GetMeasureType( tSashes[i][JWD_MEASURE_TYPE])
vDimensions[i] = tSashes[i][JWD_DIMENSION]
vOpeningTypes[i] = GetOpeningType( tSashes[i][JWD_OPENING_TYPE])
vSashNbrs[i] = tSashes[i][JWD_ID_SASH]
vJoints[i] = GetJoints( tSashes[i][JWD_JOINTS])
vPartsDim[i] = {}
end
local vSashTypes, sHandleSide = GetSashTypes( tSashes, vOpeningTypes)
-- aggiungo il gruppo di ante
local vAreas = WinCreate.AddSashGroup( nParentId, vMeasureType, vDimensions, vJoints, vSashTypes, vOpeningTypes, nAreaNbr, vSashNbrs)
local vAreas = WinCreate.AddSashGroup( nParentId, vMeasureType, vDimensions, vJoints, vPartsDim, vSashTypes, vOpeningTypes, nAreaNbr, vSashNbrs)
-- aggiungo le ante
for i = 1, #vAreas do
-- bottomrail
@@ -315,11 +322,11 @@ local function ConvertTableToGeometry( AreaTable, nParentId)
end
local vSplitAreas
if AreaTable[JWD_SPLIT_TYPE] == 'GRID' then
vSplitAreas = WinCreate.AddGridSplits( nParentId, vVertMeasureType, vVertDimensions, vHorizMeasureType, vHorizDimensions, AreaTable[JWD_SPLIT_START_VERT], nAreaNbr)
vSplitAreas = WinCreate.AddGridSplits( nParentId, vVertMeasureType, vVertDimensions, vHorizMeasureType, vHorizDimensions, AreaTable[JWD_SPLIT_START_VERT], {}, nAreaNbr)
elseif AreaTable[JWD_SPLIT_TYPE] == 'VERTICAL' then
vSplitAreas = WinCreate.AddSplits( nParentId, WIN_SPLITORIENTATION.VERTICAL, vVertMeasureType, vVertDimensions, false, nAreaNbr)
vSplitAreas = WinCreate.AddSplits( nParentId, WIN_SPLITORIENTATION.VERTICAL, vVertMeasureType, vVertDimensions, {}, false, nAreaNbr)
else
vSplitAreas = WinCreate.AddSplits( nParentId, WIN_SPLITORIENTATION.HORIZONTAL, vHorizMeasureType, vHorizDimensions, false, nAreaNbr)
vSplitAreas = WinCreate.AddSplits( nParentId, WIN_SPLITORIENTATION.HORIZONTAL, vHorizMeasureType, vHorizDimensions, {}, false, nAreaNbr)
end
for i = 1, #vSplitAreas do
ConvertTableToGeometry( AreaTable[JWD_AREA_LIST][i], vSplitAreas[i])