0d2d9b06fe351f6a4e80c2cbeccf5141cba65e53
[jalviewjs.git] / site / swingjs / j2s / javax / swing / text / DefaultHighlighter.js
1 Clazz.declarePackage ("javax.swing.text");
2 Clazz.load (["javax.swing.text.Highlighter", "$.LayeredHighlighter", "java.util.Vector"], "javax.swing.text.DefaultHighlighter", ["java.awt.Rectangle", "javax.swing.SwingUtilities", "javax.swing.text.LayeredHighlighter.LayerPainter", "javax.swing.text.Position"], function () {
3 c$ = Clazz.decorateAsClass (function () {
4 this.highlights = null;
5 this.component = null;
6 this.drawsLayeredHighlights = false;
7 this.safeDamager = null;
8 if (!Clazz.isClassDefined ("javax.swing.text.DefaultHighlighter.HighlightInfo")) {
9 javax.swing.text.DefaultHighlighter.$DefaultHighlighter$HighlightInfo$ ();
10 }
11 if (!Clazz.isClassDefined ("javax.swing.text.DefaultHighlighter.LayeredHighlightInfo")) {
12 javax.swing.text.DefaultHighlighter.$DefaultHighlighter$LayeredHighlightInfo$ ();
13 }
14 if (!Clazz.isClassDefined ("javax.swing.text.DefaultHighlighter.SafeDamager")) {
15 javax.swing.text.DefaultHighlighter.$DefaultHighlighter$SafeDamager$ ();
16 }
17 Clazz.instantialize (this, arguments);
18 }, javax.swing.text, "DefaultHighlighter", javax.swing.text.LayeredHighlighter);
19 Clazz.prepareFields (c$, function () {
20 this.highlights =  new java.util.Vector ();
21 this.safeDamager = Clazz.innerTypeInstance (javax.swing.text.DefaultHighlighter.SafeDamager, this, null);
22 });
23 Clazz.makeConstructor (c$, 
24 function () {
25 Clazz.superConstructor (this, javax.swing.text.DefaultHighlighter, []);
26 this.drawsLayeredHighlights = true;
27 });
28 Clazz.overrideMethod (c$, "paint", 
29 function (g) {
30 var len = this.highlights.size ();
31 for (var i = 0; i < len; i++) {
32 var info = this.highlights.elementAt (i);
33 if (!(Clazz.instanceOf (info, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo))) {
34 var a = this.component.getBounds ();
35 var insets = this.component.getInsets ();
36 a.x = insets.left;
37 a.y = insets.top;
38 a.width -= insets.left + insets.right;
39 a.height -= insets.top + insets.bottom;
40 for (; i < len; i++) {
41 info = this.highlights.elementAt (i);
42 if (!(Clazz.instanceOf (info, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo))) {
43 var p = info.getPainter ();
44 p.paint (g, info.getStartOffset (), info.getEndOffset (), a, this.component);
45 }}
46 }}
47 }, "java.awt.Graphics");
48 Clazz.overrideMethod (c$, "install", 
49 function (c) {
50 this.component = c;
51 this.removeAllHighlights ();
52 }, "javax.swing.text.JTextComponent");
53 Clazz.overrideMethod (c$, "deinstall", 
54 function (c) {
55 this.component = null;
56 }, "javax.swing.text.JTextComponent");
57 Clazz.overrideMethod (c$, "addHighlight", 
58 function (p0, p1, p) {
59 var doc = this.component.getDocument ();
60 var i = (this.getDrawsLayeredHighlights () && (Clazz.instanceOf (p, javax.swing.text.LayeredHighlighter.LayerPainter))) ? Clazz.innerTypeInstance (javax.swing.text.DefaultHighlighter.LayeredHighlightInfo, this, null) : Clazz.innerTypeInstance (javax.swing.text.DefaultHighlighter.HighlightInfo, this, null);
61 i.painter = p;
62 i.p0 = doc.createPosition (p0);
63 i.p1 = doc.createPosition (p1);
64 this.highlights.addElement (i);
65 this.safeDamageRange (p0, p1);
66 return i;
67 }, "~N,~N,javax.swing.text.Highlighter.HighlightPainter");
68 Clazz.overrideMethod (c$, "removeHighlight", 
69 function (tag) {
70 if (Clazz.instanceOf (tag, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo)) {
71 var lhi = tag;
72 if (lhi.width > 0 && lhi.height > 0) {
73 this.component.repaint (lhi.x, lhi.y, lhi.width, lhi.height);
74 }} else {
75 var info = tag;
76 this.safeDamageRange (info.p0, info.p1);
77 }this.highlights.removeElement (tag);
78 }, "~O");
79 Clazz.overrideMethod (c$, "removeAllHighlights", 
80 function () {
81 var mapper = this.component.getUI ();
82 if (this.getDrawsLayeredHighlights ()) {
83 var len = this.highlights.size ();
84 if (len != 0) {
85 var minX = 0;
86 var minY = 0;
87 var maxX = 0;
88 var maxY = 0;
89 var p0 = -1;
90 var p1 = -1;
91 for (var i = 0; i < len; i++) {
92 var hi = this.highlights.elementAt (i);
93 if (Clazz.instanceOf (hi, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo)) {
94 var info = hi;
95 minX = Math.min (minX, info.x);
96 minY = Math.min (minY, info.y);
97 maxX = Math.max (maxX, info.x + info.width);
98 maxY = Math.max (maxY, info.y + info.height);
99 } else {
100 if (p0 == -1) {
101 p0 = hi.p0.getOffset ();
102 p1 = hi.p1.getOffset ();
103 } else {
104 p0 = Math.min (p0, hi.p0.getOffset ());
105 p1 = Math.max (p1, hi.p1.getOffset ());
106 }}}
107 if (minX != maxX && minY != maxY) {
108 this.component.repaint (minX, minY, maxX - minX, maxY - minY);
109 }if (p0 != -1) {
110 try {
111 this.safeDamageRange (p0, p1);
112 } catch (e) {
113 if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
114 } else {
115 throw e;
116 }
117 }
118 }this.highlights.removeAllElements ();
119 }} else if (mapper != null) {
120 var len = this.highlights.size ();
121 if (len != 0) {
122 var p0 = 2147483647;
123 var p1 = 0;
124 for (var i = 0; i < len; i++) {
125 var info = this.highlights.elementAt (i);
126 p0 = Math.min (p0, info.p0.getOffset ());
127 p1 = Math.max (p1, info.p1.getOffset ());
128 }
129 try {
130 this.safeDamageRange (p0, p1);
131 } catch (e) {
132 if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
133 } else {
134 throw e;
135 }
136 }
137 this.highlights.removeAllElements ();
138 }}});
139 Clazz.overrideMethod (c$, "changeHighlight", 
140 function (tag, p0, p1) {
141 var doc = this.component.getDocument ();
142 if (Clazz.instanceOf (tag, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo)) {
143 var lhi = tag;
144 if (lhi.width > 0 && lhi.height > 0) {
145 this.component.repaint (lhi.x, lhi.y, lhi.width, lhi.height);
146 }lhi.width = lhi.height = 0;
147 lhi.p0 = doc.createPosition (p0);
148 lhi.p1 = doc.createPosition (p1);
149 this.safeDamageRange (Math.min (p0, p1), Math.max (p0, p1));
150 } else {
151 var info = tag;
152 var oldP0 = info.p0.getOffset ();
153 var oldP1 = info.p1.getOffset ();
154 if (p0 == oldP0) {
155 this.safeDamageRange (Math.min (oldP1, p1), Math.max (oldP1, p1));
156 } else if (p1 == oldP1) {
157 this.safeDamageRange (Math.min (p0, oldP0), Math.max (p0, oldP0));
158 } else {
159 this.safeDamageRange (oldP0, oldP1);
160 this.safeDamageRange (p0, p1);
161 }info.p0 = doc.createPosition (p0);
162 info.p1 = doc.createPosition (p1);
163 }}, "~O,~N,~N");
164 Clazz.overrideMethod (c$, "getHighlights", 
165 function () {
166 var size = this.highlights.size ();
167 if (size == 0) {
168 return javax.swing.text.DefaultHighlighter.noHighlights;
169 }var h =  new Array (size);
170 this.highlights.copyInto (h);
171 return h;
172 });
173 Clazz.overrideMethod (c$, "paintLayeredHighlights", 
174 function (g, p0, p1, viewBounds, editor, view) {
175 for (var counter = this.highlights.size () - 1; counter >= 0; counter--) {
176 var tag = this.highlights.elementAt (counter);
177 if (Clazz.instanceOf (tag, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo)) {
178 var lhi = tag;
179 var start = lhi.getStartOffset ();
180 var end = lhi.getEndOffset ();
181 if ((p0 < start && p1 > start) || (p0 >= start && p0 < end)) {
182 lhi.paintLayeredHighlights (g, p0, p1, viewBounds, editor, view);
183 }}}
184 }, "java.awt.Graphics,~N,~N,java.awt.Shape,javax.swing.text.JTextComponent,javax.swing.text.View");
185 Clazz.defineMethod (c$, "safeDamageRange", 
186  function (p0, p1) {
187 this.safeDamager.damageRange (p0, p1);
188 }, "javax.swing.text.Position,javax.swing.text.Position");
189 Clazz.defineMethod (c$, "safeDamageRange", 
190  function (a0, a1) {
191 var doc = this.component.getDocument ();
192 this.safeDamageRange (doc.createPosition (a0), doc.createPosition (a1));
193 }, "~N,~N");
194 Clazz.defineMethod (c$, "setDrawsLayeredHighlights", 
195 function (newValue) {
196 this.drawsLayeredHighlights = newValue;
197 }, "~B");
198 Clazz.defineMethod (c$, "getDrawsLayeredHighlights", 
199 function () {
200 return this.drawsLayeredHighlights;
201 });
202 c$.$DefaultHighlighter$HighlightInfo$ = function () {
203 Clazz.pu$h(self.c$);
204 c$ = Clazz.decorateAsClass (function () {
205 Clazz.prepareCallback (this, arguments);
206 this.p0 = null;
207 this.p1 = null;
208 this.painter = null;
209 Clazz.instantialize (this, arguments);
210 }, javax.swing.text.DefaultHighlighter, "HighlightInfo", null, javax.swing.text.Highlighter.Highlight);
211 Clazz.overrideMethod (c$, "getStartOffset", 
212 function () {
213 return this.p0.getOffset ();
214 });
215 Clazz.overrideMethod (c$, "getEndOffset", 
216 function () {
217 return this.p1.getOffset ();
218 });
219 Clazz.overrideMethod (c$, "getPainter", 
220 function () {
221 return this.painter;
222 });
223 c$ = Clazz.p0p ();
224 };
225 c$.$DefaultHighlighter$LayeredHighlightInfo$ = function () {
226 Clazz.pu$h(self.c$);
227 c$ = Clazz.decorateAsClass (function () {
228 Clazz.prepareCallback (this, arguments);
229 this.x = 0;
230 this.y = 0;
231 this.width = 0;
232 this.height = 0;
233 Clazz.instantialize (this, arguments);
234 }, javax.swing.text.DefaultHighlighter, "LayeredHighlightInfo", javax.swing.text.DefaultHighlighter.HighlightInfo, null, Clazz.innerTypeInstance (javax.swing.text.DefaultHighlighter.HighlightInfo, this, null, Clazz.inheritArgs));
235 Clazz.defineMethod (c$, "union", 
236 function (a) {
237 if (a == null) return;
238 var b;
239 if (Clazz.instanceOf (a, java.awt.Rectangle)) {
240 b = a;
241 } else {
242 b = a.getBounds ();
243 }if (this.width == 0 || this.height == 0) {
244 this.x = b.x;
245 this.y = b.y;
246 this.width = b.width;
247 this.height = b.height;
248 } else {
249 this.width = Math.max (this.x + this.width, b.x + b.width);
250 this.height = Math.max (this.y + this.height, b.y + b.height);
251 this.x = Math.min (this.x, b.x);
252 this.width -= this.x;
253 this.y = Math.min (this.y, b.y);
254 this.height -= this.y;
255 }}, "java.awt.Shape");
256 Clazz.defineMethod (c$, "paintLayeredHighlights", 
257 function (a, b, c, d, e, f) {
258 var g = this.getStartOffset ();
259 var h = this.getEndOffset ();
260 b = Math.max (g, b);
261 c = Math.min (h, c);
262 this.union ((this.painter).paintLayer (a, b, c, d, e, f));
263 }, "java.awt.Graphics,~N,~N,java.awt.Shape,javax.swing.text.JTextComponent,javax.swing.text.View");
264 c$ = Clazz.p0p ();
265 };
266 c$.$DefaultHighlighter$SafeDamager$ = function () {
267 Clazz.pu$h(self.c$);
268 c$ = Clazz.decorateAsClass (function () {
269 Clazz.prepareCallback (this, arguments);
270 this.p0 = null;
271 this.p1 = null;
272 this.lastDoc = null;
273 Clazz.instantialize (this, arguments);
274 }, javax.swing.text.DefaultHighlighter, "SafeDamager", null, Runnable);
275 Clazz.prepareFields (c$, function () {
276 this.p0 =  new java.util.Vector (10);
277 this.p1 =  new java.util.Vector (10);
278 });
279 Clazz.overrideMethod (c$, "run", 
280 function () {
281 if (this.b$["javax.swing.text.DefaultHighlighter"].component != null) {
282 var a = this.b$["javax.swing.text.DefaultHighlighter"].component.getUI ();
283 if (a != null && this.lastDoc === this.b$["javax.swing.text.DefaultHighlighter"].component.getDocument ()) {
284 var b = this.p0.size ();
285 for (var c = 0; c < b; c++) {
286 a.damageRange (this.b$["javax.swing.text.DefaultHighlighter"].component, (this.p0.get (c)).getOffset (), (this.p1.get (c)).getOffset ());
287 }
288 }}this.p0.clear ();
289 this.p1.clear ();
290 this.lastDoc = null;
291 });
292 Clazz.defineMethod (c$, "damageRange", 
293 function (a, b) {
294 if (this.b$["javax.swing.text.DefaultHighlighter"].component == null) {
295 this.p0.clear ();
296 this.lastDoc = null;
297 return;
298 }var c = this.p0.isEmpty ();
299 var d = this.b$["javax.swing.text.DefaultHighlighter"].component.getDocument ();
300 if (d !== this.lastDoc) {
301 if (!this.p0.isEmpty ()) {
302 this.p0.clear ();
303 this.p1.clear ();
304 }this.lastDoc = d;
305 }this.p0.add (a);
306 this.p1.add (b);
307 if (c) {
308 javax.swing.SwingUtilities.invokeLater (this);
309 }}, "javax.swing.text.Position,javax.swing.text.Position");
310 c$ = Clazz.p0p ();
311 };
312 Clazz.pu$h(self.c$);
313 c$ = Clazz.decorateAsClass (function () {
314 this.color = null;
315 Clazz.instantialize (this, arguments);
316 }, javax.swing.text.DefaultHighlighter, "DefaultHighlightPainter", javax.swing.text.LayeredHighlighter.LayerPainter);
317 Clazz.makeConstructor (c$, 
318 function (a) {
319 Clazz.superConstructor (this, javax.swing.text.DefaultHighlighter.DefaultHighlightPainter, []);
320 this.color = a;
321 }, "java.awt.Color");
322 Clazz.defineMethod (c$, "getColor", 
323 function () {
324 return this.color;
325 });
326 Clazz.overrideMethod (c$, "paint", 
327 function (a, b, c, d, e) {
328 var f = d.getBounds ();
329 try {
330 var g = e.getUI ();
331 var h = g.modelToView (e, b);
332 var i = g.modelToView (e, c);
333 var j = this.getColor ();
334 if (j == null) {
335 a.setColor (e.getSelectionColor ());
336 } else {
337 a.setColor (j);
338 }if (h.y == i.y) {
339 var k = h.union (i);
340 a.fillRect (k.x, k.y, k.width, k.height);
341 } else {
342 var k = f.x + f.width - h.x;
343 a.fillRect (h.x, h.y, k, h.height);
344 if ((h.y + h.height) != i.y) {
345 a.fillRect (f.x, h.y + h.height, f.width, i.y - (h.y + h.height));
346 }a.fillRect (f.x, i.y, (i.x - f.x), i.height);
347 }} catch (e) {
348 if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
349 } else {
350 throw e;
351 }
352 }
353 }, "java.awt.Graphics,~N,~N,java.awt.Shape,javax.swing.text.JTextComponent");
354 Clazz.overrideMethod (c$, "paintLayer", 
355 function (a, b, c, d, e, f) {
356 var g = this.getColor ();
357 if (g == null) {
358 a.setColor (e.getSelectionColor ());
359 } else {
360 a.setColor (g);
361 }var h;
362 if (b == f.getStartOffset () && c == f.getEndOffset ()) {
363 if (Clazz.instanceOf (d, java.awt.Rectangle)) {
364 h = d;
365 } else {
366 h = d.getBounds ();
367 }} else {
368 try {
369 var i = f.modelToView (b, javax.swing.text.Position.Bias.Forward, c, javax.swing.text.Position.Bias.Backward, d);
370 h = (Clazz.instanceOf (i, java.awt.Rectangle)) ? i : i.getBounds ();
371 } catch (e) {
372 if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
373 h = null;
374 } else {
375 throw e;
376 }
377 }
378 }if (h != null) {
379 h.width = Math.max (h.width, 1);
380 a.fillRect (h.x, h.y, h.width, h.height);
381 }return h;
382 }, "java.awt.Graphics,~N,~N,java.awt.Shape,javax.swing.text.JTextComponent,javax.swing.text.View");
383 c$ = Clazz.p0p ();
384 c$.noHighlights = c$.prototype.noHighlights =  new Array (0);
385 c$.DefaultPainter = c$.prototype.DefaultPainter =  new javax.swing.text.DefaultHighlighter.DefaultHighlightPainter (null);
386 });