Helios-Layout.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873
  1. define(["amber/boot", "amber/web/Web", "amber_core/Kernel-Objects", "helios/Helios-Core"], function($boot){"use strict";
  2. if(!("nilAsValue" in $boot))$boot.nilAsValue=$boot.nilAsReceiver;
  3. var $core=$boot.api,nil=$boot.nilAsValue,$nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
  4. var $pkg = $core.addPackage("Helios-Layout");
  5. $pkg.innerEval = function (expr) { return eval(expr); };
  6. $pkg.transport = {"type":"amd","amdNamespace":"helios"};
  7. $core.addClass("HLContainer", $globals.HLWidget, ["splitter"], "Helios-Layout");
  8. $core.addMethod(
  9. $core.method({
  10. selector: "renderOn:",
  11. protocol: "rendering",
  12. fn: function (html){
  13. var self=this,$self=this;
  14. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  15. return $core.withContext(function($ctx1) {
  16. //>>excludeEnd("ctx");
  17. var $1;
  18. $1=$recv(html)._div();
  19. $recv($1)._class_("tool_container");
  20. $recv($1)._with_($self._splitter());
  21. return self;
  22. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  23. }, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html},$globals.HLContainer)});
  24. //>>excludeEnd("ctx");
  25. },
  26. //>>excludeStart("ide", pragmas.excludeIdeData);
  27. args: ["html"],
  28. source: "renderOn: html\x0a\x09html div \x0a \x09class: 'tool_container'; \x0a with: self splitter",
  29. referencedClasses: [],
  30. //>>excludeEnd("ide");
  31. messageSends: ["class:", "div", "with:", "splitter"]
  32. }),
  33. $globals.HLContainer);
  34. $core.addMethod(
  35. $core.method({
  36. selector: "splitter",
  37. protocol: "accessing",
  38. fn: function (){
  39. var self=this,$self=this;
  40. return $self["@splitter"];
  41. },
  42. //>>excludeStart("ide", pragmas.excludeIdeData);
  43. args: [],
  44. source: "splitter\x0a\x09^ splitter",
  45. referencedClasses: [],
  46. //>>excludeEnd("ide");
  47. messageSends: []
  48. }),
  49. $globals.HLContainer);
  50. $core.addMethod(
  51. $core.method({
  52. selector: "splitter:",
  53. protocol: "accessing",
  54. fn: function (aSplitter){
  55. var self=this,$self=this;
  56. $self["@splitter"]=aSplitter;
  57. return self;
  58. },
  59. //>>excludeStart("ide", pragmas.excludeIdeData);
  60. args: ["aSplitter"],
  61. source: "splitter: aSplitter\x0a\x09splitter := aSplitter",
  62. referencedClasses: [],
  63. //>>excludeEnd("ide");
  64. messageSends: []
  65. }),
  66. $globals.HLContainer);
  67. $core.addMethod(
  68. $core.method({
  69. selector: "with:",
  70. protocol: "instance creation",
  71. fn: function (aSplitter){
  72. var self=this,$self=this;
  73. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  74. return $core.withContext(function($ctx1) {
  75. //>>excludeEnd("ctx");
  76. var $1;
  77. $1=$self._new();
  78. $recv($1)._splitter_(aSplitter);
  79. return $recv($1)._yourself();
  80. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  81. }, function($ctx1) {$ctx1.fill(self,"with:",{aSplitter:aSplitter},$globals.HLContainer.a$cls)});
  82. //>>excludeEnd("ctx");
  83. },
  84. //>>excludeStart("ide", pragmas.excludeIdeData);
  85. args: ["aSplitter"],
  86. source: "with: aSplitter\x0a\x09^ self new \x0a \x09splitter: aSplitter; \x0a yourself",
  87. referencedClasses: [],
  88. //>>excludeEnd("ide");
  89. messageSends: ["splitter:", "new", "yourself"]
  90. }),
  91. $globals.HLContainer.a$cls);
  92. $core.addClass("HLSplitter", $globals.Widget, ["firstWidget", "secondWidget", "firstPane", "secondPane", "splitter"], "Helios-Layout");
  93. $core.addMethod(
  94. $core.method({
  95. selector: "cssClass",
  96. protocol: "accessing",
  97. fn: function (){
  98. var self=this,$self=this;
  99. return "splitter";
  100. },
  101. //>>excludeStart("ide", pragmas.excludeIdeData);
  102. args: [],
  103. source: "cssClass\x0a\x09^ 'splitter'",
  104. referencedClasses: [],
  105. //>>excludeEnd("ide");
  106. messageSends: []
  107. }),
  108. $globals.HLSplitter);
  109. $core.addMethod(
  110. $core.method({
  111. selector: "firstWidget",
  112. protocol: "accessing",
  113. fn: function (){
  114. var self=this,$self=this;
  115. return $self["@firstWidget"];
  116. },
  117. //>>excludeStart("ide", pragmas.excludeIdeData);
  118. args: [],
  119. source: "firstWidget\x0a\x09^ firstWidget",
  120. referencedClasses: [],
  121. //>>excludeEnd("ide");
  122. messageSends: []
  123. }),
  124. $globals.HLSplitter);
  125. $core.addMethod(
  126. $core.method({
  127. selector: "firstWidget:",
  128. protocol: "accessing",
  129. fn: function (aWidget){
  130. var self=this,$self=this;
  131. $self["@firstWidget"]=aWidget;
  132. return self;
  133. },
  134. //>>excludeStart("ide", pragmas.excludeIdeData);
  135. args: ["aWidget"],
  136. source: "firstWidget: aWidget\x0a\x09firstWidget := aWidget",
  137. referencedClasses: [],
  138. //>>excludeEnd("ide");
  139. messageSends: []
  140. }),
  141. $globals.HLSplitter);
  142. $core.addMethod(
  143. $core.method({
  144. selector: "isHeliosSplitter",
  145. protocol: "testing",
  146. fn: function (){
  147. var self=this,$self=this;
  148. return true;
  149. },
  150. //>>excludeStart("ide", pragmas.excludeIdeData);
  151. args: [],
  152. source: "isHeliosSplitter\x0a\x09^ true",
  153. referencedClasses: [],
  154. //>>excludeEnd("ide");
  155. messageSends: []
  156. }),
  157. $globals.HLSplitter);
  158. $core.addMethod(
  159. $core.method({
  160. selector: "panesCssClass",
  161. protocol: "rendering",
  162. fn: function (){
  163. var self=this,$self=this;
  164. return "panes";
  165. },
  166. //>>excludeStart("ide", pragmas.excludeIdeData);
  167. args: [],
  168. source: "panesCssClass\x0a\x09^ 'panes'",
  169. referencedClasses: [],
  170. //>>excludeEnd("ide");
  171. messageSends: []
  172. }),
  173. $globals.HLSplitter);
  174. $core.addMethod(
  175. $core.method({
  176. selector: "renderOn:",
  177. protocol: "rendering",
  178. fn: function (html){
  179. var self=this,$self=this;
  180. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  181. return $core.withContext(function($ctx1) {
  182. //>>excludeEnd("ctx");
  183. var $1,$3,$4,$5,$6,$2;
  184. $1=$recv(html)._div();
  185. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  186. $ctx1.sendIdx["div"]=1;
  187. //>>excludeEnd("ctx");
  188. $recv($1)._class_($self._panesCssClass());
  189. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  190. $ctx1.sendIdx["class:"]=1;
  191. //>>excludeEnd("ctx");
  192. $2=$recv($1)._with_((function(){
  193. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  194. return $core.withContext(function($ctx2) {
  195. //>>excludeEnd("ctx");
  196. $3=$recv(html)._div();
  197. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  198. $ctx2.sendIdx["div"]=2;
  199. //>>excludeEnd("ctx");
  200. $recv($3)._class_("pane");
  201. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  202. $ctx2.sendIdx["class:"]=2;
  203. //>>excludeEnd("ctx");
  204. $4=$recv($3)._with_($self._firstWidget());
  205. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  206. $ctx2.sendIdx["with:"]=2;
  207. //>>excludeEnd("ctx");
  208. $self["@firstPane"]=$4;
  209. $5=$recv(html)._div();
  210. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  211. $ctx2.sendIdx["div"]=3;
  212. //>>excludeEnd("ctx");
  213. $self["@splitter"]=$recv($5)._class_($self._cssClass());
  214. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  215. $ctx2.sendIdx["class:"]=3;
  216. //>>excludeEnd("ctx");
  217. $6=$recv(html)._div();
  218. $recv($6)._class_("pane");
  219. $self["@secondPane"]=$recv($6)._with_($self._secondWidget());
  220. return $self["@secondPane"];
  221. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  222. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  223. //>>excludeEnd("ctx");
  224. }));
  225. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  226. $ctx1.sendIdx["with:"]=1;
  227. //>>excludeEnd("ctx");
  228. $self._setupSplitter();
  229. return self;
  230. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  231. }, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html},$globals.HLSplitter)});
  232. //>>excludeEnd("ctx");
  233. },
  234. //>>excludeStart("ide", pragmas.excludeIdeData);
  235. args: ["html"],
  236. source: "renderOn: html\x0a\x09html div class: self panesCssClass; with: [\x0a\x09\x09firstPane := html div class: 'pane'; with: self firstWidget.\x0a \x09splitter := html div class: self cssClass.\x0a \x09secondPane := html div class: 'pane'; with: self secondWidget ].\x0a \x0a\x09self setupSplitter",
  237. referencedClasses: [],
  238. //>>excludeEnd("ide");
  239. messageSends: ["class:", "div", "panesCssClass", "with:", "firstWidget", "cssClass", "secondWidget", "setupSplitter"]
  240. }),
  241. $globals.HLSplitter);
  242. $core.addMethod(
  243. $core.method({
  244. selector: "resize",
  245. protocol: "rendering",
  246. fn: function (){
  247. var self=this,$self=this;
  248. return self;
  249. },
  250. //>>excludeStart("ide", pragmas.excludeIdeData);
  251. args: [],
  252. source: "resize",
  253. referencedClasses: [],
  254. //>>excludeEnd("ide");
  255. messageSends: []
  256. }),
  257. $globals.HLSplitter);
  258. $core.addMethod(
  259. $core.method({
  260. selector: "secondWidget",
  261. protocol: "accessing",
  262. fn: function (){
  263. var self=this,$self=this;
  264. return $self["@secondWidget"];
  265. },
  266. //>>excludeStart("ide", pragmas.excludeIdeData);
  267. args: [],
  268. source: "secondWidget\x0a\x09^ secondWidget",
  269. referencedClasses: [],
  270. //>>excludeEnd("ide");
  271. messageSends: []
  272. }),
  273. $globals.HLSplitter);
  274. $core.addMethod(
  275. $core.method({
  276. selector: "secondWidget:",
  277. protocol: "accessing",
  278. fn: function (aWidget){
  279. var self=this,$self=this;
  280. $self["@secondWidget"]=aWidget;
  281. return self;
  282. },
  283. //>>excludeStart("ide", pragmas.excludeIdeData);
  284. args: ["aWidget"],
  285. source: "secondWidget: aWidget\x0a\x09secondWidget := aWidget",
  286. referencedClasses: [],
  287. //>>excludeEnd("ide");
  288. messageSends: []
  289. }),
  290. $globals.HLSplitter);
  291. $core.addMethod(
  292. $core.method({
  293. selector: "setupSplitter",
  294. protocol: "rendering",
  295. fn: function (){
  296. var self=this,$self=this;
  297. return self;
  298. },
  299. //>>excludeStart("ide", pragmas.excludeIdeData);
  300. args: [],
  301. source: "setupSplitter",
  302. referencedClasses: [],
  303. //>>excludeEnd("ide");
  304. messageSends: []
  305. }),
  306. $globals.HLSplitter);
  307. $core.addMethod(
  308. $core.method({
  309. selector: "with:with:",
  310. protocol: "instance creation",
  311. fn: function (aWidget,anotherWidget){
  312. var self=this,$self=this;
  313. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  314. return $core.withContext(function($ctx1) {
  315. //>>excludeEnd("ctx");
  316. var $1;
  317. $1=$self._new();
  318. $recv($1)._firstWidget_(aWidget);
  319. $recv($1)._secondWidget_(anotherWidget);
  320. return $recv($1)._yourself();
  321. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  322. }, function($ctx1) {$ctx1.fill(self,"with:with:",{aWidget:aWidget,anotherWidget:anotherWidget},$globals.HLSplitter.a$cls)});
  323. //>>excludeEnd("ctx");
  324. },
  325. //>>excludeStart("ide", pragmas.excludeIdeData);
  326. args: ["aWidget", "anotherWidget"],
  327. source: "with: aWidget with: anotherWidget\x0a\x09^ self new\x0a \x09\x09firstWidget: aWidget;\x0a secondWidget: anotherWidget;\x0a yourself",
  328. referencedClasses: [],
  329. //>>excludeEnd("ide");
  330. messageSends: ["firstWidget:", "new", "secondWidget:", "yourself"]
  331. }),
  332. $globals.HLSplitter.a$cls);
  333. $core.addClass("HLHorizontalSplitter", $globals.HLSplitter, [], "Helios-Layout");
  334. $core.addMethod(
  335. $core.method({
  336. selector: "cssClass",
  337. protocol: "accessing",
  338. fn: function (){
  339. var self=this,$self=this;
  340. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  341. return $core.withContext(function($ctx1) {
  342. //>>excludeEnd("ctx");
  343. var $1;
  344. $1=(
  345. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  346. $ctx1.supercall = true,
  347. //>>excludeEnd("ctx");
  348. ($globals.HLHorizontalSplitter.superclass||$boot.nilAsClass).fn.prototype._cssClass.apply($self, []));
  349. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  350. $ctx1.supercall = false;
  351. //>>excludeEnd("ctx");;
  352. return $recv($1).__comma(" horizontal");
  353. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  354. }, function($ctx1) {$ctx1.fill(self,"cssClass",{},$globals.HLHorizontalSplitter)});
  355. //>>excludeEnd("ctx");
  356. },
  357. //>>excludeStart("ide", pragmas.excludeIdeData);
  358. args: [],
  359. source: "cssClass\x0a\x09^ super cssClass, ' horizontal'",
  360. referencedClasses: [],
  361. //>>excludeEnd("ide");
  362. messageSends: [",", "cssClass"]
  363. }),
  364. $globals.HLHorizontalSplitter);
  365. $core.addMethod(
  366. $core.method({
  367. selector: "panesCssClass",
  368. protocol: "accessing",
  369. fn: function (){
  370. var self=this,$self=this;
  371. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  372. return $core.withContext(function($ctx1) {
  373. //>>excludeEnd("ctx");
  374. var $1;
  375. $1=(
  376. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  377. $ctx1.supercall = true,
  378. //>>excludeEnd("ctx");
  379. ($globals.HLHorizontalSplitter.superclass||$boot.nilAsClass).fn.prototype._panesCssClass.apply($self, []));
  380. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  381. $ctx1.supercall = false;
  382. //>>excludeEnd("ctx");;
  383. return $recv($1).__comma(" horizontal");
  384. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  385. }, function($ctx1) {$ctx1.fill(self,"panesCssClass",{},$globals.HLHorizontalSplitter)});
  386. //>>excludeEnd("ctx");
  387. },
  388. //>>excludeStart("ide", pragmas.excludeIdeData);
  389. args: [],
  390. source: "panesCssClass\x0a\x09^ super panesCssClass, ' horizontal'",
  391. referencedClasses: [],
  392. //>>excludeEnd("ide");
  393. messageSends: [",", "panesCssClass"]
  394. }),
  395. $globals.HLHorizontalSplitter);
  396. $core.addMethod(
  397. $core.method({
  398. selector: "resize",
  399. protocol: "actions",
  400. fn: function (){
  401. var self=this,$self=this;
  402. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  403. return $core.withContext(function($ctx1) {
  404. //>>excludeEnd("ctx");
  405. $self._resize_($recv($recv($self["@splitter"])._asJQuery())._css_("top"));
  406. return self;
  407. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  408. }, function($ctx1) {$ctx1.fill(self,"resize",{},$globals.HLHorizontalSplitter)});
  409. //>>excludeEnd("ctx");
  410. },
  411. //>>excludeStart("ide", pragmas.excludeIdeData);
  412. args: [],
  413. source: "resize\x0a\x09self resize: (splitter asJQuery css: 'top')",
  414. referencedClasses: [],
  415. //>>excludeEnd("ide");
  416. messageSends: ["resize:", "css:", "asJQuery"]
  417. }),
  418. $globals.HLHorizontalSplitter);
  419. $core.addMethod(
  420. $core.method({
  421. selector: "resize:",
  422. protocol: "actions",
  423. fn: function (anInteger){
  424. var self=this,$self=this;
  425. var container,size,offset,percentage;
  426. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  427. return $core.withContext(function($ctx1) {
  428. //>>excludeEnd("ctx");
  429. var $1,$3,$2,$6,$7,$5,$4,$8,$10,$9,$11,$14,$13,$12;
  430. $1=$recv($self["@firstPane"])._asJQuery();
  431. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  432. $ctx1.sendIdx["asJQuery"]=1;
  433. //>>excludeEnd("ctx");
  434. container=$recv($1)._parent();
  435. $3=$recv($self["@firstPane"])._asJQuery();
  436. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  437. $ctx1.sendIdx["asJQuery"]=2;
  438. //>>excludeEnd("ctx");
  439. $2=$recv($3)._offset();
  440. offset=$recv($2)._top();
  441. size=$recv(container)._height();
  442. $6=size;
  443. $7=$recv(anInteger).__minus(offset);
  444. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  445. $ctx1.sendIdx["-"]=2;
  446. //>>excludeEnd("ctx");
  447. $5=$recv($6).__minus($7);
  448. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  449. $ctx1.sendIdx["-"]=1;
  450. //>>excludeEnd("ctx");
  451. $4=$recv($5).__slash(size);
  452. percentage=$recv($4).__star((100));
  453. percentage=(80)._min_($recv(percentage)._max_((20)));
  454. $8=$recv($self["@firstPane"])._asJQuery();
  455. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  456. $ctx1.sendIdx["asJQuery"]=3;
  457. //>>excludeEnd("ctx");
  458. $10=$recv(percentage)._asString();
  459. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  460. $ctx1.sendIdx["asString"]=1;
  461. //>>excludeEnd("ctx");
  462. $9=$recv($10).__comma("%");
  463. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  464. $ctx1.sendIdx[","]=1;
  465. //>>excludeEnd("ctx");
  466. $recv($8)._css_put_("bottom",$9);
  467. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  468. $ctx1.sendIdx["css:put:"]=1;
  469. //>>excludeEnd("ctx");
  470. $11=$recv($self["@splitter"])._asJQuery();
  471. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  472. $ctx1.sendIdx["asJQuery"]=4;
  473. //>>excludeEnd("ctx");
  474. $14=(100).__minus(percentage);
  475. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  476. $ctx1.sendIdx["-"]=3;
  477. //>>excludeEnd("ctx");
  478. $13=$recv($14)._asString();
  479. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  480. $ctx1.sendIdx["asString"]=2;
  481. //>>excludeEnd("ctx");
  482. $12=$recv($13).__comma("%");
  483. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  484. $ctx1.sendIdx[","]=2;
  485. //>>excludeEnd("ctx");
  486. $recv($11)._css_put_("top",$12);
  487. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  488. $ctx1.sendIdx["css:put:"]=2;
  489. //>>excludeEnd("ctx");
  490. $recv($recv($self["@secondPane"])._asJQuery())._css_put_("top",$recv($recv((100).__minus(percentage))._asString()).__comma("%"));
  491. return self;
  492. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  493. }, function($ctx1) {$ctx1.fill(self,"resize:",{anInteger:anInteger,container:container,size:size,offset:offset,percentage:percentage},$globals.HLHorizontalSplitter)});
  494. //>>excludeEnd("ctx");
  495. },
  496. //>>excludeStart("ide", pragmas.excludeIdeData);
  497. args: ["anInteger"],
  498. source: "resize: anInteger\x0a\x09| container size offset percentage |\x0a \x0a container := firstPane asJQuery parent.\x0a\x09offset := firstPane asJQuery offset top.\x0a size := container height.\x0a\x09\x0a\x09percentage := (size - (anInteger - offset)) / size * 100.\x0a\x09percentage := 80 min: (percentage max: 20).\x0a\x09\x0a firstPane asJQuery css: 'bottom' put: percentage asString, '%'.\x0a\x09\x0a\x09splitter asJQuery css: 'top' put: (100 - percentage) asString, '%'.\x0a\x09secondPane asJQuery css: 'top' put: (100 - percentage) asString, '%'",
  499. referencedClasses: [],
  500. //>>excludeEnd("ide");
  501. messageSends: ["parent", "asJQuery", "top", "offset", "height", "*", "/", "-", "min:", "max:", "css:put:", ",", "asString"]
  502. }),
  503. $globals.HLHorizontalSplitter);
  504. $core.addMethod(
  505. $core.method({
  506. selector: "setupSplitter",
  507. protocol: "rendering",
  508. fn: function (){
  509. var self=this,$self=this;
  510. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  511. return $core.withContext(function($ctx1) {
  512. //>>excludeEnd("ctx");
  513. var $1;
  514. $1=$recv($self["@splitter"])._asJQuery();
  515. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  516. $ctx1.sendIdx["asJQuery"]=1;
  517. //>>excludeEnd("ctx");
  518. $recv($1)._draggable_($globals.HashedCollection._newFromPairs_(["axis","y","containment",$recv($recv($self["@splitter"])._asJQuery())._parent(),"helper","clone","start",(function(e,ui){
  519. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  520. return $core.withContext(function($ctx2) {
  521. //>>excludeEnd("ctx");
  522. return $self._startResizing_($recv(ui)._helper());
  523. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  524. }, function($ctx2) {$ctx2.fillBlock({e:e,ui:ui},$ctx1,1)});
  525. //>>excludeEnd("ctx");
  526. }),"drag",(function(e,ui){
  527. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  528. return $core.withContext(function($ctx2) {
  529. //>>excludeEnd("ctx");
  530. return $self._resize_($recv($recv(ui)._offset())._top());
  531. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  532. }, function($ctx2) {$ctx2.fillBlock({e:e,ui:ui},$ctx1,2)});
  533. //>>excludeEnd("ctx");
  534. })]));
  535. return self;
  536. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  537. }, function($ctx1) {$ctx1.fill(self,"setupSplitter",{},$globals.HLHorizontalSplitter)});
  538. //>>excludeEnd("ctx");
  539. },
  540. //>>excludeStart("ide", pragmas.excludeIdeData);
  541. args: [],
  542. source: "setupSplitter\x0a\x09splitter asJQuery draggable: #{ \x0a \x09'axis' -> 'y'. \x0a 'containment' -> splitter asJQuery parent.\x0a 'helper' -> 'clone'.\x0a 'start' -> [ :e :ui | self startResizing: ui helper ].\x0a 'drag' -> [ :e :ui | self resize: ui offset top ] }",
  543. referencedClasses: [],
  544. //>>excludeEnd("ide");
  545. messageSends: ["draggable:", "asJQuery", "parent", "startResizing:", "helper", "resize:", "top", "offset"]
  546. }),
  547. $globals.HLHorizontalSplitter);
  548. $core.addMethod(
  549. $core.method({
  550. selector: "startResizing:",
  551. protocol: "actions",
  552. fn: function (aSplitter){
  553. var self=this,$self=this;
  554. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  555. return $core.withContext(function($ctx1) {
  556. //>>excludeEnd("ctx");
  557. $recv(aSplitter)._width_($recv($recv($self["@splitter"])._asJQuery())._width());
  558. return self;
  559. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  560. }, function($ctx1) {$ctx1.fill(self,"startResizing:",{aSplitter:aSplitter},$globals.HLHorizontalSplitter)});
  561. //>>excludeEnd("ctx");
  562. },
  563. //>>excludeStart("ide", pragmas.excludeIdeData);
  564. args: ["aSplitter"],
  565. source: "startResizing: aSplitter\x0a\x09aSplitter width: splitter asJQuery width",
  566. referencedClasses: [],
  567. //>>excludeEnd("ide");
  568. messageSends: ["width:", "width", "asJQuery"]
  569. }),
  570. $globals.HLHorizontalSplitter);
  571. $core.addClass("HLVerticalSplitter", $globals.HLSplitter, [], "Helios-Layout");
  572. $core.addMethod(
  573. $core.method({
  574. selector: "cssClass",
  575. protocol: "accessing",
  576. fn: function (){
  577. var self=this,$self=this;
  578. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  579. return $core.withContext(function($ctx1) {
  580. //>>excludeEnd("ctx");
  581. var $1;
  582. $1=(
  583. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  584. $ctx1.supercall = true,
  585. //>>excludeEnd("ctx");
  586. ($globals.HLVerticalSplitter.superclass||$boot.nilAsClass).fn.prototype._cssClass.apply($self, []));
  587. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  588. $ctx1.supercall = false;
  589. //>>excludeEnd("ctx");;
  590. return $recv($1).__comma(" vertical");
  591. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  592. }, function($ctx1) {$ctx1.fill(self,"cssClass",{},$globals.HLVerticalSplitter)});
  593. //>>excludeEnd("ctx");
  594. },
  595. //>>excludeStart("ide", pragmas.excludeIdeData);
  596. args: [],
  597. source: "cssClass\x0a\x09^ super cssClass, ' vertical'",
  598. referencedClasses: [],
  599. //>>excludeEnd("ide");
  600. messageSends: [",", "cssClass"]
  601. }),
  602. $globals.HLVerticalSplitter);
  603. $core.addMethod(
  604. $core.method({
  605. selector: "panesCssClass",
  606. protocol: "accessing",
  607. fn: function (){
  608. var self=this,$self=this;
  609. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  610. return $core.withContext(function($ctx1) {
  611. //>>excludeEnd("ctx");
  612. var $1;
  613. $1=(
  614. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  615. $ctx1.supercall = true,
  616. //>>excludeEnd("ctx");
  617. ($globals.HLVerticalSplitter.superclass||$boot.nilAsClass).fn.prototype._panesCssClass.apply($self, []));
  618. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  619. $ctx1.supercall = false;
  620. //>>excludeEnd("ctx");;
  621. return $recv($1).__comma(" vertical");
  622. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  623. }, function($ctx1) {$ctx1.fill(self,"panesCssClass",{},$globals.HLVerticalSplitter)});
  624. //>>excludeEnd("ctx");
  625. },
  626. //>>excludeStart("ide", pragmas.excludeIdeData);
  627. args: [],
  628. source: "panesCssClass\x0a\x09^ super panesCssClass, ' vertical'",
  629. referencedClasses: [],
  630. //>>excludeEnd("ide");
  631. messageSends: [",", "panesCssClass"]
  632. }),
  633. $globals.HLVerticalSplitter);
  634. $core.addMethod(
  635. $core.method({
  636. selector: "resize",
  637. protocol: "actions",
  638. fn: function (){
  639. var self=this,$self=this;
  640. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  641. return $core.withContext(function($ctx1) {
  642. //>>excludeEnd("ctx");
  643. $self._resize_($recv($recv($self["@splitter"])._asJQuery())._css_("left"));
  644. return self;
  645. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  646. }, function($ctx1) {$ctx1.fill(self,"resize",{},$globals.HLVerticalSplitter)});
  647. //>>excludeEnd("ctx");
  648. },
  649. //>>excludeStart("ide", pragmas.excludeIdeData);
  650. args: [],
  651. source: "resize\x0a\x09self resize: (splitter asJQuery css: 'left')",
  652. referencedClasses: [],
  653. //>>excludeEnd("ide");
  654. messageSends: ["resize:", "css:", "asJQuery"]
  655. }),
  656. $globals.HLVerticalSplitter);
  657. $core.addMethod(
  658. $core.method({
  659. selector: "resize:",
  660. protocol: "actions",
  661. fn: function (anInteger){
  662. var self=this,$self=this;
  663. var container,size,offset,percentage;
  664. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  665. return $core.withContext(function($ctx1) {
  666. //>>excludeEnd("ctx");
  667. var $1,$3,$2,$6,$7,$5,$4,$8,$10,$9,$11,$14,$13,$12;
  668. $1=$recv($self["@firstPane"])._asJQuery();
  669. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  670. $ctx1.sendIdx["asJQuery"]=1;
  671. //>>excludeEnd("ctx");
  672. container=$recv($1)._parent();
  673. $3=$recv($self["@firstPane"])._asJQuery();
  674. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  675. $ctx1.sendIdx["asJQuery"]=2;
  676. //>>excludeEnd("ctx");
  677. $2=$recv($3)._offset();
  678. offset=$recv($2)._left();
  679. size=$recv(container)._width();
  680. $6=size;
  681. $7=$recv(anInteger).__minus(offset);
  682. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  683. $ctx1.sendIdx["-"]=2;
  684. //>>excludeEnd("ctx");
  685. $5=$recv($6).__minus($7);
  686. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  687. $ctx1.sendIdx["-"]=1;
  688. //>>excludeEnd("ctx");
  689. $4=$recv($5).__slash(size);
  690. percentage=$recv($4).__star((100));
  691. percentage=(80)._min_($recv(percentage)._max_((20)));
  692. $8=$recv($self["@firstPane"])._asJQuery();
  693. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  694. $ctx1.sendIdx["asJQuery"]=3;
  695. //>>excludeEnd("ctx");
  696. $10=$recv(percentage)._asString();
  697. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  698. $ctx1.sendIdx["asString"]=1;
  699. //>>excludeEnd("ctx");
  700. $9=$recv($10).__comma("%");
  701. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  702. $ctx1.sendIdx[","]=1;
  703. //>>excludeEnd("ctx");
  704. $recv($8)._css_put_("right",$9);
  705. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  706. $ctx1.sendIdx["css:put:"]=1;
  707. //>>excludeEnd("ctx");
  708. $11=$recv($self["@splitter"])._asJQuery();
  709. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  710. $ctx1.sendIdx["asJQuery"]=4;
  711. //>>excludeEnd("ctx");
  712. $14=(100).__minus(percentage);
  713. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  714. $ctx1.sendIdx["-"]=3;
  715. //>>excludeEnd("ctx");
  716. $13=$recv($14)._asString();
  717. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  718. $ctx1.sendIdx["asString"]=2;
  719. //>>excludeEnd("ctx");
  720. $12=$recv($13).__comma("%");
  721. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  722. $ctx1.sendIdx[","]=2;
  723. //>>excludeEnd("ctx");
  724. $recv($11)._css_put_("left",$12);
  725. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  726. $ctx1.sendIdx["css:put:"]=2;
  727. //>>excludeEnd("ctx");
  728. $recv($recv($self["@secondPane"])._asJQuery())._css_put_("left",$recv($recv((100).__minus(percentage))._asString()).__comma("%"));
  729. return self;
  730. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  731. }, function($ctx1) {$ctx1.fill(self,"resize:",{anInteger:anInteger,container:container,size:size,offset:offset,percentage:percentage},$globals.HLVerticalSplitter)});
  732. //>>excludeEnd("ctx");
  733. },
  734. //>>excludeStart("ide", pragmas.excludeIdeData);
  735. args: ["anInteger"],
  736. source: "resize: anInteger\x0a\x09| container size offset percentage |\x0a \x0a container := firstPane asJQuery parent.\x0a\x09offset := firstPane asJQuery offset left.\x0a size := container width.\x0a\x09\x0a\x09percentage := (size - (anInteger - offset)) / size * 100.\x0a\x09percentage := 80 min: (percentage max: 20).\x0a\x09\x0a firstPane asJQuery css: 'right' put: percentage asString, '%'.\x0a\x09\x0a\x09splitter asJQuery css: 'left' put: (100 - percentage) asString, '%'.\x0a\x09secondPane asJQuery css: 'left' put: (100 - percentage) asString, '%'",
  737. referencedClasses: [],
  738. //>>excludeEnd("ide");
  739. messageSends: ["parent", "asJQuery", "left", "offset", "width", "*", "/", "-", "min:", "max:", "css:put:", ",", "asString"]
  740. }),
  741. $globals.HLVerticalSplitter);
  742. $core.addMethod(
  743. $core.method({
  744. selector: "setupSplitter",
  745. protocol: "rendering",
  746. fn: function (){
  747. var self=this,$self=this;
  748. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  749. return $core.withContext(function($ctx1) {
  750. //>>excludeEnd("ctx");
  751. var $1;
  752. $1=$recv($self["@splitter"])._asJQuery();
  753. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  754. $ctx1.sendIdx["asJQuery"]=1;
  755. //>>excludeEnd("ctx");
  756. $recv($1)._draggable_($globals.HashedCollection._newFromPairs_(["axis","x","containment",$recv($recv($self["@splitter"])._asJQuery())._parent(),"helper","clone","start",(function(e,ui){
  757. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  758. return $core.withContext(function($ctx2) {
  759. //>>excludeEnd("ctx");
  760. return $self._startResizing_($recv(ui)._helper());
  761. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  762. }, function($ctx2) {$ctx2.fillBlock({e:e,ui:ui},$ctx1,1)});
  763. //>>excludeEnd("ctx");
  764. }),"drag",(function(e,ui){
  765. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  766. return $core.withContext(function($ctx2) {
  767. //>>excludeEnd("ctx");
  768. return $self._resize_($recv($recv(ui)._offset())._left());
  769. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  770. }, function($ctx2) {$ctx2.fillBlock({e:e,ui:ui},$ctx1,2)});
  771. //>>excludeEnd("ctx");
  772. })]));
  773. return self;
  774. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  775. }, function($ctx1) {$ctx1.fill(self,"setupSplitter",{},$globals.HLVerticalSplitter)});
  776. //>>excludeEnd("ctx");
  777. },
  778. //>>excludeStart("ide", pragmas.excludeIdeData);
  779. args: [],
  780. source: "setupSplitter\x0a\x09splitter asJQuery draggable: #{ \x0a \x09'axis' -> 'x'. \x0a 'containment' -> splitter asJQuery parent.\x0a 'helper' -> 'clone'.\x0a 'start' -> [ :e :ui | self startResizing: ui helper ].\x0a 'drag' -> [ :e :ui | self resize: (ui offset left) ] }",
  781. referencedClasses: [],
  782. //>>excludeEnd("ide");
  783. messageSends: ["draggable:", "asJQuery", "parent", "startResizing:", "helper", "resize:", "left", "offset"]
  784. }),
  785. $globals.HLVerticalSplitter);
  786. $core.addMethod(
  787. $core.method({
  788. selector: "startResizing:",
  789. protocol: "actions",
  790. fn: function (aSplitter){
  791. var self=this,$self=this;
  792. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  793. return $core.withContext(function($ctx1) {
  794. //>>excludeEnd("ctx");
  795. $recv(aSplitter)._height_($recv($recv($self["@splitter"])._asJQuery())._height());
  796. return self;
  797. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  798. }, function($ctx1) {$ctx1.fill(self,"startResizing:",{aSplitter:aSplitter},$globals.HLVerticalSplitter)});
  799. //>>excludeEnd("ctx");
  800. },
  801. //>>excludeStart("ide", pragmas.excludeIdeData);
  802. args: ["aSplitter"],
  803. source: "startResizing: aSplitter\x0a\x09aSplitter height: splitter asJQuery height",
  804. referencedClasses: [],
  805. //>>excludeEnd("ide");
  806. messageSends: ["height:", "height", "asJQuery"]
  807. }),
  808. $globals.HLVerticalSplitter);
  809. $core.addMethod(
  810. $core.method({
  811. selector: "isHeliosSplitter",
  812. protocol: "*Helios-Layout",
  813. fn: function (){
  814. var self=this,$self=this;
  815. return false;
  816. },
  817. //>>excludeStart("ide", pragmas.excludeIdeData);
  818. args: [],
  819. source: "isHeliosSplitter\x0a\x09^ false",
  820. referencedClasses: [],
  821. //>>excludeEnd("ide");
  822. messageSends: []
  823. }),
  824. $globals.Object);
  825. });