Quellcode durchsuchen

setToNext / setToPrev

Herbert Vojčík vor 9 Jahren
Ursprung
Commit
8391284840
2 geänderte Dateien mit 76 neuen und 0 gelöschten Zeilen
  1. 64 0
      src/DOMite.js
  2. 12 0
      src/DOMite.st

+ 64 - 0
src/DOMite.js

@@ -749,6 +749,70 @@ messageSends: ["reference:", "asJSON"]
 }),
 $globals.Domite);
 
+$core.addMethod(
+$core.method({
+selector: "setToNext",
+protocol: 'positioning',
+fn: function (){
+var self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+var $1;
+$1=self._atEnd();
+if(!$core.assert($1)){
+self._reference_($recv(self._reference())._nextSibling());
+};
+return self;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"setToNext",{},$globals.Domite)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "setToNext\x0a\x09self atEnd ifFalse: [\x0a\x09\x09self reference: self reference nextSibling ]",
+referencedClasses: [],
+//>>excludeEnd("ide");
+messageSends: ["ifFalse:", "atEnd", "reference:", "nextSibling", "reference"]
+}),
+$globals.Domite);
+
+$core.addMethod(
+$core.method({
+selector: "setToPrev",
+protocol: 'positioning',
+fn: function (){
+var self=this;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+return $core.withContext(function($ctx1) {
+//>>excludeEnd("ctx");
+var $1,$3,$2,$receiver;
+$1=self._atStart();
+if(!$core.assert($1)){
+$3=self._reference();
+if(($receiver = $3) == null || $receiver.isNil){
+$2=$recv(self._element())._lastChild();
+} else {
+var ref;
+ref=$receiver;
+$2=$recv(ref)._previousSibling();
+};
+self._reference_($2);
+};
+return self;
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
+}, function($ctx1) {$ctx1.fill(self,"setToPrev",{},$globals.Domite)});
+//>>excludeEnd("ctx");
+},
+//>>excludeStart("ide", pragmas.excludeIdeData);
+args: [],
+source: "setToPrev\x0a\x09self atStart ifFalse: [\x0a\x09\x09self reference: (self reference\x0a\x09\x09\x09ifNil: [ self element lastChild ]\x0a\x09\x09\x09ifNotNil: [ :ref | ref previousSibling ])]",
+referencedClasses: [],
+//>>excludeEnd("ide");
+messageSends: ["ifFalse:", "atStart", "reference:", "ifNil:ifNotNil:", "reference", "lastChild", "element", "previousSibling"]
+}),
+$globals.Domite);
+
 
 $core.addMethod(
 $core.method({

+ 12 - 0
src/DOMite.st

@@ -177,6 +177,18 @@ setToBefore
 
 setToEnd
 	self reference: nil asJSON "null"
+!
+
+setToNext
+	self atEnd ifFalse: [
+		self reference: self reference nextSibling ]
+!
+
+setToPrev
+	self atStart ifFalse: [
+		self reference: (self reference
+			ifNil: [ self element lastChild ]
+			ifNotNil: [ :ref | ref previousSibling ])]
 ! !
 
 !Domite methodsFor: 'streaming'!