You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
4.0 KiB
152 lines
4.0 KiB
/*
|
|
* ================================================================================
|
|
* TextField
|
|
*
|
|
* Internal class. Text box that renders correctly in a Parameter UI
|
|
* ================================================================================
|
|
*/
|
|
|
|
/**
|
|
* Constructor. TextField extends TextFieldWidget from the dhtmllib.
|
|
*/
|
|
bobj.crv.params.newTextField = function(kwArgs) {
|
|
kwArgs = MochiKit.Base.update({
|
|
id: bobj.uniqueId(),
|
|
cleanValue: '',
|
|
width: '100%',
|
|
maxChar: null,
|
|
tooltip: null,
|
|
disabled: false,
|
|
editable: true,
|
|
password: false,
|
|
focusCB: null,
|
|
blurCB: null,
|
|
changeCB: null,
|
|
keyUpCB: null,
|
|
enterCB: null,
|
|
foreColor : 'black',
|
|
isTextItalic : false,
|
|
canOpenAdvDialog : false
|
|
}, kwArgs);
|
|
|
|
var o = newTextFieldWidget(
|
|
kwArgs.id,
|
|
kwArgs.changeCB,
|
|
kwArgs.maxChar,
|
|
kwArgs.keyUpCB,
|
|
kwArgs.enterCB,
|
|
true, //nomargin
|
|
kwArgs.tooltip,
|
|
null, //width
|
|
kwArgs.focusCB,
|
|
kwArgs.blurCB);
|
|
|
|
o.widgetType = 'TextField';
|
|
|
|
// Update instance with constructor arguments
|
|
bobj.fillIn(o, kwArgs);
|
|
o.disabled = kwArgs.disabled;
|
|
o.width = kwArgs.width;
|
|
|
|
// Update instance with member functions
|
|
MochiKit.Base.update(o, bobj.crv.params.TextField);
|
|
|
|
if (kwArgs.cleanValue) {
|
|
o.setValue(kwArgs.cleanValue);
|
|
}
|
|
|
|
return o;
|
|
};
|
|
|
|
bobj.crv.params.TextField = {
|
|
setForeColor : function(color) {
|
|
this.foreColor = color;
|
|
if (this.css)
|
|
this.css.color = color;
|
|
},
|
|
|
|
setTextItalic : function(isTextItalic) {
|
|
this.isTextItalic = isTextItalic;
|
|
if (this.css)
|
|
this.css.fontStyle = isTextItalic ? 'italic' : '';
|
|
},
|
|
|
|
setTabDisabled : function(dis) {
|
|
bobj.disableTabbingKey (this.layer, dis);
|
|
},
|
|
|
|
eraseHelpTxt: MochiKit.Base.noop,
|
|
|
|
getHTML : function() {
|
|
var style = {
|
|
width : bobj.unitValue (this.width)
|
|
};
|
|
|
|
var isIE = MochiKit.Base.isIE ();
|
|
var className = 'iactTextField';
|
|
|
|
var attributes = {
|
|
type : this.password ? 'password' : 'text',
|
|
name : this.id,
|
|
id : this.id,
|
|
maxLength : this.maxChar,
|
|
style : style,
|
|
'class' : className,
|
|
oncontextmenu : "event.cancelBubble=true;return true",
|
|
onfocus : "TextFieldWidget_focus(this)",
|
|
onblur : "TextFieldWidget_blur(this)",
|
|
onchange : "TextFieldWidget_changeCB(event, this)",
|
|
onkeydown : "return TextFieldWidget_keyDownCB(event, this);",
|
|
onkeyup : "return TextFieldWidget_keyUpCB(event, this);",
|
|
onkeypress : "return TextFieldWidget_keyPressCB(event, this);",
|
|
ondragstart : "event.cancelBubble=true; return true;",
|
|
onselectstart : "event.cancelBubble=true; return true;"
|
|
};
|
|
|
|
if (this.disabled) {
|
|
attributes.disabled = "disabled";
|
|
}
|
|
|
|
if (this.isTextItalic) {
|
|
style["font-style"] = "italic";
|
|
}
|
|
|
|
style.color = this.foreColor;
|
|
|
|
if (!this.editable) {
|
|
attributes.readonly = "readonly";
|
|
|
|
if (this.canOpenAdvDialog) {
|
|
style.cursor = "pointer";
|
|
}
|
|
else {
|
|
style.cursor = "default";
|
|
}
|
|
}
|
|
|
|
if (this.tooltip) {
|
|
attributes.title = this.tooltip.replace(/"/g, """);
|
|
}
|
|
|
|
return bobj.html.INPUT (attributes);
|
|
},
|
|
|
|
/**
|
|
* Resets textField object. Sets clean value, current value
|
|
*/
|
|
reset : function(value) {
|
|
this.value = value;
|
|
this.cleanValue = value;
|
|
this.setValue (value);
|
|
},
|
|
|
|
setValue : function(value) {
|
|
TextFieldWidget_setValue.call (this, value);
|
|
},
|
|
|
|
setCleanValue : function(value) {
|
|
this.cleanValue = value;
|
|
}
|
|
};
|
|
|