123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- Smalltalk createPackage: 'DOMite'!
- Object subclass: #Domite
- instanceVariableNames: 'element reference'
- package: 'DOMite'!
- !Domite methodsFor: 'accessing'!
- element
- ^ element
- !
- element: anObject
- element := anObject
- !
- reference
- ^ reference
- !
- reference: anObject
- reference := anObject
- ! !
- !Domite methodsFor: 'deletion'!
- clearHere
- <
- var element = self['@element'], child;
- while (child = element.firstChild) element.removeChild(child);
- self['@reference'] = null;
- >
- ! !
- !Domite methodsFor: 'insertion'!
- insertDomite: aDomite
- self insertElement: aDomite element.
- ^ aDomite
- !
- insertElement: aDomElement
- self element
- insertBefore: aDomElement
- reference: self reference
- !
- insertString: aString
- self insertElement: (
- 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
- ^ self new
- element: aDomElement;
- yourself
- !
- fromElement: aDomElement cursorBefore: anotherDomElement
- ^ self new
- element: aDomElement;
- referenceElement: anotherDomElement;
- yourself
- !
- newElement: aString
- ^ self fromElement: (document createElement: aString)
- !
- open
- ^ self fromElement: document createDocumentFragment
- ! !
|