Helios-Layout.js 28 KB

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