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