File: 4glstructure.txt

Recommend this page to a friend!
  Classes of philippe thomassigny   WAJAF   4glstructure.txt   Download  
File: 4glstructure.txt
Role: Documentation
Content type: text/plain
Description: Documentation
Class: WAJAF
Build single page applications
Author: By
Last change: Update of 4glstructure.txt
Date: 2 years ago
Size: 5,249 bytes
 

Contents

Class file image Download
Resumed implementation guide: ---- How to implement a Manager: WA.Managers.<name> = new function() { var self = this; ... function destroy() { ... self = null; } WA.Managers.event.registerFlush(destroy); }(); WA.Managers.<name>.<object> = function() {} WA.i18n.setEntry('<name>.<id>', '<message>'); ---- The 4GL Manager classes tree: - 4glnode - Application - Container - simpleContainer - separatorContainer - tabContainer - treeContainer - groupContainer - Zone - simpleZone - separatorZone - separatorSizer (internal zone, no children) - tabZone - tabSelector (internal zone, no children) - treeZone - groupZone - Element - htmlElement - codeElement - buttonElement - imageElement - linkElement - textElement - textfieldElement - hiddenfieldElement - lovfieldElement - textareafieldElement The _4glnode attributes and methods: - app the owner application object - domID the 3-parts DOM id, string - xdomID the 3-parts id exploded in an array - id the application local id of the node (3rd part of the domID) - supertype enum(application, container, zone, element) - children the list of registered children (only if application, container, zone) - _4gl true: it's a normal 4gl node, false: main app context node - father the father of this node (only main app context node have no father) - listener the listener to send a copy of any event - code object with the xml equivalent code - state 0: creation, 1: loading, 2: checking, 3: building, 4: starting, 5: running, 6: stopping, 7: stopped, 10: critical error - visible true if the node is visible, or false - serverlistener true if the server listen this node events, or false - application contains the inner application object (only if the node is a zone) - created true if the node has been created by the constructor, or false - domNode DOM corresponding node appendChild() removeChild() addEvent() removeEvent() registerEvents() callEvent() propagate() resize() destroy() ============================================================================================== Implement a Container: Container skeletton: ============================================================================================== WA.Containers.<name> = function(fatherNode, domID, code, listener) { var self = this; WA.Containers.<name>.sourceconstructor.call(this, fatherNode, domID, code, '<type of DOMNode>', { classname:'<class>' }, listener); ... addEvent('start', start); addEvent('resize', resize); addEvent('stop', stop); /* system methods */ function resize() { WA.Containers.<name>.source.resize.call(self); ... } function start() {} function stop() {} this.createZone = createZone; function createZone(domID, code, listener) {} this.destroyZone = destroyZone; function destroyZone(id) {} this.destroy = destroy; function destroy(fast) { WA.Containers.<name>.source.destroy.call(self, fast); ... self = null; } /* User methods */ this.newZone = newZone; function newZone(id, classname, style, ....) {} this.showZone = showZone; function showZone(id) {} this.hideZone = hideZone; function hideZone(id) {} this.deleteZone = deleteZone; function deleteZone(id) {} this.activateZone = activateZone; function activateZone(id) {} this.getValues = getValues; function getValues() {} this.setValues = setValues; function setValues(values) {} } WA.extend(WA.Containers.<name>, WA.Managers.wa4gl._container); WA.Containers.<name>.<zone> = function(father, domID, code, listener, ....) { WA.Containers.<name>.<zone>.sourceconstructor.call(this, father, domID, code, '<Type of DOMNode>', { classname:'zone' }, listener); ... addEvent('start', start); addEvent('resize', resize); addEvent('stop', stop); /* system methods */ function resize() { WA.Containers.<name>.<zone>.source.resize.call(self); ... } function start() {} function stop() {} this.destroy = destroy; function destroy(fast) { WA.Containers.<name>.<zone>.source.destroy.call(self, fast); ... self = null; } /* User methods */ ... } WA.extend(WA.Containers.<name>.<zone>, WA.Managers.wa4gl._zone); ---- ============================================================================================== Implement an Element: Element skeletton: ============================================================================================== WA.Elements.<name> = function() {} WA.extend(WA.Elements.<name>, WA.Managers.wa4gl._element); ** Elements basic functions: show() show the full element hide() hide the full element setSize() set size of the element setPosition() set position of the element getValues() get values of the element if apply setValues() set values of the element if apply destroy() called to destroy the element