065212cdee21dd99e2e857b9e0f8c295023413e4
[jalviewjs.git] / site / swingjs / j2s / javax / swing / text / FlowView.js
1 Clazz.declarePackage ("javax.swing.text");
2 Clazz.load (["javax.swing.text.BoxView", "$.CompositeView"], "javax.swing.text.FlowView", ["java.util.Vector", "javax.swing.SizeRequirements", "javax.swing.text.ComponentView", "$.LabelView", "$.Position", "$.TabExpander", "$.TabableView"], function () {
3 c$ = Clazz.decorateAsClass (function () {
4 this.layoutSpan = 0;
5 this.layoutPool = null;
6 this.strategy = null;
7 Clazz.instantialize (this, arguments);
8 }, javax.swing.text, "FlowView", javax.swing.text.BoxView);
9 Clazz.makeConstructor (c$, 
10 function (elem, axis) {
11 Clazz.superConstructor (this, javax.swing.text.FlowView, [elem, axis]);
12 this.layoutSpan = 2147483647;
13 this.strategy =  new javax.swing.text.FlowView.FlowStrategy ();
14 }, "javax.swing.text.Element,~N");
15 Clazz.defineMethod (c$, "getFlowAxis", 
16 function () {
17 if (this.getAxis () == 1) {
18 return 0;
19 }return 1;
20 });
21 Clazz.defineMethod (c$, "getFlowSpan", 
22 function (index) {
23 return this.layoutSpan;
24 }, "~N");
25 Clazz.defineMethod (c$, "getFlowStart", 
26 function (index) {
27 return 0;
28 }, "~N");
29 Clazz.defineMethod (c$, "loadChildren", 
30 function (f) {
31 if (this.layoutPool == null) {
32 this.layoutPool =  new javax.swing.text.FlowView.LogicalView (this.getElement ());
33 }this.layoutPool.setParent (this);
34 this.strategy.insertUpdate (this, null, null);
35 }, "javax.swing.text.ViewFactory");
36 Clazz.defineMethod (c$, "getViewIndexAtPosition", 
37 function (pos) {
38 if (pos >= this.getStartOffset () && (pos < this.getEndOffset ())) {
39 for (var counter = 0; counter < this.getViewCount (); counter++) {
40 var v = this.getView (counter);
41 if (pos >= v.getStartOffset () && pos < v.getEndOffset ()) {
42 return counter;
43 }}
44 }return -1;
45 }, "~N");
46 Clazz.defineMethod (c$, "layout", 
47 function (width, height) {
48 var faxis = this.getFlowAxis ();
49 var newSpan;
50 if (faxis == 0) {
51 newSpan = width;
52 } else {
53 newSpan = height;
54 }if (this.layoutSpan != newSpan) {
55 this.layoutChanged (faxis);
56 this.layoutChanged (this.getAxis ());
57 this.layoutSpan = newSpan;
58 }if (!this.isLayoutValid (faxis)) {
59 var heightAxis = this.getAxis ();
60 var oldFlowHeight = ((heightAxis == 0) ? this.getWidth () : this.getHeight ());
61 this.strategy.layout (this);
62 var newFlowHeight = Clazz.floatToInt (this.getPreferredSpan (heightAxis));
63 if (oldFlowHeight != newFlowHeight) {
64 var p = this.getParent ();
65 if (p != null) {
66 p.preferenceChanged (this, (heightAxis == 0), (heightAxis == 1));
67 }var host = this.getContainer ();
68 if (host != null) {
69 host.repaint ();
70 }}}Clazz.superCall (this, javax.swing.text.FlowView, "layout", [width, height]);
71 }, "~N,~N");
72 Clazz.overrideMethod (c$, "calculateMinorAxisRequirements", 
73 function (axis, r) {
74 if (r == null) {
75 r =  new javax.swing.SizeRequirements ();
76 }var pref = this.layoutPool.getPreferredSpan (axis);
77 var min = this.layoutPool.getMinimumSpan (axis);
78 r.minimum = Clazz.floatToInt (min);
79 r.preferred = Math.max (r.minimum, Clazz.floatToInt (pref));
80 r.maximum = 2147483647;
81 r.alignment = 0.5;
82 return r;
83 }, "~N,javax.swing.SizeRequirements");
84 Clazz.defineMethod (c$, "insertUpdate", 
85 function (changes, a, f) {
86 this.layoutPool.insertUpdate (changes, a, f);
87 this.strategy.insertUpdate (this, changes, this.getInsideAllocation (a));
88 }, "javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");
89 Clazz.defineMethod (c$, "removeUpdate", 
90 function (changes, a, f) {
91 this.layoutPool.removeUpdate (changes, a, f);
92 this.strategy.removeUpdate (this, changes, this.getInsideAllocation (a));
93 }, "javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");
94 Clazz.defineMethod (c$, "changedUpdate", 
95 function (changes, a, f) {
96 this.layoutPool.changedUpdate (changes, a, f);
97 this.strategy.changedUpdate (this, changes, this.getInsideAllocation (a));
98 }, "javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");
99 Clazz.defineMethod (c$, "setParent", 
100 function (parent) {
101 Clazz.superCall (this, javax.swing.text.FlowView, "setParent", [parent]);
102 if (parent == null && this.layoutPool != null) {
103 this.layoutPool.setParent (null);
104 }}, "javax.swing.text.View");
105 Clazz.pu$h(self.c$);
106 c$ = Clazz.decorateAsClass (function () {
107 this.damageStart = 2147483647;
108 this.viewBuffer = null;
109 Clazz.instantialize (this, arguments);
110 }, javax.swing.text.FlowView, "FlowStrategy");
111 Clazz.defineMethod (c$, "addDamage", 
112 function (a, b) {
113 if (b >= a.getStartOffset () && b < a.getEndOffset ()) {
114 this.damageStart = Math.min (this.damageStart, b);
115 }}, "javax.swing.text.FlowView,~N");
116 Clazz.defineMethod (c$, "unsetDamage", 
117 function () {
118 this.damageStart = 2147483647;
119 });
120 Clazz.defineMethod (c$, "insertUpdate", 
121 function (a, b, c) {
122 if (b != null) {
123 this.addDamage (a, b.getOffset ());
124 }if (c != null) {
125 var d = a.getContainer ();
126 if (d != null) {
127 d.repaint (c.x, c.y, c.width, c.height);
128 }} else {
129 a.preferenceChanged (null, true, true);
130 }}, "javax.swing.text.FlowView,javax.swing.event.DocumentEvent,java.awt.Rectangle");
131 Clazz.defineMethod (c$, "removeUpdate", 
132 function (a, b, c) {
133 this.addDamage (a, b.getOffset ());
134 if (c != null) {
135 var d = a.getContainer ();
136 if (d != null) {
137 d.repaint (c.x, c.y, c.width, c.height);
138 }} else {
139 a.preferenceChanged (null, true, true);
140 }}, "javax.swing.text.FlowView,javax.swing.event.DocumentEvent,java.awt.Rectangle");
141 Clazz.defineMethod (c$, "changedUpdate", 
142 function (a, b, c) {
143 this.addDamage (a, b.getOffset ());
144 if (c != null) {
145 var d = a.getContainer ();
146 if (d != null) {
147 d.repaint (c.x, c.y, c.width, c.height);
148 }} else {
149 a.preferenceChanged (null, true, true);
150 }}, "javax.swing.text.FlowView,javax.swing.event.DocumentEvent,java.awt.Rectangle");
151 Clazz.defineMethod (c$, "getLogicalView", 
152 function (a) {
153 return a.layoutPool;
154 }, "javax.swing.text.FlowView");
155 Clazz.defineMethod (c$, "layout", 
156 function (a) {
157 var b = this.getLogicalView (a);
158 var c;
159 var d;
160 var e = a.getEndOffset ();
161 if (a.majorAllocValid) {
162 if (this.damageStart == 2147483647) {
163 return;
164 }while ((c = a.getViewIndexAtPosition (this.damageStart)) < 0) {
165 this.damageStart--;
166 }
167 if (c > 0) {
168 c--;
169 }d = a.getView (c).getStartOffset ();
170 } else {
171 c = 0;
172 d = a.getStartOffset ();
173 }this.reparentViews (b, d);
174 this.viewBuffer =  new java.util.Vector (10, 10);
175 var f = a.getViewCount ();
176 while (d < e) {
177 var g;
178 if (c >= f) {
179 g = a.createRow ();
180 a.append (g);
181 } else {
182 g = a.getView (c);
183 }d = this.layoutRow (a, c, d);
184 c++;
185 }
186 this.viewBuffer = null;
187 if (c < f) {
188 a.replace (c, f - c, null);
189 }this.unsetDamage ();
190 }, "javax.swing.text.FlowView");
191 Clazz.defineMethod (c$, "layoutRow", 
192 function (a, b, c) {
193 var d = a.getView (b);
194 var e = a.getFlowStart (b);
195 var f = a.getFlowSpan (b);
196 var g = a.getEndOffset ();
197 var h = (Clazz.instanceOf (a, javax.swing.text.TabExpander)) ? a : null;
198 var i = a.getFlowAxis ();
199 var j = 0;
200 var k = 0;
201 var l = 0;
202 var m = -1;
203 var n = 0;
204 this.viewBuffer.clear ();
205 while (c < g && f >= 0) {
206 var o = this.createView (a, c, Clazz.floatToInt (f), b);
207 if (o == null) {
208 break;
209 }var p = o.getBreakWeight (i, e, f);
210 if (p >= 3000) {
211 var q = o.breakView (i, c, e, f);
212 if (q != null) {
213 this.viewBuffer.add (q);
214 } else if (n == 0) {
215 this.viewBuffer.add (o);
216 }break;
217 } else if (p >= j && p > 0) {
218 j = p;
219 k = e;
220 l = f;
221 m = n;
222 }var q;
223 if (i == 0 && Clazz.instanceOf (o, javax.swing.text.TabableView)) {
224 q = (o).getTabbedSpan (e, h);
225 } else {
226 q = o.getPreferredSpan (i);
227 }if (q > f && m >= 0) {
228 if (m < n) {
229 o = this.viewBuffer.get (m);
230 }for (var r = n - 1; r >= m; r--) {
231 this.viewBuffer.remove (r);
232 }
233 o = o.breakView (i, o.getStartOffset (), k, l);
234 }f -= q;
235 e += q;
236 this.viewBuffer.add (o);
237 c = o.getEndOffset ();
238 n++;
239 }
240 var o =  new Array (this.viewBuffer.size ());
241 this.viewBuffer.toArray (o);
242 d.replace (0, d.getViewCount (), o);
243 return (o.length > 0 ? d.getEndOffset () : c);
244 }, "javax.swing.text.FlowView,~N,~N");
245 Clazz.defineMethod (c$, "adjustRow", 
246 function (a, b, c, d) {
247 var e = a.getFlowAxis ();
248 var f = a.getView (b);
249 var g = f.getViewCount ();
250 var h = 0;
251 var i = 0;
252 var j = 0;
253 var k = -1;
254 var l;
255 for (var m = 0; m < g; m++) {
256 l = f.getView (m);
257 var n = c - h;
258 var o = l.getBreakWeight (e, d + h, n);
259 if ((o >= i) && (o > 0)) {
260 i = o;
261 k = m;
262 j = h;
263 if (o >= 3000) {
264 break;
265 }}h += l.getPreferredSpan (e);
266 }
267 if (k < 0) {
268 return;
269 }var n = c - j;
270 l = f.getView (k);
271 l = l.breakView (e, l.getStartOffset (), d + j, n);
272 var o =  new Array (1);
273 o[0] = l;
274 var p = this.getLogicalView (a);
275 var q = f.getView (k).getStartOffset ();
276 var r = f.getEndOffset ();
277 for (var s = 0; s < p.getViewCount (); s++) {
278 var t = p.getView (s);
279 if (t.getEndOffset () > r) {
280 break;
281 }if (t.getStartOffset () >= q) {
282 t.setParent (p);
283 }}
284 f.replace (k, g - k, o);
285 }, "javax.swing.text.FlowView,~N,~N,~N");
286 Clazz.defineMethod (c$, "reparentViews", 
287 function (a, b) {
288 var c = a.getViewIndex (b, javax.swing.text.Position.Bias.Forward);
289 if (c >= 0) {
290 for (var d = c; d < a.getViewCount (); d++) {
291 a.getView (d).setParent (a);
292 }
293 }}, "javax.swing.text.View,~N");
294 Clazz.defineMethod (c$, "createView", 
295 function (a, b, c, d) {
296 var e = this.getLogicalView (a);
297 var f = e.getViewIndex (b, javax.swing.text.Position.Bias.Forward);
298 var g = e.getView (f);
299 if (b == g.getStartOffset ()) {
300 return g;
301 }g = g.createFragment (b, g.getEndOffset ());
302 return g;
303 }, "javax.swing.text.FlowView,~N,~N,~N");
304 c$ = Clazz.p0p ();
305 Clazz.pu$h(self.c$);
306 c$ = Clazz.declareType (javax.swing.text.FlowView, "LogicalView", javax.swing.text.CompositeView);
307 Clazz.defineMethod (c$, "getViewIndexAtPosition", 
308 function (a) {
309 var b = this.getElement ();
310 if (b.isLeaf ()) {
311 return 0;
312 }return Clazz.superCall (this, javax.swing.text.FlowView.LogicalView, "getViewIndexAtPosition", [a]);
313 }, "~N");
314 Clazz.defineMethod (c$, "loadChildren", 
315 function (a) {
316 var b = this.getElement ();
317 if (b.isLeaf ()) {
318 var c =  new javax.swing.text.LabelView (b);
319 this.append (c);
320 } else {
321 Clazz.superCall (this, javax.swing.text.FlowView.LogicalView, "loadChildren", [a]);
322 }}, "javax.swing.text.ViewFactory");
323 Clazz.defineMethod (c$, "getAttributes", 
324 function () {
325 var a = this.getParent ();
326 return (a != null) ? a.getAttributes () : null;
327 });
328 Clazz.defineMethod (c$, "getPreferredSpan", 
329 function (a) {
330 var b = 0;
331 var c = 0;
332 var d = this.getViewCount ();
333 for (var e = 0; e < d; e++) {
334 var f = this.getView (e);
335 c += f.getPreferredSpan (a);
336 if (f.getBreakWeight (a, 0, 2147483647) >= 3000) {
337 b = Math.max (b, c);
338 c = 0;
339 }}
340 b = Math.max (b, c);
341 return b;
342 }, "~N");
343 Clazz.defineMethod (c$, "getMinimumSpan", 
344 function (a) {
345 var b = 0;
346 var c = 0;
347 var d = false;
348 var e = this.getViewCount ();
349 for (var f = 0; f < e; f++) {
350 var g = this.getView (f);
351 if (g.getBreakWeight (a, 0, 2147483647) == 0) {
352 c += g.getPreferredSpan (a);
353 d = true;
354 } else if (d) {
355 b = Math.max (c, b);
356 d = false;
357 c = 0;
358 }if (Clazz.instanceOf (g, javax.swing.text.ComponentView)) {
359 b = Math.max (b, g.getMinimumSpan (a));
360 }}
361 b = Math.max (b, c);
362 return b;
363 }, "~N");
364 Clazz.defineMethod (c$, "forwardUpdateToView", 
365 function (a, b, c, d) {
366 var e = a.getParent ();
367 a.setParent (this);
368 Clazz.superCall (this, javax.swing.text.FlowView.LogicalView, "forwardUpdateToView", [a, b, c, d]);
369 a.setParent (e);
370 }, "javax.swing.text.View,javax.swing.event.DocumentEvent,java.awt.Shape,javax.swing.text.ViewFactory");
371 Clazz.overrideMethod (c$, "paint", 
372 function (a, b) {
373 }, "java.awt.Graphics,java.awt.Shape");
374 Clazz.overrideMethod (c$, "isBefore", 
375 function (a, b, c) {
376 return false;
377 }, "~N,~N,java.awt.Rectangle");
378 Clazz.overrideMethod (c$, "isAfter", 
379 function (a, b, c) {
380 return false;
381 }, "~N,~N,java.awt.Rectangle");
382 Clazz.overrideMethod (c$, "getViewAtPoint", 
383 function (a, b, c) {
384 return null;
385 }, "~N,~N,java.awt.Rectangle");
386 Clazz.overrideMethod (c$, "childAllocation", 
387 function (a, b) {
388 }, "~N,java.awt.Rectangle");
389 c$ = Clazz.p0p ();
390 });