1 Clazz.declarePackage ("javax.swing.text");
\r
2 Clazz.load (null, "javax.swing.text.ElementIterator", ["java.lang.CloneNotSupportedException", "$.InternalError", "java.util.Stack"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
5 this.elementStack = null;
\r
6 if (!Clazz.isClassDefined ("javax.swing.text.ElementIterator.StackItem")) {
\r
7 javax.swing.text.ElementIterator.$ElementIterator$StackItem$ ();
\r
9 Clazz.instantialize (this, arguments);
\r
10 }, javax.swing.text, "ElementIterator", null, Cloneable);
\r
11 Clazz.makeConstructor (c$,
\r
12 function (document) {
\r
13 this.root = document.getDefaultRootElement ();
\r
14 }, "javax.swing.text.Document");
\r
15 Clazz.makeConstructor (c$,
\r
18 }, "javax.swing.text.Element");
\r
19 Clazz.defineMethod (c$, "clone",
\r
22 var it = new javax.swing.text.ElementIterator (this.root);
\r
23 if (this.elementStack != null) {
\r
24 it.elementStack = new java.util.Stack ();
\r
25 for (var i = 0; i < this.elementStack.size (); i++) {
\r
26 var item = this.elementStack.elementAt (i);
\r
27 var clonee = item.clone ();
\r
28 it.elementStack.push (clonee);
\r
32 if (Clazz.exceptionOf (e, CloneNotSupportedException)) {
\r
33 throw new InternalError ();
\r
39 Clazz.defineMethod (c$, "first",
\r
41 if (this.root == null) {
\r
43 }this.elementStack = new java.util.Stack ();
\r
44 if (this.root.getElementCount () != 0) {
\r
45 this.elementStack.push (Clazz.innerTypeInstance (javax.swing.text.ElementIterator.StackItem, this, null, this.root));
\r
48 Clazz.defineMethod (c$, "depth",
\r
50 if (this.elementStack == null) {
\r
52 }return this.elementStack.size ();
\r
54 Clazz.defineMethod (c$, "current",
\r
56 if (this.elementStack == null) {
\r
57 return this.first ();
\r
58 }if (!this.elementStack.empty ()) {
\r
59 var item = this.elementStack.peek ();
\r
60 var elem = item.getElement ();
\r
61 var index = item.getIndex ();
\r
64 }return elem.getElement (index);
\r
67 Clazz.defineMethod (c$, "next",
\r
69 if (this.elementStack == null) {
\r
70 return this.first ();
\r
71 }if (this.elementStack.isEmpty ()) {
\r
73 }var item = this.elementStack.peek ();
\r
74 var elem = item.getElement ();
\r
75 var index = item.getIndex ();
\r
76 if (index + 1 < elem.getElementCount ()) {
\r
77 var child = elem.getElement (index + 1);
\r
78 if (child.isLeaf ()) {
\r
79 item.incrementIndex ();
\r
81 this.elementStack.push (Clazz.innerTypeInstance (javax.swing.text.ElementIterator.StackItem, this, null, child));
\r
84 this.elementStack.pop ();
\r
85 if (!this.elementStack.isEmpty ()) {
\r
86 var top = this.elementStack.peek ();
\r
87 top.incrementIndex ();
\r
88 return this.next ();
\r
91 Clazz.defineMethod (c$, "previous",
\r
94 if (this.elementStack == null || (stackSize = this.elementStack.size ()) == 0) {
\r
96 }var item = this.elementStack.peek ();
\r
97 var elem = item.getElement ();
\r
98 var index = item.getIndex ();
\r
100 return this.getDeepestLeaf (elem.getElement (--index));
\r
101 } else if (index == 0) {
\r
103 } else if (index == -1) {
\r
104 if (stackSize == 1) {
\r
106 }var top = this.elementStack.pop ();
\r
107 item = this.elementStack.peek ();
\r
108 this.elementStack.push (top);
\r
109 elem = item.getElement ();
\r
110 index = item.getIndex ();
\r
111 return ((index == -1) ? elem : this.getDeepestLeaf (elem.getElement (index)));
\r
114 Clazz.defineMethod (c$, "getDeepestLeaf",
\r
115 function (parent) {
\r
116 if (parent.isLeaf ()) {
\r
118 }var childCount = parent.getElementCount ();
\r
119 if (childCount == 0) {
\r
121 }return this.getDeepestLeaf (parent.getElement (childCount - 1));
\r
122 }, "javax.swing.text.Element");
\r
123 c$.$ElementIterator$StackItem$ = function () {
\r
124 Clazz.pu$h(self.c$);
\r
125 c$ = Clazz.decorateAsClass (function () {
\r
126 Clazz.prepareCallback (this, arguments);
\r
128 this.childIndex = 0;
\r
129 Clazz.instantialize (this, arguments);
\r
130 }, javax.swing.text.ElementIterator, "StackItem", null, Cloneable);
\r
131 Clazz.makeConstructor (c$,
\r
134 this.childIndex = -1;
\r
135 }, "javax.swing.text.Element");
\r
136 Clazz.defineMethod (c$, "incrementIndex",
\r
140 Clazz.defineMethod (c$, "getElement",
\r
144 Clazz.defineMethod (c$, "getIndex",
\r
146 return this.childIndex;
\r