Browse Source

moving the cursor

Herbert Vojčík 9 years ago
parent
commit
5f66fad620
2 changed files with 162 additions and 0 deletions
  1. 134 0
      src/DOMite.js
  2. 28 0
      src/DOMite.st

+ 134 - 0
src/DOMite.js

@@ -5,6 +5,31 @@ $core.packages["DOMite"].innerEval = function (expr) { return eval(expr); };
 $core.packages["DOMite"].transport = {"type":"amd","amdNamespace":"domite"};
 
 $core.addClass('Domite', $globals.Object, ['element', 'reference'], 'DOMite');
+$core.addMethod(
+$core.method({
+selector: "canSeekOutOfHere",
+protocol: 'testing',
+fn: function (){
+var self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+var $1;
+$1=$recv($recv(self._element())._parentNode())._notNil();
+return $1;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"canSeekOutOfHere",{},$globals.Domite)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "canSeekOutOfHere\x0a\x09^ self element parentNode notNil",
+referencedClasses: [],
+//>>excludeEnd("ide");
+messageSends: ["notNil", "parentNode", "element"]
+}),
+$globals.Domite);
+
 $core.addMethod(
 $core.method({
 selector: "clearHere",
@@ -182,6 +207,115 @@ messageSends: []
 }),
 $globals.Domite);
 
+$core.addMethod(
+$core.method({
+selector: "seekAfterHere",
+protocol: 'navigation',
+fn: function (){
+var self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+var $2,$1,$3;
+$2=self._element();
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+$ctx1.sendIdx["element"]=1;
+//>>excludeEnd("ctx");
+$1=$recv($2)._nextSibling();
+self._reference_($1);
+$3=self._element_($recv(self._element())._parentNode());
+return self;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"seekAfterHere",{},$globals.Domite)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "seekAfterHere\x0a\x09self\x0a\x09\x09reference: self element nextSibling;\x0a\x09\x09element: self element parentNode",
+referencedClasses: [],
+//>>excludeEnd("ide");
+messageSends: ["reference:", "nextSibling", "element", "element:", "parentNode"]
+}),
+$globals.Domite);
+
+$core.addMethod(
+$core.method({
+selector: "seekBeforeHere",
+protocol: 'navigation',
+fn: function (){
+var self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+var $1,$2;
+$1=self._element();
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+$ctx1.sendIdx["element"]=1;
+//>>excludeEnd("ctx");
+self._reference_($1);
+$2=self._element_($recv(self._element())._parentNode());
+return self;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"seekBeforeHere",{},$globals.Domite)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "seekBeforeHere\x0a\x09self\x0a\x09\x09reference: self element;\x0a\x09\x09element: self element parentNode",
+referencedClasses: [],
+//>>excludeEnd("ide");
+messageSends: ["reference:", "element", "element:", "parentNode"]
+}),
+$globals.Domite);
+
+$core.addMethod(
+$core.method({
+selector: "seekHereEnd",
+protocol: 'navigation',
+fn: function (){
+var self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+self._reference_(nil._asJSON());
+return self;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"seekHereEnd",{},$globals.Domite)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "seekHereEnd\x0a\x09self reference: nil asJSON \x22null\x22",
+referencedClasses: [],
+//>>excludeEnd("ide");
+messageSends: ["reference:", "asJSON"]
+}),
+$globals.Domite);
+
+$core.addMethod(
+$core.method({
+selector: "seekHereStart",
+protocol: 'navigation',
+fn: function (){
+var self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+self._reference_($recv(self._element())._firstChild());
+return self;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"seekHereStart",{},$globals.Domite)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "seekHereStart\x0a\x09self reference: self element firstChild",
+referencedClasses: [],
+//>>excludeEnd("ide");
+messageSends: ["reference:", "firstChild", "element"]
+}),
+$globals.Domite);
+
 
 $core.addMethod(
 $core.method({

+ 28 - 0
src/DOMite.st

@@ -49,6 +49,34 @@ insertString: aString
 		document createTextNode: aString asString )
 ! !
 
+!Domite methodsFor: 'navigation'!
+
+seekAfterHere
+	self
+		reference: self element nextSibling;
+		element: self element parentNode
+!
+
+seekBeforeHere
+	self
+		reference: self element;
+		element: self element parentNode
+!
+
+seekHereEnd
+	self reference: nil asJSON "null"
+!
+
+seekHereStart
+	self reference: self element firstChild
+! !
+
+!Domite methodsFor: 'testing'!
+
+canSeekOutOfHere
+	^ self element parentNode notNil
+! !
+
 !Domite class methodsFor: 'instance creation'!
 
 fromElement: aDomElement