remember componentS

beta.r3js.org
cybafelo 2019-10-16 12:57:39 +02:00
parent 540700deb5
commit 4f9fe1169e
1 changed files with 53 additions and 14 deletions

View File

@ -212,6 +212,8 @@ use Cake\Utility\Inflector;
var project = R3.GetCurrentProject(); var project = R3.GetCurrentProject();
R3.projectInfo[project.id].component = data.component;
if (data.component instanceof R3.Entity) { if (data.component instanceof R3.Entity) {
R3.projectInfo[project.id].entity = data.component; 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 * Builds entity list for the project
* @param project * @param project
@ -270,11 +280,7 @@ use Cake\Utility\Inflector;
*/ */
R3.BuildEntityList = function(project) { R3.BuildEntityList = function(project) {
R3.selectEntity.innerHTML = ''; R3.ClearEntityList();
option = document.createElement('option');
option.appendChild(document.createTextNode('Select Entity'));
R3.selectEntity.appendChild(option);
Object.keys(project.idToObject).map( Object.keys(project.idToObject).map(
function(id) { 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 * Builds component list, and if entity specified, only components for this entity
* @param project * @param project
@ -307,11 +321,7 @@ use Cake\Utility\Inflector;
entity = null; entity = null;
} }
R3.selectComponent.innerHTML = ''; R3.ClearComponentList();
var option = document.createElement('option');
option.appendChild(document.createTextNode('Select Component'));
R3.selectComponent.appendChild(option);
Object.keys(project.idToObject).map( Object.keys(project.idToObject).map(
function(id) { function(id) {
@ -328,6 +338,10 @@ use Cake\Utility\Inflector;
R3.Utils.SortSelect(R3.selectComponent); 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) { R3.SetCurrentProject = function(project) {
@ -358,7 +372,12 @@ use Cake\Utility\Inflector;
var project = R3.GetCurrentProject(); 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'); throw new Error('todo - no project');
} }
R3.projectInfo[project.id].component = null;
if (entity) { if (entity) {
R3.projectInfo[project.id].entity = 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() { R3.GetCurrentProject = function() {
return R3.EntityManager.Instance.findComponentById(R3.selectProject.options[R3.selectProject.selectedIndex].value); 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); 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) { R3.AddComponentToSelect = function(select, id) {
var component = R3.EntityManager.Instance.findComponentById(id); var component = R3.EntityManager.Instance.findComponentById(id);
@ -530,7 +568,8 @@ use Cake\Utility\Inflector;
var project = R3.GetCurrentProject(); var project = R3.GetCurrentProject();
R3.projectInfo[project.id] = { R3.projectInfo[project.id] = {
entity : null entity : null,
component : null
}; };
R3.SetCurrentProject(project); R3.SetCurrentProject(project);
@ -575,8 +614,8 @@ use Cake\Utility\Inflector;
R3.selectEntity = document.getElementById('selectEntity'); R3.selectEntity = document.getElementById('selectEntity');
R3.selectEntity.addEventListener('change', R3.EntityChange); R3.selectEntity.addEventListener('change', R3.EntityChange);
R3.selectComponent = document.getElementById('selectComponent'); R3.selectComponent = document.getElementById('selectComponent');
R3.selectComponent.addEventListener('change', R3.ComponentChange);
R3.selectMode = document.getElementById('selectMode'); R3.selectMode = document.getElementById('selectMode');
R3.selectMode.addEventListener("change", R3.ApplicationModeChange); R3.selectMode.addEventListener("change", R3.ApplicationModeChange);