DOMite.st 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. Smalltalk createPackage: 'DOMite'!
  2. Object subclass: #Domite
  3. instanceVariableNames: 'element reference'
  4. package: 'DOMite'!
  5. !Domite methodsFor: 'accessing'!
  6. element
  7. ^ element
  8. !
  9. element: anObject
  10. element := anObject
  11. !
  12. reference
  13. ^ reference
  14. !
  15. reference: anObject
  16. reference := anObject
  17. ! !
  18. !Domite methodsFor: 'deletion'!
  19. clearHere
  20. <
  21. var element = self['@element'], child;
  22. while (child = element.firstChild) element.removeChild(child);
  23. self['@reference'] = null;
  24. >
  25. ! !
  26. !Domite methodsFor: 'insertion'!
  27. insertDomite: aDomite
  28. self insertElement: aDomite element.
  29. ^ aDomite
  30. !
  31. insertElement: aDomElement
  32. self element
  33. insertBefore: aDomElement
  34. reference: self reference
  35. !
  36. insertString: aString
  37. self insertElement: (
  38. document createTextNode: aString asString )
  39. ! !
  40. !Domite class methodsFor: 'instance creation'!
  41. fromElement: aDomElement
  42. ^ self new
  43. element: aDomElement;
  44. yourself
  45. !
  46. fromElement: aDomElement cursorBefore: anotherDomElement
  47. ^ self new
  48. element: aDomElement;
  49. referenceElement: anotherDomElement;
  50. yourself
  51. !
  52. newElement: aString
  53. ^ self fromElement: (document createElement: aString)
  54. !
  55. open
  56. ^ self fromElement: document createDocumentFragment
  57. ! !