DataWindow :
- lettura da jwd pezzi con dimensioni variabili.
This commit is contained in:
@@ -47,6 +47,19 @@ local function GetDimensions( tDimensions)
|
||||
return vDims
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
local function GetSplitDimensions( tDimensions)
|
||||
local vDims = {}
|
||||
for i = 1, #tDimensions do
|
||||
local nIndex = tDimensions[i][JWD_INDEX]
|
||||
local nArea = tDimensions[i][JWD_SPLIT_AREA]
|
||||
if not vDims[nArea] then
|
||||
vDims[nArea] = {}
|
||||
end
|
||||
vDims[nArea][nIndex] = tDimensions[i][JWD_VALUE]
|
||||
end
|
||||
return vDims
|
||||
end
|
||||
---------------------------------------------------------------------
|
||||
local function GetFrameShape( sShape)
|
||||
|
||||
@@ -192,9 +205,10 @@ local function ConvertTableToGeometry( AreaTable, nParentId)
|
||||
local nType = GetFrameShape( AreaTable[JWD_FRAME_SHAPE])
|
||||
local vJoints = GetJoints( AreaTable[JWD_JOINTS])
|
||||
local vDim = GetDimensions( AreaTable[JWD_DIMENSION_LIST])
|
||||
local vElementDim = GetDimensions( AreaTable[JWD_ELEMENT_DIMENSION])
|
||||
|
||||
-- creo il telaio
|
||||
local nAreaId = WinCreate.CreateFrame( nType, vDim, vJoints, {}, nAreaNbr)
|
||||
local nAreaId = WinCreate.CreateFrame( nType, vDim, vJoints, vElementDim, nAreaNbr)
|
||||
if not nAreaId then
|
||||
return
|
||||
end
|
||||
@@ -239,7 +253,8 @@ 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 vElementDim = GetDimensions( tSashes[1][JWD_ELEMENT_DIMENSION])
|
||||
local nAreaId = WinCreate.AddSash( nParentId, vJoints, vElementDim, nOpeningType, nAreaNbr)
|
||||
-- aggiungo ferramenta sull'anta
|
||||
local sHandleSide
|
||||
if nOpeningType == WIN_OPENING_TYPES.TURNONLY_LEFT or
|
||||
@@ -277,7 +292,7 @@ local function ConvertTableToGeometry( AreaTable, nParentId)
|
||||
vOpeningTypes[i] = GetOpeningType( tSashes[i][JWD_OPENING_TYPE])
|
||||
vSashNbrs[i] = tSashes[i][JWD_ID_SASH]
|
||||
vJoints[i] = GetJoints( tSashes[i][JWD_JOINTS])
|
||||
vPartsDim[i] = {}
|
||||
vPartsDim[i] = GetDimensions( tSashes[i][JWD_ELEMENT_DIMENSION])
|
||||
end
|
||||
local vSashTypes, sHandleSide = GetSashTypes( tSashes, vOpeningTypes)
|
||||
|
||||
@@ -308,6 +323,7 @@ local function ConvertTableToGeometry( AreaTable, nParentId)
|
||||
elseif AreaTable[JWD_AREA_TYPE] == 'SPLIT' then
|
||||
local vVertDimensions = {}
|
||||
local vVertMeasureType = {}
|
||||
local vVertElementDimension = GetSplitDimensions(AreaTable[JWD_ELEMENT_VERT_DIMENSION])
|
||||
local vSplitVertDimensions = AreaTable[JWD_SPLIT_VERT_POS]
|
||||
for i = 1, #vSplitVertDimensions do
|
||||
vVertMeasureType[i] = GetMeasureType( vSplitVertDimensions[i][JWD_MEASURE_TYPE])
|
||||
@@ -315,6 +331,7 @@ local function ConvertTableToGeometry( AreaTable, nParentId)
|
||||
end
|
||||
local vHorizDimensions = {}
|
||||
local vHorizMeasureType = {}
|
||||
local vHorizElementDimension = GetSplitDimensions(AreaTable[JWD_ELEMENT_HORIZ_DIMENSION])
|
||||
local vSplitHorizDimensions = AreaTable[JWD_SPLIT_HORIZ_POS]
|
||||
for i = 1, #vSplitHorizDimensions do
|
||||
vHorizMeasureType[i] = GetMeasureType( vSplitHorizDimensions[i][JWD_MEASURE_TYPE])
|
||||
@@ -322,11 +339,23 @@ 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)
|
||||
local vElementDimension = {}
|
||||
if AreaTable[JWD_SPLIT_START_VERT] then
|
||||
vElementDimension = vVertElementDimension[0]
|
||||
for i = 1, #vHorizElementDimension do
|
||||
EgtJoinTables( vElementDimension, vHorizElementDimension[i])
|
||||
end
|
||||
else
|
||||
vElementDimension = vHorizElementDimension[0]
|
||||
for i = 1, #vVertElementDimension do
|
||||
EgtJoinTables( vElementDimension, vVertElementDimension[i])
|
||||
end
|
||||
end
|
||||
vSplitAreas = WinCreate.AddGridSplits( nParentId, vVertMeasureType, vVertDimensions, vHorizMeasureType, vHorizDimensions, AreaTable[JWD_SPLIT_START_VERT], vElementDimension, 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, vVertElementDimension[0], false, nAreaNbr)
|
||||
else
|
||||
vSplitAreas = WinCreate.AddSplits( nParentId, WIN_SPLITORIENTATION.HORIZONTAL, vHorizMeasureType, vHorizDimensions, {}, false, nAreaNbr)
|
||||
vSplitAreas = WinCreate.AddSplits( nParentId, WIN_SPLITORIENTATION.HORIZONTAL, vHorizMeasureType, vHorizDimensions, vHorizElementDimension[0], false, nAreaNbr)
|
||||
end
|
||||
for i = 1, #vSplitAreas do
|
||||
ConvertTableToGeometry( AreaTable[JWD_AREA_LIST][i], vSplitAreas[i])
|
||||
|
||||
Reference in New Issue
Block a user