0
1
Fork 0
hedera-web-mindshore/js/hedera/form.js

112 lines
1.8 KiB
JavaScript
Raw Normal View History

2016-09-26 09:28:47 +00:00
module.exports = new Class
({
2017-03-23 16:20:51 +00:00
Extends: Htk.Component
2015-12-10 13:48:43 +00:00
,isOpen: false
,uiLoaded: false
,initialize: function (gui, formInfo)
{
this.gui = gui;
this.conn = gui.conn;
this.hash = gui.hash;
this.formInfo = formInfo;
2017-03-30 11:44:53 +00:00
this.parent ();
}
2015-12-10 13:48:43 +00:00
,loadUi: function ()
{
2015-12-10 13:48:43 +00:00
if (!this.isOpen)
return;
var builder = new Vn.Builder ();
builder.signalData = this;
2015-11-19 13:57:23 +00:00
builder.add ('conn', this.conn);
2017-04-05 14:06:07 +00:00
builder.add ('hash', this.hash);
builder.loadXml ('forms/'+ this.formInfo.path +'/ui.xml');
2017-03-23 16:20:51 +00:00
var res = this.builderResultInit (builder);
var models = res.getByTagName ('db-model');
for (var i = 0; i < models.length; i++)
models[i].conn = this.conn;
var queries = res.getByTagName ('db-query');
for (var i = 0; i < queries.length; i++)
queries[i].conn = this.conn;
2017-03-23 16:20:51 +00:00
2015-12-10 13:48:43 +00:00
if (this.node)
{
this.gui.setForm (this.node);
2015-12-10 13:48:43 +00:00
this.gui.setTitle (res.$('title'));
this.gui.setActions (res.$('actions'));
this.activate ();
}
this.uiLoaded = true;
}
2015-12-10 13:48:43 +00:00
,unloadUi: function ()
{
2015-12-10 13:48:43 +00:00
if (!this.uiLoaded)
return;
if (this.node)
{
2015-12-10 13:48:43 +00:00
this.deactivate ();
this.gui.setTitle (null);
this.gui.setActions (null);
2017-03-17 12:42:10 +00:00
this.gui.setForm (null);
2015-12-10 13:48:43 +00:00
this.deactivate ();
this.node = null;
}
if (this.builder)
{
this.builder.unref ();
this.builder = null;
}
}
2015-12-10 13:48:43 +00:00
/**
* Called when the form is opened.
2016-12-20 09:32:17 +00:00
*/
2015-12-10 13:48:43 +00:00
,open: function ()
{
this.close ();
this.isOpen = true;
this.loadUi ();
}
/**
* Called when the form is closed.
2016-12-20 09:32:17 +00:00
*/
2015-12-10 13:48:43 +00:00
,close: function ()
{
if (!this.isOpen)
return;
this.isOpen = false;
this.unloadUi ();
}
/**
* Called when the form is activated.
2016-12-20 09:32:17 +00:00
*/
2015-12-10 13:48:43 +00:00
,activate: function () {}
/**
* Called when the form is deactivated.
2016-12-20 09:32:17 +00:00
*/
2015-12-10 13:48:43 +00:00
,deactivate: function () {}
,_destroy: function ()
{
this.close ();
this.parent ();
}
});