|
@@ -336,6 +336,7 @@ var self=this;
|
|
|
return smalltalk.withContext(function($ctx1) {
var $2,$3,$4,$5,$1;
|
|
|
$2=_st((smalltalk.HLBindingInput || HLBindingInput))._new();
|
|
|
_st($2)._label_(_st(_st(self)._command())._inputLabel());
|
|
|
+_st($2)._ghostText_(_st(_st(self)._command())._displayLabel());
|
|
|
_st($2)._callback_((function(val,errorBlock){
|
|
|
return smalltalk.withContext(function($ctx2) {
$3=_st(self)._command();
|
|
|
_st($3)._input_(val);
|
|
@@ -348,8 +349,8 @@ $1=$5;
|
|
|
return $1;
|
|
|
}, function($ctx1) {$ctx1.fill(self,"inputBinding",{},smalltalk.HLBindingAction)})},
|
|
|
args: [],
|
|
|
-source: "inputBinding\x0a\x09^ HLBindingInput new\x0a\x09\x09label: self command inputLabel;\x0a\x09\x09callback: [ :val :errorBlock | \x0a\x09\x09\x09self command \x0a\x09\x09\x09\x09input: val;\x0a\x09\x09\x09\x09errorBlock: errorBlock;\x0a\x09\x09\x09\x09execute ];\x0a\x09\x09yourself",
|
|
|
-messageSends: ["label:", "inputLabel", "command", "new", "callback:", "input:", "errorBlock:", "execute", "yourself"],
|
|
|
+source: "inputBinding\x0a\x09^ HLBindingInput new\x0a\x09\x09label: self command inputLabel;\x0a\x09\x09ghostText: self command displayLabel;\x0a\x09\x09callback: [ :val :errorBlock | \x0a\x09\x09\x09self command \x0a\x09\x09\x09\x09input: val;\x0a\x09\x09\x09\x09errorBlock: errorBlock;\x0a\x09\x09\x09\x09execute ];\x0a\x09\x09yourself",
|
|
|
+messageSends: ["label:", "inputLabel", "command", "new", "ghostText:", "displayLabel", "callback:", "input:", "errorBlock:", "execute", "yourself"],
|
|
|
referencedClasses: ["HLBindingInput"]
|
|
|
}),
|
|
|
smalltalk.HLBindingAction);
|
|
@@ -637,7 +638,7 @@ smalltalk.HLBindingGroup);
|
|
|
|
|
|
|
|
|
|
|
|
-smalltalk.addClass('HLBindingInput', smalltalk.HLBinding, ['input', 'callback', 'status', 'inputText', 'wrapper', 'binder'], 'Helios-KeyBindings');
|
|
|
+smalltalk.addClass('HLBindingInput', smalltalk.HLBinding, ['input', 'callback', 'status', 'inputText', 'wrapper', 'binder', 'ghostText', 'isFinal'], 'Helios-KeyBindings');
|
|
|
smalltalk.addMethod(
|
|
|
"_applyOn_",
|
|
|
smalltalk.method({
|
|
@@ -645,19 +646,37 @@ selector: "applyOn:",
|
|
|
category: 'actions',
|
|
|
fn: function (aKeyBinder){
|
|
|
var self=this;
|
|
|
-return smalltalk.withContext(function($ctx1) {
var $early={};
|
|
|
-try {
|
|
|
-_st(self)._evaluate_onError_(_st(self)._input(),(function(){
|
|
|
+return smalltalk.withContext(function($ctx1) {
_st(self)._isFinal_(true);
|
|
|
+_st(self)._inputText_(_st(_st(_st(self)._input())._asJQuery())._val());
|
|
|
+_st(self)._evaluate_onError_(_st(self)._inputText(),(function(){
|
|
|
return smalltalk.withContext(function($ctx2) {
_st(self)._errorStatus();
|
|
|
_st(self)._refresh();
|
|
|
-throw $early=[false];
|
|
|
+return _st(self)._isFinal_(false);
|
|
|
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
|
|
|
-return self}
|
|
|
-catch(e) {if(e===$early)return e[0]; throw e}
|
|
|
-}, function($ctx1) {$ctx1.fill(self,"applyOn:",{aKeyBinder:aKeyBinder},smalltalk.HLBindingInput)})},
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"applyOn:",{aKeyBinder:aKeyBinder},smalltalk.HLBindingInput)})},
|
|
|
args: ["aKeyBinder"],
|
|
|
-source: "applyOn: aKeyBinder\x0a\x09self \x0a\x09\x09evaluate: self input \x0a\x09\x09onError: [ \x0a\x09\x09\x09self errorStatus.\x0a\x09\x09\x09self refresh.\x0a\x09\x09\x09^ false ]",
|
|
|
-messageSends: ["evaluate:onError:", "input", "errorStatus", "refresh"],
|
|
|
+source: "applyOn: aKeyBinder\x0a\x0a\x09self isFinal: true.\x0a\x09self inputText: self input asJQuery val.\x0a\x09self \x0a\x09\x09evaluate: self inputText\x0a\x09\x09onError: [ \x0a\x09\x09\x09self errorStatus.\x0a\x09\x09\x09self refresh.\x0a\x09\x09\x09self isFinal: false ]",
|
|
|
+messageSends: ["isFinal:", "inputText:", "val", "asJQuery", "input", "evaluate:onError:", "inputText", "errorStatus", "refresh"],
|
|
|
+referencedClasses: []
|
|
|
+}),
|
|
|
+smalltalk.HLBindingInput);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+"_atKey_",
|
|
|
+smalltalk.method({
|
|
|
+selector: "atKey:",
|
|
|
+category: 'accessing',
|
|
|
+fn: function (aKey){
|
|
|
+var self=this;
|
|
|
+return smalltalk.withContext(function($ctx1) {
var $1;
|
|
|
+$1=_st(aKey).__eq((13));
|
|
|
+if(! smalltalk.assert($1)){
|
|
|
+return nil;
|
|
|
+};
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"atKey:",{aKey:aKey},smalltalk.HLBindingInput)})},
|
|
|
+args: ["aKey"],
|
|
|
+source: "atKey: aKey\x0a\x09aKey = 13 ifFalse: [ ^ nil ]",
|
|
|
+messageSends: ["ifFalse:", "="],
|
|
|
referencedClasses: []
|
|
|
}),
|
|
|
smalltalk.HLBindingInput);
|
|
@@ -751,6 +770,40 @@ referencedClasses: []
|
|
|
}),
|
|
|
smalltalk.HLBindingInput);
|
|
|
|
|
|
+smalltalk.addMethod(
|
|
|
+"_ghostText",
|
|
|
+smalltalk.method({
|
|
|
+selector: "ghostText",
|
|
|
+category: 'accessing',
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return smalltalk.withContext(function($ctx1) {
var $1;
|
|
|
+$1=self["@ghostText"];
|
|
|
+return $1;
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"ghostText",{},smalltalk.HLBindingInput)})},
|
|
|
+args: [],
|
|
|
+source: "ghostText\x0a\x09^ ghostText",
|
|
|
+messageSends: [],
|
|
|
+referencedClasses: []
|
|
|
+}),
|
|
|
+smalltalk.HLBindingInput);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+"_ghostText_",
|
|
|
+smalltalk.method({
|
|
|
+selector: "ghostText:",
|
|
|
+category: 'accessing',
|
|
|
+fn: function (aText){
|
|
|
+var self=this;
|
|
|
+return smalltalk.withContext(function($ctx1) {
self["@ghostText"]=aText;
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"ghostText:",{aText:aText},smalltalk.HLBindingInput)})},
|
|
|
+args: ["aText"],
|
|
|
+source: "ghostText: aText\x0a\x09ghostText := aText",
|
|
|
+messageSends: [],
|
|
|
+referencedClasses: []
|
|
|
+}),
|
|
|
+smalltalk.HLBindingInput);
|
|
|
+
|
|
|
smalltalk.addMethod(
|
|
|
"_input",
|
|
|
smalltalk.method({
|
|
@@ -759,12 +812,12 @@ category: 'accessing',
|
|
|
fn: function (){
|
|
|
var self=this;
|
|
|
return smalltalk.withContext(function($ctx1) {
var $1;
|
|
|
-$1=_st(_st(self["@input"])._asJQuery())._val();
|
|
|
+$1=self["@input"];
|
|
|
return $1;
|
|
|
}, function($ctx1) {$ctx1.fill(self,"input",{},smalltalk.HLBindingInput)})},
|
|
|
args: [],
|
|
|
-source: "input\x0a\x09^ input asJQuery val",
|
|
|
-messageSends: ["val", "asJQuery"],
|
|
|
+source: "input\x0a\x09^ input",
|
|
|
+messageSends: [],
|
|
|
referencedClasses: []
|
|
|
}),
|
|
|
smalltalk.HLBindingInput);
|
|
@@ -825,6 +878,69 @@ referencedClasses: []
|
|
|
}),
|
|
|
smalltalk.HLBindingInput);
|
|
|
|
|
|
+smalltalk.addMethod(
|
|
|
+"_isFinal",
|
|
|
+smalltalk.method({
|
|
|
+selector: "isFinal",
|
|
|
+category: 'testing',
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+return smalltalk.withContext(function($ctx1) {
var $2,$1;
|
|
|
+$2=self["@isFinal"];
|
|
|
+if(($receiver = $2) == nil || $receiver == undefined){
|
|
|
+self["@isFinal"]=smalltalk.HLBinding.fn.prototype._isFinal.apply(_st(self), []);
|
|
|
+$1=self["@isFinal"];
|
|
|
+} else {
|
|
|
+$1=$2;
|
|
|
+};
|
|
|
+return $1;
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"isFinal",{},smalltalk.HLBindingInput)})},
|
|
|
+args: [],
|
|
|
+source: "isFinal\x0a\x09^ isFinal ifNil: [ isFinal := super isFinal ]",
|
|
|
+messageSends: ["ifNil:", "isFinal"],
|
|
|
+referencedClasses: []
|
|
|
+}),
|
|
|
+smalltalk.HLBindingInput);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+"_isFinal_",
|
|
|
+smalltalk.method({
|
|
|
+selector: "isFinal:",
|
|
|
+category: 'testing',
|
|
|
+fn: function (aBoolean){
|
|
|
+var self=this;
|
|
|
+return smalltalk.withContext(function($ctx1) {
self["@isFinal"]=aBoolean;
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"isFinal:",{aBoolean:aBoolean},smalltalk.HLBindingInput)})},
|
|
|
+args: ["aBoolean"],
|
|
|
+source: "isFinal: aBoolean\x0a\x09isFinal := aBoolean",
|
|
|
+messageSends: [],
|
|
|
+referencedClasses: []
|
|
|
+}),
|
|
|
+smalltalk.HLBindingInput);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+"_privateRenderOn_html_",
|
|
|
+smalltalk.method({
|
|
|
+selector: "privateRenderOn:html:",
|
|
|
+category: 'rendering',
|
|
|
+fn: function (aBinder,html){
|
|
|
+var self=this;
|
|
|
+return smalltalk.withContext(function($ctx1) {
var $1,$2;
|
|
|
+$1=_st(html)._input();
|
|
|
+_st($1)._class_("controls");
|
|
|
+_st($1)._type_("text");
|
|
|
+_st($1)._placeholder_(_st(self)._ghostText());
|
|
|
+$2=_st($1)._with_(_st(self)._inputText());
|
|
|
+self["@input"]=$2;
|
|
|
+_st(_st(self["@input"])._asJQuery())._focus();
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"privateRenderOn:html:",{aBinder:aBinder,html:html},smalltalk.HLBindingInput)})},
|
|
|
+args: ["aBinder", "html"],
|
|
|
+source: "privateRenderOn: aBinder html: html\x0a\x0a\x09input := html input\x0a\x09\x09class: 'controls';\x0a\x09\x09type: 'text';\x0a\x09\x09placeholder: self ghostText;\x0a\x09\x09with: self inputText.\x0a\x09\x09\x09\x09\x0a\x09\x22input onKeyPress: [ :event |\x0a\x09\x09event keyCode = 13 \x0a\x09\x09\x09ifTrue: [ self applyOn: aBinder ] ].\x0a\x09\x22\x09\x09\x09\x0a\x09input asJQuery focus",
|
|
|
+messageSends: ["class:", "input", "type:", "placeholder:", "ghostText", "with:", "inputText", "focus", "asJQuery"],
|
|
|
+referencedClasses: []
|
|
|
+}),
|
|
|
+smalltalk.HLBindingInput);
|
|
|
+
|
|
|
smalltalk.addMethod(
|
|
|
"_refresh",
|
|
|
smalltalk.method({
|
|
@@ -840,14 +956,11 @@ return $2;
|
|
|
} else {
|
|
|
$1;
|
|
|
};
|
|
|
-_st(_st(self["@wrapper"])._asJQuery())._empty();
|
|
|
-_st((function(html){
|
|
|
-return smalltalk.withContext(function($ctx2) {
return _st(self)._renderActionFor_html_(self["@binder"],html);
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}))._appendToJQuery_(_st(self["@wrapper"])._asJQuery());
|
|
|
+_st(self["@wrapper"])._class_(_st("control-group ").__comma(_st(self)._status()));
|
|
|
return self}, function($ctx1) {$ctx1.fill(self,"refresh",{},smalltalk.HLBindingInput)})},
|
|
|
args: [],
|
|
|
-source: "refresh\x0a\x09wrapper ifNil: [ ^ self ].\x0a \x0a\x09wrapper asJQuery empty.\x0a [ :html | self renderActionFor: binder html: html ] appendToJQuery: wrapper asJQuery",
|
|
|
-messageSends: ["ifNil:", "empty", "asJQuery", "appendToJQuery:", "renderActionFor:html:"],
|
|
|
+source: "refresh\x0a\x09wrapper ifNil: [ ^ self ].\x0a \x0a\x09wrapper class: 'control-group ', self status.",
|
|
|
+messageSends: ["ifNil:", "class:", ",", "status"],
|
|
|
referencedClasses: []
|
|
|
}),
|
|
|
smalltalk.HLBindingInput);
|
|
@@ -872,74 +985,29 @@ referencedClasses: []
|
|
|
smalltalk.HLBindingInput);
|
|
|
|
|
|
smalltalk.addMethod(
|
|
|
-"_renderActionFor_html_",
|
|
|
+"_renderOn_html_",
|
|
|
smalltalk.method({
|
|
|
-selector: "renderActionFor:html:",
|
|
|
+selector: "renderOn:html:",
|
|
|
category: 'rendering',
|
|
|
-fn: function (aBinder,html){
|
|
|
+fn: function (aBinder,root){
|
|
|
var self=this;
|
|
|
-return smalltalk.withContext(function($ctx1) {
var $1,$2,$4,$5,$3,$6;
|
|
|
+return smalltalk.withContext(function($ctx1) {
var $1;
|
|
|
self["@binder"]=aBinder;
|
|
|
$1=self["@wrapper"];
|
|
|
if(($receiver = $1) == nil || $receiver == undefined){
|
|
|
-self["@wrapper"]=_st(html)._span();
|
|
|
+self["@wrapper"]=_st(root)._span();
|
|
|
self["@wrapper"];
|
|
|
} else {
|
|
|
$1;
|
|
|
};
|
|
|
-$2=self["@wrapper"];
|
|
|
-_st($2)._class_(_st("control-group ").__comma(_st(self)._status()));
|
|
|
-$3=_st($2)._with_((function(){
|
|
|
-return smalltalk.withContext(function($ctx2) {
$4=_st(html)._input();
|
|
|
-_st($4)._class_("input");
|
|
|
-_st($4)._placeholder_(_st(self)._displayLabel());
|
|
|
-$5=_st($4)._with_(_st(self)._inputText());
|
|
|
-self["@input"]=$5;
|
|
|
-return self["@input"];
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
|
|
|
-_st(self["@input"])._onKeyPress_((function(event){
|
|
|
-return smalltalk.withContext(function($ctx2) {
$6=_st(_st(event)._keyCode()).__eq((13));
|
|
|
-if(smalltalk.assert($6)){
|
|
|
-return _st(self)._applyOn_(aBinder);
|
|
|
-};
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({event:event},$ctx1)})}));
|
|
|
-_st(_st(self["@input"])._asJQuery())._focus();
|
|
|
-return self}, function($ctx1) {$ctx1.fill(self,"renderActionFor:html:",{aBinder:aBinder,html:html},smalltalk.HLBindingInput)})},
|
|
|
-args: ["aBinder", "html"],
|
|
|
-source: "renderActionFor: aBinder html: html\x0a\x09binder := aBinder.\x0a\x09wrapper ifNil: [ wrapper := html span ].\x0a\x09\x0a\x09wrapper\x0a\x09\x09class: 'control-group ', self status; \x0a\x09\x09with: [\x0a\x09\x09\x09input := html input\x0a\x09\x09\x09\x09class: 'input';\x0a\x09\x09\x09\x09placeholder: self displayLabel;\x0a\x09\x09\x09\x09with: self inputText ].\x0a\x09\x09\x09\x09\x0a\x09input onKeyPress: [ :event |\x0a\x09\x09event keyCode = 13 \x0a\x09\x09\x09ifTrue: [ self applyOn: aBinder ] ].\x0a\x09\x09\x09\x09\x0a\x09input asJQuery focus",
|
|
|
-messageSends: ["ifNil:", "span", "class:", ",", "status", "with:", "input", "placeholder:", "displayLabel", "inputText", "onKeyPress:", "ifTrue:", "applyOn:", "=", "keyCode", "focus", "asJQuery"],
|
|
|
-referencedClasses: []
|
|
|
-}),
|
|
|
-smalltalk.HLBindingInput);
|
|
|
-
|
|
|
-smalltalk.addMethod(
|
|
|
-"_renderOn_html_",
|
|
|
-smalltalk.method({
|
|
|
-selector: "renderOn:html:",
|
|
|
-category: 'accessing',
|
|
|
-fn: function (aBinder,html){
|
|
|
-var self=this;
|
|
|
-return smalltalk.withContext(function($ctx1) {
var $1,$3,$4,$2,$5;
|
|
|
-$1=_st(html)._span();
|
|
|
-_st($1)._class_("command");
|
|
|
-$2=_st($1)._with_((function(){
|
|
|
-return smalltalk.withContext(function($ctx2) {
$3=_st(html)._input();
|
|
|
-_st($3)._class_("search-query");
|
|
|
-$4=_st($3)._placeholder_(_st(self)._displayLabel());
|
|
|
-self["@input"]=$4;
|
|
|
-return self["@input"];
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
|
|
|
-_st(self["@input"])._onKeyPress_((function(event){
|
|
|
-return smalltalk.withContext(function($ctx2) {
$5=_st(_st(event)._keyCode()).__eq((13));
|
|
|
-if(smalltalk.assert($5)){
|
|
|
-return _st(self)._applyOn_(aBinder);
|
|
|
-};
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({event:event},$ctx1)})}));
|
|
|
-_st(_st(self["@input"])._asJQuery())._focus();
|
|
|
-return self}, function($ctx1) {$ctx1.fill(self,"renderOn:html:",{aBinder:aBinder,html:html},smalltalk.HLBindingInput)})},
|
|
|
-args: ["aBinder", "html"],
|
|
|
-source: "renderOn: aBinder html: html\x0a\x09html span \x0a\x09\x09class: 'command'; \x0a\x09\x09with: [\x0a\x09\x09\x09input := html input\x0a\x09\x09\x09\x09class: 'search-query';\x0a\x09\x09\x09\x09placeholder: self displayLabel ].\x0a\x09\x09\x09\x09\x0a\x09input onKeyPress: [:event |\x0a\x09\x09event keyCode = 13 ifTrue: [\x0a\x09\x09\x09self applyOn: aBinder ] ].\x0a\x09\x09\x09\x09\x0a\x09input asJQuery focus",
|
|
|
-messageSends: ["class:", "span", "with:", "input", "placeholder:", "displayLabel", "onKeyPress:", "ifTrue:", "applyOn:", "=", "keyCode", "focus", "asJQuery"],
|
|
|
+_st(self["@wrapper"])._class_(_st("control-group ").__comma(_st(self)._status()));
|
|
|
+_st((function(html){
|
|
|
+return smalltalk.withContext(function($ctx2) {
return _st(self)._privateRenderOn_html_(self["@binder"],html);
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}))._appendToJQuery_(_st(self["@wrapper"])._asJQuery());
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"renderOn:html:",{aBinder:aBinder,root:root},smalltalk.HLBindingInput)})},
|
|
|
+args: ["aBinder", "root"],
|
|
|
+source: "renderOn: aBinder html: root\x0a\x09binder := aBinder.\x0a\x09wrapper ifNil: [ wrapper := root span ].\x0a\x09\x0a\x09wrapper class: 'control-group ', self status.\x0a\x09\x0a\x09[:html | self privateRenderOn: binder html: html ] appendToJQuery: wrapper asJQuery",
|
|
|
+messageSends: ["ifNil:", "span", "class:", ",", "status", "appendToJQuery:", "asJQuery", "privateRenderOn:html:"],
|
|
|
referencedClasses: []
|
|
|
}),
|
|
|
smalltalk.HLBindingInput);
|