From 4f9fe1169e98ba6b88e840fdede09e859e0085b1 Mon Sep 17 00:00:00 2001 From: cybafelo Date: Wed, 16 Oct 2019 12:57:39 +0200 Subject: [PATCH] remember componentS --- src/Template/Layout/default.ctp | 67 ++++++++++++++++++++++++++------- 1 file changed, 53 insertions(+), 14 deletions(-) diff --git a/src/Template/Layout/default.ctp b/src/Template/Layout/default.ctp index 4a7ed40..eaa891f 100644 --- a/src/Template/Layout/default.ctp +++ b/src/Template/Layout/default.ctp @@ -212,6 +212,8 @@ use Cake\Utility\Inflector; var project = R3.GetCurrentProject(); + R3.projectInfo[project.id].component = data.component; + if (data.component instanceof R3.Entity) { R3.projectInfo[project.id].entity = data.component; @@ -263,6 +265,14 @@ use Cake\Utility\Inflector; }; + R3.ClearEntityList = function() { + R3.selectEntity.innerHTML = ''; + + option = document.createElement('option'); + option.appendChild(document.createTextNode('Select Entity')); + R3.selectEntity.appendChild(option); + }; + /** * Builds entity list for the project * @param project @@ -270,11 +280,7 @@ use Cake\Utility\Inflector; */ R3.BuildEntityList = function(project) { - R3.selectEntity.innerHTML = ''; - - option = document.createElement('option'); - option.appendChild(document.createTextNode('Select Entity')); - R3.selectEntity.appendChild(option); + R3.ClearEntityList(); Object.keys(project.idToObject).map( function(id) { @@ -295,6 +301,14 @@ use Cake\Utility\Inflector; }; + R3.ClearComponentList = function() { + R3.selectComponent.innerHTML = ''; + + var option = document.createElement('option'); + option.appendChild(document.createTextNode('Select Component')); + R3.selectComponent.appendChild(option); + }; + /** * Builds component list, and if entity specified, only components for this entity * @param project @@ -307,11 +321,7 @@ use Cake\Utility\Inflector; entity = null; } - R3.selectComponent.innerHTML = ''; - - var option = document.createElement('option'); - option.appendChild(document.createTextNode('Select Component')); - R3.selectComponent.appendChild(option); + R3.ClearComponentList(); Object.keys(project.idToObject).map( function(id) { @@ -328,6 +338,10 @@ use Cake\Utility\Inflector; R3.Utils.SortSelect(R3.selectComponent); + if (R3.projectInfo[project.id].component) { + R3.Utils.SetSelectIndex(R3.selectComponent, R3.projectInfo[project.id].component.id); + } + }; R3.SetCurrentProject = function(project) { @@ -358,7 +372,12 @@ use Cake\Utility\Inflector; var project = R3.GetCurrentProject(); - R3.SetCurrentProject(project); + if (project) { + R3.SetCurrentProject(project); + } else { + R3.ClearEntityList(); + R3.ClearComponentList(); + } }; @@ -371,6 +390,8 @@ use Cake\Utility\Inflector; throw new Error('todo - no project'); } + R3.projectInfo[project.id].component = null; + if (entity) { R3.projectInfo[project.id].entity = entity; @@ -384,7 +405,20 @@ use Cake\Utility\Inflector; } }; - + + R3.ComponentChange = function() { + + var project = R3.GetCurrentProject(); + var component = R3.GetCurrentComponent(); + + if (!project) { + throw new Error('todo - no project'); + } + + R3.projectInfo[project.id].component = component; + + }; + R3.GetCurrentProject = function() { return R3.EntityManager.Instance.findComponentById(R3.selectProject.options[R3.selectProject.selectedIndex].value); }; @@ -393,6 +427,10 @@ use Cake\Utility\Inflector; return R3.EntityManager.Instance.findComponentById(R3.selectEntity.options[R3.selectEntity.selectedIndex].value); }; + R3.GetCurrentComponent = function() { + return R3.EntityManager.Instance.findComponentById(R3.selectComponent.options[R3.selectComponent.selectedIndex].value); + }; + R3.AddComponentToSelect = function(select, id) { var component = R3.EntityManager.Instance.findComponentById(id); @@ -530,7 +568,8 @@ use Cake\Utility\Inflector; var project = R3.GetCurrentProject(); R3.projectInfo[project.id] = { - entity : null + entity : null, + component : null }; R3.SetCurrentProject(project); @@ -575,8 +614,8 @@ use Cake\Utility\Inflector; R3.selectEntity = document.getElementById('selectEntity'); R3.selectEntity.addEventListener('change', R3.EntityChange); - R3.selectComponent = document.getElementById('selectComponent'); + R3.selectComponent.addEventListener('change', R3.ComponentChange); R3.selectMode = document.getElementById('selectMode'); R3.selectMode.addEventListener("change", R3.ApplicationModeChange);