Helios-Layout.deploy.js 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  1. smalltalk.addPackage('Helios-Layout', {});
  2. smalltalk.addClass('HLContainer', smalltalk.Widget, ['splitter'], 'Helios-Layout');
  3. smalltalk.addMethod(
  4. "_renderOn_",
  5. smalltalk.method({
  6. selector: "renderOn:",
  7. fn: function (html){
  8. var self=this;
  9. var $1,$2;
  10. $1=smalltalk.send(html,"_div",[]);
  11. smalltalk.send($1,"_id_",["container"]);
  12. $2=smalltalk.send($1,"_with_",[smalltalk.send(self,"_splitter",[])]);
  13. smalltalk.send(smalltalk.send(window,"_jQuery_",[window]),"_bind_do_",["resize",(function(){
  14. return smalltalk.send(smalltalk.send(self,"_splitter",[]),"_resize",[]);
  15. })]);
  16. return self}
  17. }),
  18. smalltalk.HLContainer);
  19. smalltalk.addMethod(
  20. "_splitter",
  21. smalltalk.method({
  22. selector: "splitter",
  23. fn: function (){
  24. var self=this;
  25. return self["@splitter"];
  26. }
  27. }),
  28. smalltalk.HLContainer);
  29. smalltalk.addMethod(
  30. "_splitter_",
  31. smalltalk.method({
  32. selector: "splitter:",
  33. fn: function (aSplitter){
  34. var self=this;
  35. self["@splitter"]=aSplitter;
  36. return self}
  37. }),
  38. smalltalk.HLContainer);
  39. smalltalk.addMethod(
  40. "_with_",
  41. smalltalk.method({
  42. selector: "with:",
  43. fn: function (aSplitter){
  44. var self=this;
  45. var $2,$3,$1;
  46. $2=smalltalk.send(self,"_new",[]);
  47. smalltalk.send($2,"_splitter_",[aSplitter]);
  48. $3=smalltalk.send($2,"_yourself",[]);
  49. $1=$3;
  50. return $1;
  51. }
  52. }),
  53. smalltalk.HLContainer.klass);
  54. smalltalk.addClass('HLPane', smalltalk.Widget, [], 'Helios-Layout');
  55. smalltalk.addClass('HLHorizontalPane', smalltalk.HLPane, [], 'Helios-Layout');
  56. smalltalk.addClass('HLVerticalPane', smalltalk.HLPane, [], 'Helios-Layout');
  57. smalltalk.addClass('HLSplitter', smalltalk.Widget, ['firstWidget', 'secondWidget', 'firstPane', 'secondPane', 'splitter'], 'Helios-Layout');
  58. smalltalk.addMethod(
  59. "_cssClass",
  60. smalltalk.method({
  61. selector: "cssClass",
  62. fn: function (){
  63. var self=this;
  64. return "splitter";
  65. }
  66. }),
  67. smalltalk.HLSplitter);
  68. smalltalk.addMethod(
  69. "_firstWidget",
  70. smalltalk.method({
  71. selector: "firstWidget",
  72. fn: function (){
  73. var self=this;
  74. return self["@firstWidget"];
  75. }
  76. }),
  77. smalltalk.HLSplitter);
  78. smalltalk.addMethod(
  79. "_firstWidget_",
  80. smalltalk.method({
  81. selector: "firstWidget:",
  82. fn: function (aWidget){
  83. var self=this;
  84. self["@firstWidget"]=aWidget;
  85. return self}
  86. }),
  87. smalltalk.HLSplitter);
  88. smalltalk.addMethod(
  89. "_isHeliosSplitter",
  90. smalltalk.method({
  91. selector: "isHeliosSplitter",
  92. fn: function (){
  93. var self=this;
  94. return true;
  95. }
  96. }),
  97. smalltalk.HLSplitter);
  98. smalltalk.addMethod(
  99. "_panesCssClass",
  100. smalltalk.method({
  101. selector: "panesCssClass",
  102. fn: function (){
  103. var self=this;
  104. return "panes";
  105. }
  106. }),
  107. smalltalk.HLSplitter);
  108. smalltalk.addMethod(
  109. "_renderOn_",
  110. smalltalk.method({
  111. selector: "renderOn:",
  112. fn: function (html){
  113. var self=this;
  114. var $1,$3,$4,$5,$6,$2,$7;
  115. $1=smalltalk.send(html,"_div",[]);
  116. smalltalk.send($1,"_class_",[smalltalk.send(self,"_panesCssClass",[])]);
  117. $2=smalltalk.send($1,"_with_",[(function(){
  118. $3=smalltalk.send(html,"_div",[]);
  119. smalltalk.send($3,"_class_",["pane"]);
  120. $4=smalltalk.send($3,"_with_",[smalltalk.send(self,"_firstWidget",[])]);
  121. self["@firstPane"]=$4;
  122. self["@firstPane"];
  123. self["@splitter"]=smalltalk.send(smalltalk.send(html,"_div",[]),"_class_",[smalltalk.send(self,"_cssClass",[])]);
  124. self["@splitter"];
  125. $5=smalltalk.send(html,"_div",[]);
  126. smalltalk.send($5,"_class_",["pane"]);
  127. $6=smalltalk.send($5,"_with_",[smalltalk.send(self,"_secondWidget",[])]);
  128. self["@secondPane"]=$6;
  129. return self["@secondPane"];
  130. })]);
  131. smalltalk.send(self,"_setupSplitter",[]);
  132. $7=smalltalk.send(self,"_resize",[]);
  133. return self}
  134. }),
  135. smalltalk.HLSplitter);
  136. smalltalk.addMethod(
  137. "_resize",
  138. smalltalk.method({
  139. selector: "resize",
  140. fn: function (){
  141. var self=this;
  142. var $1,$2;
  143. $1=smalltalk.send(smalltalk.send(self,"_firstWidget",[]),"_isHeliosSplitter",[]);
  144. if(smalltalk.assert($1)){
  145. smalltalk.send(smalltalk.send(self,"_firstWidget",[]),"_resize",[]);
  146. };
  147. $2=smalltalk.send(smalltalk.send(self,"_secondWidget",[]),"_isHeliosSplitter",[]);
  148. if(smalltalk.assert($2)){
  149. smalltalk.send(smalltalk.send(self,"_secondWidget",[]),"_resize",[]);
  150. };
  151. return self}
  152. }),
  153. smalltalk.HLSplitter);
  154. smalltalk.addMethod(
  155. "_secondWidget",
  156. smalltalk.method({
  157. selector: "secondWidget",
  158. fn: function (){
  159. var self=this;
  160. return self["@secondWidget"];
  161. }
  162. }),
  163. smalltalk.HLSplitter);
  164. smalltalk.addMethod(
  165. "_secondWidget_",
  166. smalltalk.method({
  167. selector: "secondWidget:",
  168. fn: function (aWidget){
  169. var self=this;
  170. self["@secondWidget"]=aWidget;
  171. return self}
  172. }),
  173. smalltalk.HLSplitter);
  174. smalltalk.addMethod(
  175. "_setupSplitter",
  176. smalltalk.method({
  177. selector: "setupSplitter",
  178. fn: function (){
  179. var self=this;
  180. return self}
  181. }),
  182. smalltalk.HLSplitter);
  183. smalltalk.addMethod(
  184. "_with_with_",
  185. smalltalk.method({
  186. selector: "with:with:",
  187. fn: function (aWidget,anotherWidget){
  188. var self=this;
  189. var $2,$3,$1;
  190. $2=smalltalk.send(self,"_new",[]);
  191. smalltalk.send($2,"_firstWidget_",[aWidget]);
  192. smalltalk.send($2,"_secondWidget_",[anotherWidget]);
  193. $3=smalltalk.send($2,"_yourself",[]);
  194. $1=$3;
  195. return $1;
  196. }
  197. }),
  198. smalltalk.HLSplitter.klass);
  199. smalltalk.addClass('HLHorizontalSplitter', smalltalk.HLSplitter, [], 'Helios-Layout');
  200. smalltalk.addMethod(
  201. "_cssClass",
  202. smalltalk.method({
  203. selector: "cssClass",
  204. fn: function (){
  205. var self=this;
  206. var $1;
  207. $1=smalltalk.send(smalltalk.send(self,"_cssClass",[],smalltalk.HLSplitter),"__comma",[" horizontal"]);
  208. return $1;
  209. }
  210. }),
  211. smalltalk.HLHorizontalSplitter);
  212. smalltalk.addMethod(
  213. "_panesCssClass",
  214. smalltalk.method({
  215. selector: "panesCssClass",
  216. fn: function (){
  217. var self=this;
  218. var $1;
  219. $1=smalltalk.send(smalltalk.send(self,"_panesCssClass",[],smalltalk.HLSplitter),"__comma",[" horizontal"]);
  220. return $1;
  221. }
  222. }),
  223. smalltalk.HLHorizontalSplitter);
  224. smalltalk.addMethod(
  225. "_resize",
  226. smalltalk.method({
  227. selector: "resize",
  228. fn: function (){
  229. var self=this;
  230. var container;
  231. var position;
  232. container=smalltalk.send(smalltalk.send(self["@firstPane"],"_asJQuery",[]),"_parent",[]);
  233. position=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self["@splitter"],"_asJQuery",[]),"_offset",[]),"_top",[]),"__minus",[smalltalk.send(smalltalk.send(container,"_offset",[]),"_top",[])]);
  234. smalltalk.send(smalltalk.send(self["@firstPane"],"_asJQuery",[]),"_height_",[smalltalk.send(smalltalk.send(position,"_min_",[smalltalk.send(smalltalk.send(container,"_height",[]),"__minus",[(100)])]),"_max_",[(100)])]);
  235. smalltalk.send(smalltalk.send(self["@secondPane"],"_asJQuery",[]),"_height_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(container,"_height",[]),"__minus",[position]),"_min_",[smalltalk.send(smalltalk.send(container,"_height",[]),"__minus",[(100)])]),"_max_",[(100)]),"__minus",[(6)])]);
  236. smalltalk.send(smalltalk.send(self["@splitter"],"_asJQuery",[]),"_css_value_",["top",(0)]);
  237. smalltalk.send(self,"_resize",[],smalltalk.HLSplitter);
  238. return self}
  239. }),
  240. smalltalk.HLHorizontalSplitter);
  241. smalltalk.addMethod(
  242. "_setupSplitter",
  243. smalltalk.method({
  244. selector: "setupSplitter",
  245. fn: function (){
  246. var self=this;
  247. smalltalk.send(smalltalk.send(self["@splitter"],"_asJQuery",[]),"_draggable_",[smalltalk.HashedCollection._fromPairs_([smalltalk.send("axis","__minus_gt",["y"]),smalltalk.send("stop","__minus_gt",[(function(){
  248. return smalltalk.send(self,"_resize",[]);
  249. })])])]);
  250. return self}
  251. }),
  252. smalltalk.HLHorizontalSplitter);
  253. smalltalk.addClass('HLVerticalSplitter', smalltalk.HLSplitter, [], 'Helios-Layout');
  254. smalltalk.addMethod(
  255. "_cssClass",
  256. smalltalk.method({
  257. selector: "cssClass",
  258. fn: function (){
  259. var self=this;
  260. var $1;
  261. $1=smalltalk.send(smalltalk.send(self,"_cssClass",[],smalltalk.HLSplitter),"__comma",[" vertical"]);
  262. return $1;
  263. }
  264. }),
  265. smalltalk.HLVerticalSplitter);
  266. smalltalk.addMethod(
  267. "_panesCssClass",
  268. smalltalk.method({
  269. selector: "panesCssClass",
  270. fn: function (){
  271. var self=this;
  272. var $1;
  273. $1=smalltalk.send(smalltalk.send(self,"_panesCssClass",[],smalltalk.HLSplitter),"__comma",[" vertical"]);
  274. return $1;
  275. }
  276. }),
  277. smalltalk.HLVerticalSplitter);
  278. smalltalk.addMethod(
  279. "_resize",
  280. smalltalk.method({
  281. selector: "resize",
  282. fn: function (){
  283. var self=this;
  284. var container;
  285. var position;
  286. container=smalltalk.send(smalltalk.send(self["@firstPane"],"_asJQuery",[]),"_parent",[]);
  287. position=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self["@splitter"],"_asJQuery",[]),"_offset",[]),"_left",[]),"__minus",[smalltalk.send(smalltalk.send(container,"_offset",[]),"_left",[])]);
  288. smalltalk.send(smalltalk.send(self["@firstPane"],"_asJQuery",[]),"_width_",[smalltalk.send(smalltalk.send(position,"_min_",[smalltalk.send(smalltalk.send(container,"_width",[]),"__minus",[(100)])]),"_max_",[(100)])]);
  289. smalltalk.send(smalltalk.send(self["@secondPane"],"_asJQuery",[]),"_width_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(container,"_width",[]),"__minus",[position]),"_min_",[smalltalk.send(smalltalk.send(container,"_width",[]),"__minus",[(100)])]),"_max_",[(100)]),"__minus",[(6)])]);
  290. smalltalk.send(smalltalk.send(self["@splitter"],"_asJQuery",[]),"_css_value_",["left",(0)]);
  291. smalltalk.send(self,"_resize",[],smalltalk.HLSplitter);
  292. return self}
  293. }),
  294. smalltalk.HLVerticalSplitter);
  295. smalltalk.addMethod(
  296. "_setupSplitter",
  297. smalltalk.method({
  298. selector: "setupSplitter",
  299. fn: function (){
  300. var self=this;
  301. smalltalk.send(smalltalk.send(self["@splitter"],"_asJQuery",[]),"_draggable_",[smalltalk.HashedCollection._fromPairs_([smalltalk.send("axis","__minus_gt",["x"]),smalltalk.send("stop","__minus_gt",[(function(){
  302. return smalltalk.send(self,"_resize",[]);
  303. })])])]);
  304. return self}
  305. }),
  306. smalltalk.HLVerticalSplitter);
  307. smalltalk.addMethod(
  308. "_isHeliosSplitter",
  309. smalltalk.method({
  310. selector: "isHeliosSplitter",
  311. fn: function (){
  312. var self=this;
  313. return false;
  314. }
  315. }),
  316. smalltalk.Object);