DOMite.js 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. define("domite/DOMite", ["amber/boot", "amber_core/Kernel-Objects"], function($boot){
  2. var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;
  3. $core.addPackage('DOMite');
  4. $core.packages["DOMite"].innerEval = function (expr) { return eval(expr); };
  5. $core.packages["DOMite"].transport = {"type":"amd","amdNamespace":"domite"};
  6. $core.addClass('Domite', $globals.Object, ['element', 'reference'], 'DOMite');
  7. $core.addMethod(
  8. $core.method({
  9. selector: "clearHere",
  10. protocol: 'deletion',
  11. fn: function (){
  12. var self=this;
  13. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  14. return $core.withContext(function($ctx1) {
  15. //>>excludeEnd("ctx");
  16. var element = self['@element'], child;
  17. while (child = element.firstChild) element.removeChild(child);
  18. self['@reference'] = null;;
  19. return self;
  20. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  21. }, function($ctx1) {$ctx1.fill(self,"clearHere",{},$globals.Domite)});
  22. //>>excludeEnd("ctx");
  23. },
  24. //>>excludeStart("ide", pragmas.excludeIdeData);
  25. args: [],
  26. source: "clearHere\x0a<\x0a\x09var element = self['@element'], child;\x0a\x09while (child = element.firstChild) element.removeChild(child);\x0a\x09self['@reference'] = null;\x0a>",
  27. referencedClasses: [],
  28. //>>excludeEnd("ide");
  29. messageSends: []
  30. }),
  31. $globals.Domite);
  32. $core.addMethod(
  33. $core.method({
  34. selector: "element",
  35. protocol: 'accessing',
  36. fn: function (){
  37. var self=this;
  38. var $1;
  39. $1=self["@element"];
  40. return $1;
  41. },
  42. //>>excludeStart("ide", pragmas.excludeIdeData);
  43. args: [],
  44. source: "element\x0a\x09^ element",
  45. referencedClasses: [],
  46. //>>excludeEnd("ide");
  47. messageSends: []
  48. }),
  49. $globals.Domite);
  50. $core.addMethod(
  51. $core.method({
  52. selector: "element:",
  53. protocol: 'accessing',
  54. fn: function (anObject){
  55. var self=this;
  56. self["@element"]=anObject;
  57. return self;
  58. },
  59. //>>excludeStart("ide", pragmas.excludeIdeData);
  60. args: ["anObject"],
  61. source: "element: anObject\x0a\x09element := anObject",
  62. referencedClasses: [],
  63. //>>excludeEnd("ide");
  64. messageSends: []
  65. }),
  66. $globals.Domite);
  67. $core.addMethod(
  68. $core.method({
  69. selector: "insertDomite:",
  70. protocol: 'insertion',
  71. fn: function (aDomite){
  72. var self=this;
  73. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  74. return $core.withContext(function($ctx1) {
  75. //>>excludeEnd("ctx");
  76. self._insertElement_($recv(aDomite)._element());
  77. return aDomite;
  78. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  79. }, function($ctx1) {$ctx1.fill(self,"insertDomite:",{aDomite:aDomite},$globals.Domite)});
  80. //>>excludeEnd("ctx");
  81. },
  82. //>>excludeStart("ide", pragmas.excludeIdeData);
  83. args: ["aDomite"],
  84. source: "insertDomite: aDomite\x0a\x09self insertElement: aDomite element.\x0a\x09^ aDomite",
  85. referencedClasses: [],
  86. //>>excludeEnd("ide");
  87. messageSends: ["insertElement:", "element"]
  88. }),
  89. $globals.Domite);
  90. $core.addMethod(
  91. $core.method({
  92. selector: "insertElement:",
  93. protocol: 'insertion',
  94. fn: function (aDomElement){
  95. var self=this;
  96. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  97. return $core.withContext(function($ctx1) {
  98. //>>excludeEnd("ctx");
  99. $recv(self._element())._insertBefore_reference_(aDomElement,self._reference());
  100. return self;
  101. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  102. }, function($ctx1) {$ctx1.fill(self,"insertElement:",{aDomElement:aDomElement},$globals.Domite)});
  103. //>>excludeEnd("ctx");
  104. },
  105. //>>excludeStart("ide", pragmas.excludeIdeData);
  106. args: ["aDomElement"],
  107. source: "insertElement: aDomElement\x0a\x09self element\x0a\x09\x09insertBefore: aDomElement\x0a\x09\x09reference: self reference",
  108. referencedClasses: [],
  109. //>>excludeEnd("ide");
  110. messageSends: ["insertBefore:reference:", "element", "reference"]
  111. }),
  112. $globals.Domite);
  113. $core.addMethod(
  114. $core.method({
  115. selector: "insertString:",
  116. protocol: 'insertion',
  117. fn: function (aString){
  118. var self=this;
  119. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  120. return $core.withContext(function($ctx1) {
  121. //>>excludeEnd("ctx");
  122. self._insertElement_($recv(document)._createTextNode_($recv(aString)._asString()));
  123. return self;
  124. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  125. }, function($ctx1) {$ctx1.fill(self,"insertString:",{aString:aString},$globals.Domite)});
  126. //>>excludeEnd("ctx");
  127. },
  128. //>>excludeStart("ide", pragmas.excludeIdeData);
  129. args: ["aString"],
  130. source: "insertString: aString\x0a\x09self insertElement: (\x0a\x09\x09document createTextNode: aString asString )",
  131. referencedClasses: [],
  132. //>>excludeEnd("ide");
  133. messageSends: ["insertElement:", "createTextNode:", "asString"]
  134. }),
  135. $globals.Domite);
  136. $core.addMethod(
  137. $core.method({
  138. selector: "reference",
  139. protocol: 'accessing',
  140. fn: function (){
  141. var self=this;
  142. var $1;
  143. $1=self["@reference"];
  144. return $1;
  145. },
  146. //>>excludeStart("ide", pragmas.excludeIdeData);
  147. args: [],
  148. source: "reference\x0a\x09^ reference",
  149. referencedClasses: [],
  150. //>>excludeEnd("ide");
  151. messageSends: []
  152. }),
  153. $globals.Domite);
  154. $core.addMethod(
  155. $core.method({
  156. selector: "reference:",
  157. protocol: 'accessing',
  158. fn: function (anObject){
  159. var self=this;
  160. self["@reference"]=anObject;
  161. return self;
  162. },
  163. //>>excludeStart("ide", pragmas.excludeIdeData);
  164. args: ["anObject"],
  165. source: "reference: anObject\x0a\x09reference := anObject",
  166. referencedClasses: [],
  167. //>>excludeEnd("ide");
  168. messageSends: []
  169. }),
  170. $globals.Domite);
  171. $core.addMethod(
  172. $core.method({
  173. selector: "fromElement:",
  174. protocol: 'instance creation',
  175. fn: function (aDomElement){
  176. var self=this;
  177. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  178. return $core.withContext(function($ctx1) {
  179. //>>excludeEnd("ctx");
  180. var $2,$3,$1;
  181. $2=self._new();
  182. $recv($2)._element_(aDomElement);
  183. $3=$recv($2)._yourself();
  184. $1=$3;
  185. return $1;
  186. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  187. }, function($ctx1) {$ctx1.fill(self,"fromElement:",{aDomElement:aDomElement},$globals.Domite.klass)});
  188. //>>excludeEnd("ctx");
  189. },
  190. //>>excludeStart("ide", pragmas.excludeIdeData);
  191. args: ["aDomElement"],
  192. source: "fromElement: aDomElement\x0a\x09^ self new\x0a\x09\x09element: aDomElement;\x0a\x09\x09yourself",
  193. referencedClasses: [],
  194. //>>excludeEnd("ide");
  195. messageSends: ["element:", "new", "yourself"]
  196. }),
  197. $globals.Domite.klass);
  198. $core.addMethod(
  199. $core.method({
  200. selector: "fromElement:cursorBefore:",
  201. protocol: 'instance creation',
  202. fn: function (aDomElement,anotherDomElement){
  203. var self=this;
  204. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  205. return $core.withContext(function($ctx1) {
  206. //>>excludeEnd("ctx");
  207. var $2,$3,$1;
  208. $2=self._new();
  209. $recv($2)._element_(aDomElement);
  210. $recv($2)._referenceElement_(anotherDomElement);
  211. $3=$recv($2)._yourself();
  212. $1=$3;
  213. return $1;
  214. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  215. }, function($ctx1) {$ctx1.fill(self,"fromElement:cursorBefore:",{aDomElement:aDomElement,anotherDomElement:anotherDomElement},$globals.Domite.klass)});
  216. //>>excludeEnd("ctx");
  217. },
  218. //>>excludeStart("ide", pragmas.excludeIdeData);
  219. args: ["aDomElement", "anotherDomElement"],
  220. source: "fromElement: aDomElement cursorBefore: anotherDomElement\x0a\x09^ self new\x0a\x09\x09element: aDomElement;\x0a\x09\x09referenceElement: anotherDomElement;\x0a\x09\x09yourself",
  221. referencedClasses: [],
  222. //>>excludeEnd("ide");
  223. messageSends: ["element:", "new", "referenceElement:", "yourself"]
  224. }),
  225. $globals.Domite.klass);
  226. $core.addMethod(
  227. $core.method({
  228. selector: "newElement:",
  229. protocol: 'instance creation',
  230. fn: function (aString){
  231. var self=this;
  232. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  233. return $core.withContext(function($ctx1) {
  234. //>>excludeEnd("ctx");
  235. var $1;
  236. $1=self._fromElement_($recv(document)._createElement_(aString));
  237. return $1;
  238. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  239. }, function($ctx1) {$ctx1.fill(self,"newElement:",{aString:aString},$globals.Domite.klass)});
  240. //>>excludeEnd("ctx");
  241. },
  242. //>>excludeStart("ide", pragmas.excludeIdeData);
  243. args: ["aString"],
  244. source: "newElement: aString\x0a\x09^ self fromElement: (document createElement: aString)",
  245. referencedClasses: [],
  246. //>>excludeEnd("ide");
  247. messageSends: ["fromElement:", "createElement:"]
  248. }),
  249. $globals.Domite.klass);
  250. $core.addMethod(
  251. $core.method({
  252. selector: "open",
  253. protocol: 'instance creation',
  254. fn: function (){
  255. var self=this;
  256. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  257. return $core.withContext(function($ctx1) {
  258. //>>excludeEnd("ctx");
  259. var $1;
  260. $1=self._fromElement_($recv(document)._createDocumentFragment());
  261. return $1;
  262. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  263. }, function($ctx1) {$ctx1.fill(self,"open",{},$globals.Domite.klass)});
  264. //>>excludeEnd("ctx");
  265. },
  266. //>>excludeStart("ide", pragmas.excludeIdeData);
  267. args: [],
  268. source: "open\x0a\x09^ self fromElement: document createDocumentFragment",
  269. referencedClasses: [],
  270. //>>excludeEnd("ide");
  271. messageSends: ["fromElement:", "createDocumentFragment"]
  272. }),
  273. $globals.Domite.klass);
  274. });