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