From 454fb98ab8f4d57c9566c7d5bf083d123df1d515 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Thu, 28 Jul 2016 16:07:11 +0200 Subject: [PATCH] Preparation for action binding --- UI/UIManager.js | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/UI/UIManager.js b/UI/UIManager.js index edf464d..86f0c55 100644 --- a/UI/UIManager.js +++ b/UI/UIManager.js @@ -29,6 +29,7 @@ this.tabManager = new jsOMS.UI.TabManager(this.app.responseManager); this.tableManager = new jsOMS.UI.TableManager(this.app.responseManager); this.button = new jsOMS.UI.Button(this.app); + this.input = new jsOMS.UI.Input(); }; /** @@ -47,7 +48,7 @@ this.formManager.bind(); this.tabManager.bind(); this.tableManager.bind(); - this.button.bind(); + this.bindAction(); } else { let tag = document.getElementById(id); @@ -58,9 +59,30 @@ case 'table': this.tableManager.bind(id); break; + default: + this.bindAction(tag); + } + } + }; + + jsOMS.UI.UIManager.prototype.bindAction = function(e) + { + let uiElements = typeof e === 'undefined' ? jsOMS.getAll('input, select, textarea, button', document) : [e], + length = uiElements.length; + + for(let i = 0; i < length; i++) { + switch(uiElements.tagName) { + case 'input': + this.input.bind(uiElements[i]); + break; + case 'select': + this.select.bind(uiElements[i]); + break; case 'button': - case 'a': - this.button.bind(id); + this.button.bind(uiElements[i]); + break; + case 'textarea': + this.textarea.bind(uiElements[i]); break; } }