From 2a771733a157a779501aeef10d03a77dad1f3df1 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Tue, 24 Dec 2019 19:47:21 +0100 Subject: [PATCH] Bug Fixed when creating head of hiriarchies --- .../FunctionLibraries/UiObjectsFromNodes.js | 17 ++++++++++++++--- DesignerSpace/Workspace/Workspace.js | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/DesignerSpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js b/DesignerSpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js index 3d5264f9f..7238889a3 100644 --- a/DesignerSpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js +++ b/DesignerSpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js @@ -98,12 +98,19 @@ function newUiObjectsFromNodes () { type: type } - createUiObject(true, object.type, object.name, object, parent, parent) - let parentNodeDefinition = APP_SCHEMA_MAP.get(parent.type) if (parentNodeDefinition !== undefined) { /* Resolve Initial Values */ let nodeDefinition = APP_SCHEMA_MAP.get(object.type) + + if (nodeDefinition.isHierarchyHead === true) { + parent.rootNodes.push(object) + createUiObject(true, object.type, object.name, object, parent, undefined) + return object + } + + createUiObject(true, object.type, object.name, object, parent, parent) + if (nodeDefinition !== undefined) { if (nodeDefinition.initialValues !== undefined) { if (nodeDefinition.initialValues.code !== undefined) { @@ -114,12 +121,16 @@ function newUiObjectsFromNodes () { /* Connect to Parent */ if (parentNodeDefinition.properties !== undefined) { + let previousPropertyName // Since there are cases where there are many properties with the same name,because they can hold nodes of different types but only one at the time, we have to avoind counting each property of those as individual children. for (let i = 0; i < parentNodeDefinition.properties.length; i++) { let property = parentNodeDefinition.properties[i] if (property.childType === type) { switch (property.type) { case 'node': { - parent[property.name] = object + if (property.name !== previousPropertyName) { + parent[property.name] = object + previousPropertyName = property.name + } } break case 'array': { diff --git a/DesignerSpace/Workspace/Workspace.js b/DesignerSpace/Workspace/Workspace.js index a34d7c2d7..b2ed25415 100644 --- a/DesignerSpace/Workspace/Workspace.js +++ b/DesignerSpace/Workspace/Workspace.js @@ -113,7 +113,7 @@ function newWorkspace () { if (thisObject.enabled !== true) { return } let textToSave = stringifyWorkspace() - // window.localStorage.setItem(CANVAS_APP_NAME + '.' + 'Workspace', textToSave) + window.localStorage.setItem(CANVAS_APP_NAME + '.' + 'Workspace', textToSave) if (workingAtTask > 0) { circularProgressBar.physics()