Helios-Layout.js 28 KB

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