Vn.Module = new Class ({ Extends: Vn.Object ,initialize: function (gui, formInfo) { this.gui = gui; this.conn = gui.conn; this.hash = gui.hash; this.formInfo = formInfo; } /** * Gets an object from the builder associated to this form. * * @param {string} objectId The object identifier * @return {Object} The object, or %null if not found **/ ,$: function (objectId) { if (this.builder) return this.builder.get (objectId); return null; } /** * Called when the form is opened. **/ ,open: function () { this.close (); this.builder = new Vn.Builder (); this.builder.signalData = this; this.builder.loadXml (Vn.getXml ('forms/'+ this.formInfo.path +'/ui.xml')); this.node = this.builder.get ('form'); var models = this.builder.getObjects ('db-model'); for (var i = 0; i < models.length; i++) models[i].conn = this.conn; var queries = this.builder.getObjects ('db-query'); for (var i = 0; i < queries.length; i++) queries[i].conn = this.conn; this.gui.formHolder.appendChild (this.node); this.gui.setTitle (this.builder.$('title')); this.gui.setActions (this.builder.$('actions')); } /** * Called when the form is activated. **/ ,activate: function () {} /** * Called when the form is deactivated. **/ ,deactivate: function () {} /** * Called when the form is closed. **/ ,close: function () { if (this.node) { Vn.Node.remove (this.node); this.node = null; } if (this.builder) { this.builder.unref (); this.builder = null; } } ,_destroy: function () { this.close (); this.parent (); } });