|
@@ -322,6 +322,7 @@ return smalltalk.withContext(function($ctx1) {
var $2,$3,$4,$5,$1;
|
|
$2=_st((smalltalk.HLBindingInput || HLBindingInput))._new();
|
|
$2=_st((smalltalk.HLBindingInput || HLBindingInput))._new();
|
|
_st($2)._label_(_st(_st(self)._command())._inputLabel());
|
|
_st($2)._label_(_st(_st(self)._command())._inputLabel());
|
|
_st($2)._ghostText_(_st(_st(self)._command())._displayLabel());
|
|
_st($2)._ghostText_(_st(_st(self)._command())._displayLabel());
|
|
|
|
+_st($2)._inputCompletion_(_st(_st(self)._command())._inputCompletion());
|
|
_st($2)._callback_((function(val){
|
|
_st($2)._callback_((function(val){
|
|
return smalltalk.withContext(function($ctx2) {
$3=_st(self)._command();
|
|
return smalltalk.withContext(function($ctx2) {
$3=_st(self)._command();
|
|
_st($3)._input_(val);
|
|
_st($3)._input_(val);
|
|
@@ -333,8 +334,8 @@ $1=$5;
|
|
return $1;
|
|
return $1;
|
|
}, function($ctx1) {$ctx1.fill(self,"inputBinding",{},smalltalk.HLBindingAction)})},
|
|
}, function($ctx1) {$ctx1.fill(self,"inputBinding",{},smalltalk.HLBindingAction)})},
|
|
args: [],
|
|
args: [],
|
|
-source: "inputBinding\x0a\x09^ HLBindingInput new\x0a\x09\x09label: self command inputLabel;\x0a\x09\x09ghostText: self command displayLabel;\x0a\x09\x09callback: [ :val | \x0a\x09\x09\x09self command \x0a\x09\x09\x09\x09input: val;\x0a\x09\x09\x09\x09execute ];\x0a\x09\x09yourself",
|
|
|
|
-messageSends: ["label:", "inputLabel", "command", "new", "ghostText:", "displayLabel", "callback:", "input:", "execute", "yourself"],
|
|
|
|
|
|
+source: "inputBinding\x0a\x09^ HLBindingInput new\x0a\x09\x09label: self command inputLabel;\x0a\x09\x09ghostText: self command displayLabel;\x0a\x09\x09inputCompletion: self command inputCompletion;\x0a\x09\x09callback: [ :val | \x0a\x09\x09\x09self command \x0a\x09\x09\x09\x09input: val;\x0a\x09\x09\x09\x09execute ];\x0a\x09\x09yourself",
|
|
|
|
+messageSends: ["label:", "inputLabel", "command", "new", "ghostText:", "displayLabel", "inputCompletion:", "inputCompletion", "callback:", "input:", "execute", "yourself"],
|
|
referencedClasses: ["HLBindingInput"]
|
|
referencedClasses: ["HLBindingInput"]
|
|
}),
|
|
}),
|
|
smalltalk.HLBindingAction);
|
|
smalltalk.HLBindingAction);
|
|
@@ -622,7 +623,7 @@ smalltalk.HLBindingGroup);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-smalltalk.addClass('HLBindingInput', smalltalk.HLBinding, ['input', 'callback', 'status', 'inputText', 'wrapper', 'binder', 'ghostText', 'isFinal'], 'Helios-KeyBindings');
|
|
|
|
|
|
+smalltalk.addClass('HLBindingInput', smalltalk.HLBinding, ['input', 'callback', 'status', 'wrapper', 'binder', 'ghostText', 'isFinal', 'message', 'messageTag', 'inputCompletion'], 'Helios-KeyBindings');
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
"_applyOn_",
|
|
"_applyOn_",
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
@@ -631,12 +632,11 @@ category: 'actions',
|
|
fn: function (aKeyBinder){
|
|
fn: function (aKeyBinder){
|
|
var self=this;
|
|
var self=this;
|
|
return smalltalk.withContext(function($ctx1) {
_st(self)._isFinal_(true);
|
|
return smalltalk.withContext(function($ctx1) {
_st(self)._isFinal_(true);
|
|
-_st(self)._inputText_(_st(_st(_st(self)._input())._asJQuery())._val());
|
|
|
|
-_st(self)._evaluate_(_st(self)._inputText());
|
|
|
|
|
|
+_st(self)._evaluate_(_st(_st(_st(self)._input())._asJQuery())._val());
|
|
return self}, function($ctx1) {$ctx1.fill(self,"applyOn:",{aKeyBinder:aKeyBinder},smalltalk.HLBindingInput)})},
|
|
return self}, function($ctx1) {$ctx1.fill(self,"applyOn:",{aKeyBinder:aKeyBinder},smalltalk.HLBindingInput)})},
|
|
args: ["aKeyBinder"],
|
|
args: ["aKeyBinder"],
|
|
-source: "applyOn: aKeyBinder\x0a\x0a\x09self isFinal: true.\x0a\x09self inputText: self input asJQuery val.\x0a\x09self evaluate: self inputText",
|
|
|
|
-messageSends: ["isFinal:", "inputText:", "val", "asJQuery", "input", "evaluate:", "inputText"],
|
|
|
|
|
|
+source: "applyOn: aKeyBinder\x0a\x09self isFinal: true.\x0a\x09self evaluate: self input asJQuery val",
|
|
|
|
+messageSends: ["isFinal:", "evaluate:", "val", "asJQuery", "input"],
|
|
referencedClasses: []
|
|
referencedClasses: []
|
|
}),
|
|
}),
|
|
smalltalk.HLBindingInput);
|
|
smalltalk.HLBindingInput);
|
|
@@ -702,6 +702,24 @@ referencedClasses: []
|
|
}),
|
|
}),
|
|
smalltalk.HLBindingInput);
|
|
smalltalk.HLBindingInput);
|
|
|
|
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+"_clearStatus",
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "clearStatus",
|
|
|
|
+category: 'actions',
|
|
|
|
+fn: function (){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
_st(self)._status_("info");
|
|
|
|
+_st(self)._message_("");
|
|
|
|
+_st(self)._refresh();
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"clearStatus",{},smalltalk.HLBindingInput)})},
|
|
|
|
+args: [],
|
|
|
|
+source: "clearStatus\x0a\x09self status: 'info'.\x0a\x09self message: ''.\x0a\x09self refresh",
|
|
|
|
+messageSends: ["status:", "message:", "refresh"],
|
|
|
|
+referencedClasses: []
|
|
|
|
+}),
|
|
|
|
+smalltalk.HLBindingInput);
|
|
|
|
+
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
"_errorStatus",
|
|
"_errorStatus",
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
@@ -729,13 +747,17 @@ var self=this;
|
|
return smalltalk.withContext(function($ctx1) {
_st((function(){
|
|
return smalltalk.withContext(function($ctx1) {
_st((function(){
|
|
return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._callback())._value_(aString);
|
|
return smalltalk.withContext(function($ctx2) {
return _st(_st(self)._callback())._value_(aString);
|
|
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
|
|
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
|
|
-return smalltalk.withContext(function($ctx2) {
_st(self)._errorStatus();
|
|
|
|
|
|
+return smalltalk.withContext(function($ctx2) {
_st(_st(_st(self)._input())._asJQuery())._one_do_("keydown",(function(){
|
|
|
|
+return smalltalk.withContext(function($ctx3) {
return _st(self)._clearStatus();
|
|
|
|
+}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
|
|
|
|
+_st(self)._message_(_st(ex)._messageText());
|
|
|
|
+_st(self)._errorStatus();
|
|
return _st(self)._isFinal_(false);
|
|
return _st(self)._isFinal_(false);
|
|
}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
|
|
}, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
|
|
return self}, function($ctx1) {$ctx1.fill(self,"evaluate:",{aString:aString},smalltalk.HLBindingInput)})},
|
|
return self}, function($ctx1) {$ctx1.fill(self,"evaluate:",{aString:aString},smalltalk.HLBindingInput)})},
|
|
args: ["aString"],
|
|
args: ["aString"],
|
|
-source: "evaluate: aString\x0a\x09\x0a\x09[ self callback value: aString ]\x0a\x09on: Error\x0a\x09do: [:ex | \x0a\x09\x09self errorStatus.\x0a\x09\x09self isFinal: false ].",
|
|
|
|
-messageSends: ["on:do:", "errorStatus", "isFinal:", "value:", "callback"],
|
|
|
|
|
|
+source: "evaluate: aString\x0a\x09\x0a\x09[ self callback value: aString ]\x0a\x09on: Error\x0a\x09do: [:ex |\x0a\x09\x09self input asJQuery \x0a\x09\x09\x09one: 'keydown' \x0a\x09\x09\x09do: [ self clearStatus ].\x0a\x09\x09self message: ex messageText.\x0a\x09\x09self errorStatus.\x0a\x09\x09self isFinal: false ].",
|
|
|
|
+messageSends: ["on:do:", "one:do:", "clearStatus", "asJQuery", "input", "message:", "messageText", "errorStatus", "isFinal:", "value:", "callback"],
|
|
referencedClasses: ["Error"]
|
|
referencedClasses: ["Error"]
|
|
}),
|
|
}),
|
|
smalltalk.HLBindingInput);
|
|
smalltalk.HLBindingInput);
|
|
@@ -793,40 +815,39 @@ referencedClasses: []
|
|
smalltalk.HLBindingInput);
|
|
smalltalk.HLBindingInput);
|
|
|
|
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
-"_inputText",
|
|
|
|
|
|
+"_inputCompletion",
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
-selector: "inputText",
|
|
|
|
|
|
+selector: "inputCompletion",
|
|
category: 'accessing',
|
|
category: 'accessing',
|
|
fn: function (){
|
|
fn: function (){
|
|
var self=this;
|
|
var self=this;
|
|
return smalltalk.withContext(function($ctx1) {
var $2,$1;
|
|
return smalltalk.withContext(function($ctx1) {
var $2,$1;
|
|
-$2=self["@inputText"];
|
|
|
|
|
|
+$2=self["@inputCompletion"];
|
|
if(($receiver = $2) == nil || $receiver == undefined){
|
|
if(($receiver = $2) == nil || $receiver == undefined){
|
|
-self["@inputText"]="";
|
|
|
|
-$1=self["@inputText"];
|
|
|
|
|
|
+$1=[];
|
|
} else {
|
|
} else {
|
|
$1=$2;
|
|
$1=$2;
|
|
};
|
|
};
|
|
return $1;
|
|
return $1;
|
|
-}, function($ctx1) {$ctx1.fill(self,"inputText",{},smalltalk.HLBindingInput)})},
|
|
|
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"inputCompletion",{},smalltalk.HLBindingInput)})},
|
|
args: [],
|
|
args: [],
|
|
-source: "inputText\x0a\x09^ inputText ifNil: [ inputText := '' ].",
|
|
|
|
|
|
+source: "inputCompletion\x0a\x09^ inputCompletion ifNil: [ #() ]",
|
|
messageSends: ["ifNil:"],
|
|
messageSends: ["ifNil:"],
|
|
referencedClasses: []
|
|
referencedClasses: []
|
|
}),
|
|
}),
|
|
smalltalk.HLBindingInput);
|
|
smalltalk.HLBindingInput);
|
|
|
|
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
-"_inputText_",
|
|
|
|
|
|
+"_inputCompletion_",
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
-selector: "inputText:",
|
|
|
|
|
|
+selector: "inputCompletion:",
|
|
category: 'accessing',
|
|
category: 'accessing',
|
|
-fn: function (aText){
|
|
|
|
|
|
+fn: function (aCollection){
|
|
var self=this;
|
|
var self=this;
|
|
-return smalltalk.withContext(function($ctx1) {
self["@inputText"]=aText;
|
|
|
|
-return self}, function($ctx1) {$ctx1.fill(self,"inputText:",{aText:aText},smalltalk.HLBindingInput)})},
|
|
|
|
-args: ["aText"],
|
|
|
|
-source: "inputText: aText\x0a\x09inputText := aText",
|
|
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
self["@inputCompletion"]=aCollection;
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"inputCompletion:",{aCollection:aCollection},smalltalk.HLBindingInput)})},
|
|
|
|
+args: ["aCollection"],
|
|
|
|
+source: "inputCompletion: aCollection\x0a\x09inputCompletion := aCollection",
|
|
messageSends: [],
|
|
messageSends: [],
|
|
referencedClasses: []
|
|
referencedClasses: []
|
|
}),
|
|
}),
|
|
@@ -889,24 +910,41 @@ referencedClasses: []
|
|
smalltalk.HLBindingInput);
|
|
smalltalk.HLBindingInput);
|
|
|
|
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
-"_privateRenderOn_html_",
|
|
|
|
|
|
+"_message",
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
-selector: "privateRenderOn:html:",
|
|
|
|
-category: 'rendering',
|
|
|
|
-fn: function (aBinder,html){
|
|
|
|
|
|
+selector: "message",
|
|
|
|
+category: 'accessing',
|
|
|
|
+fn: function (){
|
|
var self=this;
|
|
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\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\x0a\x09input asJQuery focus",
|
|
|
|
-messageSends: ["class:", "input", "type:", "placeholder:", "ghostText", "with:", "inputText", "focus", "asJQuery"],
|
|
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
var $2,$1;
|
|
|
|
+$2=self["@message"];
|
|
|
|
+if(($receiver = $2) == nil || $receiver == undefined){
|
|
|
|
+self["@message"]="";
|
|
|
|
+$1=self["@message"];
|
|
|
|
+} else {
|
|
|
|
+$1=$2;
|
|
|
|
+};
|
|
|
|
+return $1;
|
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"message",{},smalltalk.HLBindingInput)})},
|
|
|
|
+args: [],
|
|
|
|
+source: "message\x0a\x09^ message ifNil: [ message := '' ]",
|
|
|
|
+messageSends: ["ifNil:"],
|
|
|
|
+referencedClasses: []
|
|
|
|
+}),
|
|
|
|
+smalltalk.HLBindingInput);
|
|
|
|
+
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+"_message_",
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "message:",
|
|
|
|
+category: 'accessing',
|
|
|
|
+fn: function (aString){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
self["@message"]=aString;
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"message:",{aString:aString},smalltalk.HLBindingInput)})},
|
|
|
|
+args: ["aString"],
|
|
|
|
+source: "message: aString\x0a\x09message := aString",
|
|
|
|
+messageSends: [],
|
|
referencedClasses: []
|
|
referencedClasses: []
|
|
}),
|
|
}),
|
|
smalltalk.HLBindingInput);
|
|
smalltalk.HLBindingInput);
|
|
@@ -926,11 +964,12 @@ return $2;
|
|
} else {
|
|
} else {
|
|
$1;
|
|
$1;
|
|
};
|
|
};
|
|
-_st(self["@wrapper"])._class_(_st("control-group ").__comma(_st(self)._status()));
|
|
|
|
|
|
+_st(self["@wrapper"])._class_(_st(self)._status());
|
|
|
|
+_st(self["@messageTag"])._contents_(_st(self)._message());
|
|
return self}, function($ctx1) {$ctx1.fill(self,"refresh",{},smalltalk.HLBindingInput)})},
|
|
return self}, function($ctx1) {$ctx1.fill(self,"refresh",{},smalltalk.HLBindingInput)})},
|
|
args: [],
|
|
args: [],
|
|
-source: "refresh\x0a\x09wrapper ifNil: [ ^ self ].\x0a \x0a\x09wrapper class: 'control-group ', self status.",
|
|
|
|
-messageSends: ["ifNil:", "class:", ",", "status"],
|
|
|
|
|
|
+source: "refresh\x0a\x09wrapper ifNil: [ ^ self ].\x0a \x0a\x09wrapper class: self status.\x0a\x09messageTag contents: self message",
|
|
|
|
+messageSends: ["ifNil:", "class:", "status", "contents:", "message"],
|
|
referencedClasses: []
|
|
referencedClasses: []
|
|
}),
|
|
}),
|
|
smalltalk.HLBindingInput);
|
|
smalltalk.HLBindingInput);
|
|
@@ -959,25 +998,38 @@ smalltalk.addMethod(
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
selector: "renderOn:html:",
|
|
selector: "renderOn:html:",
|
|
category: 'rendering',
|
|
category: 'rendering',
|
|
-fn: function (aBinder,root){
|
|
|
|
|
|
+fn: function (aBinder,html){
|
|
var self=this;
|
|
var self=this;
|
|
-return smalltalk.withContext(function($ctx1) {
var $1;
|
|
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
var $1,$2,$4,$5,$6,$7,$3;
|
|
self["@binder"]=aBinder;
|
|
self["@binder"]=aBinder;
|
|
$1=self["@wrapper"];
|
|
$1=self["@wrapper"];
|
|
if(($receiver = $1) == nil || $receiver == undefined){
|
|
if(($receiver = $1) == nil || $receiver == undefined){
|
|
-self["@wrapper"]=_st(root)._span();
|
|
|
|
|
|
+self["@wrapper"]=_st(html)._span();
|
|
self["@wrapper"];
|
|
self["@wrapper"];
|
|
} else {
|
|
} else {
|
|
$1;
|
|
$1;
|
|
};
|
|
};
|
|
-_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:"],
|
|
|
|
|
|
+$2=self["@wrapper"];
|
|
|
|
+_st($2)._class_(_st(self)._status());
|
|
|
|
+$3=_st($2)._with_((function(){
|
|
|
|
+return smalltalk.withContext(function($ctx2) {
$4=_st(html)._input();
|
|
|
|
+_st($4)._placeholder_(_st(self)._ghostText());
|
|
|
|
+$5=_st($4)._yourself();
|
|
|
|
+self["@input"]=$5;
|
|
|
|
+self["@input"];
|
|
|
|
+_st(_st(self["@input"])._asJQuery())._typeahead_(smalltalk.HashedCollection._fromPairs_([_st("source").__minus_gt(_st(self)._inputCompletion())]));
|
|
|
|
+$6=_st(html)._span();
|
|
|
|
+_st($6)._class_("help-inline");
|
|
|
|
+_st($6)._with_(_st(self)._message());
|
|
|
|
+$7=_st($6)._yourself();
|
|
|
|
+self["@messageTag"]=$7;
|
|
|
|
+return self["@messageTag"];
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({},$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\x09binder := aBinder.\x0a\x09wrapper ifNil: [ wrapper := html span ].\x0a\x09\x0a\x09wrapper \x0a\x09\x09class: self status;\x0a\x09\x09with: [\x0a\x09\x09\x09input := html input\x0a\x09\x09\x09\x09placeholder: self ghostText;\x0a\x09\x09\x09\x09yourself.\x0a\x09\x09\x09input asJQuery \x0a\x09\x09\x09\x09typeahead: #{ 'source' -> self inputCompletion }.\x0a\x09\x09\x09messageTag := (html span\x0a\x09\x09\x09\x09class: 'help-inline';\x0a\x09\x09\x09\x09with: self message;\x0a\x09\x09\x09\x09yourself) ].\x0a\x09\x09\x09\x0a\x09input asJQuery focus\x0a",
|
|
|
|
+messageSends: ["ifNil:", "span", "class:", "status", "with:", "placeholder:", "ghostText", "input", "yourself", "typeahead:", "->", "inputCompletion", "asJQuery", "message", "focus"],
|
|
referencedClasses: []
|
|
referencedClasses: []
|
|
}),
|
|
}),
|
|
smalltalk.HLBindingInput);
|
|
smalltalk.HLBindingInput);
|