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();
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);