forked from verdnatura/hedera-web
148 lines
2.2 KiB
JavaScript
148 lines
2.2 KiB
JavaScript
|
|
var Widget = require ('./widget');
|
|
|
|
/**
|
|
* Base class for graphical fields.
|
|
*/
|
|
module.exports = new Class
|
|
({
|
|
Extends: Widget
|
|
,Implements: Vn.ParamIface
|
|
,Tag: 'htk-field'
|
|
,Properties:
|
|
{
|
|
value:
|
|
{
|
|
type: null
|
|
,set: function (x)
|
|
{
|
|
this._setValue (x);
|
|
}
|
|
,get: function ()
|
|
{
|
|
return this._value;
|
|
}
|
|
},
|
|
type:
|
|
{
|
|
type: Type
|
|
,set: function (x)
|
|
{
|
|
this._setType (x);
|
|
}
|
|
,get: function ()
|
|
{
|
|
return this._type;
|
|
}
|
|
},
|
|
param:
|
|
{
|
|
type: Vn.ParamIface
|
|
,set: function (x)
|
|
{
|
|
this._setParam (x);
|
|
}
|
|
,get: function ()
|
|
{
|
|
return this._param;
|
|
}
|
|
},
|
|
lot:
|
|
{
|
|
type: Vn.LotIface
|
|
,set: function (x)
|
|
{
|
|
this._setLot (x);
|
|
}
|
|
,get: function ()
|
|
{
|
|
return this._lot;
|
|
}
|
|
},
|
|
name:
|
|
{
|
|
type: String
|
|
,set: function (x)
|
|
{
|
|
this._setName (x);
|
|
}
|
|
,get: function ()
|
|
{
|
|
return this._name;
|
|
}
|
|
},
|
|
oneWay:
|
|
{
|
|
type: Boolean
|
|
,set: function (x)
|
|
{
|
|
this._oneWay = x;
|
|
}
|
|
,get: function ()
|
|
{
|
|
return this._oneWay;
|
|
}
|
|
},
|
|
editable:
|
|
{
|
|
type: Boolean
|
|
,set: function (x)
|
|
{
|
|
if (x != this._editable)
|
|
{
|
|
this._editable = x;
|
|
this.setEditable (x);
|
|
}
|
|
}
|
|
,get: function ()
|
|
{
|
|
return this._editable;
|
|
}
|
|
},
|
|
conditionalFunc:
|
|
{
|
|
type: Function
|
|
,value: null
|
|
}
|
|
}
|
|
|
|
,_editable: true
|
|
|
|
,_setValue: function (newValue)
|
|
{
|
|
Vn.ParamIface.prototype._setValue.call (this, newValue);
|
|
this.putValue (newValue);
|
|
|
|
if (this.conditionalFunc)
|
|
this.conditionalFunc (this, newValue);
|
|
}
|
|
|
|
/**
|
|
* Protected method that should be called from class childs when the value
|
|
* on the associated entry changes.
|
|
*
|
|
* @param {*} value The new entry value
|
|
*/
|
|
,valueChanged: function (value)
|
|
{
|
|
this._setValue (value);
|
|
}
|
|
|
|
/**
|
|
* Virtual method that must be implemented by class childs to set the entry
|
|
* editable.
|
|
*
|
|
* @param {boolean} editable Whether the user is allowed to edit the entry
|
|
*/
|
|
,setEditable: function () {}
|
|
|
|
/**
|
|
* Virtual method that must be implemented by class childs to put the value
|
|
* on the associated entry.
|
|
*
|
|
* @param {*} value The new value for the entry
|
|
*/
|
|
,putValue: function () {}
|
|
});
|
|
|