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;
6 this.drawsLayeredHighlights = false;
7 this.safeDamager = null;
8 if (!Clazz.isClassDefined ("javax.swing.text.DefaultHighlighter.HighlightInfo")) {
9 javax.swing.text.DefaultHighlighter.$DefaultHighlighter$HighlightInfo$ ();
11 if (!Clazz.isClassDefined ("javax.swing.text.DefaultHighlighter.LayeredHighlightInfo")) {
12 javax.swing.text.DefaultHighlighter.$DefaultHighlighter$LayeredHighlightInfo$ ();
14 if (!Clazz.isClassDefined ("javax.swing.text.DefaultHighlighter.SafeDamager")) {
15 javax.swing.text.DefaultHighlighter.$DefaultHighlighter$SafeDamager$ ();
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);
23 Clazz.makeConstructor (c$,
25 Clazz.superConstructor (this, javax.swing.text.DefaultHighlighter, []);
26 this.drawsLayeredHighlights = true;
28 Clazz.overrideMethod (c$, "paint",
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 ();
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);
47 }, "java.awt.Graphics");
48 Clazz.overrideMethod (c$, "install",
51 this.removeAllHighlights ();
52 }, "javax.swing.text.JTextComponent");
53 Clazz.overrideMethod (c$, "deinstall",
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);
62 i.p0 = doc.createPosition (p0);
63 i.p1 = doc.createPosition (p1);
64 this.highlights.addElement (i);
65 this.safeDamageRange (p0, p1);
67 }, "~N,~N,javax.swing.text.Highlighter.HighlightPainter");
68 Clazz.overrideMethod (c$, "removeHighlight",
70 if (Clazz.instanceOf (tag, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo)) {
72 if (lhi.width > 0 && lhi.height > 0) {
73 this.component.repaint (lhi.x, lhi.y, lhi.width, lhi.height);
76 this.safeDamageRange (info.p0, info.p1);
77 }this.highlights.removeElement (tag);
79 Clazz.overrideMethod (c$, "removeAllHighlights",
81 var mapper = this.component.getUI ();
82 if (this.getDrawsLayeredHighlights ()) {
83 var len = this.highlights.size ();
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)) {
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);
101 p0 = hi.p0.getOffset ();
102 p1 = hi.p1.getOffset ();
104 p0 = Math.min (p0, hi.p0.getOffset ());
105 p1 = Math.max (p1, hi.p1.getOffset ());
107 if (minX != maxX && minY != maxY) {
108 this.component.repaint (minX, minY, maxX - minX, maxY - minY);
111 this.safeDamageRange (p0, p1);
113 if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
118 }this.highlights.removeAllElements ();
119 }} else if (mapper != null) {
120 var len = this.highlights.size ();
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 ());
130 this.safeDamageRange (p0, p1);
132 if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
137 this.highlights.removeAllElements ();
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)) {
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));
152 var oldP0 = info.p0.getOffset ();
153 var oldP1 = info.p1.getOffset ();
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));
159 this.safeDamageRange (oldP0, oldP1);
160 this.safeDamageRange (p0, p1);
161 }info.p0 = doc.createPosition (p0);
162 info.p1 = doc.createPosition (p1);
164 Clazz.overrideMethod (c$, "getHighlights",
166 var size = this.highlights.size ();
168 return javax.swing.text.DefaultHighlighter.noHighlights;
169 }var h = new Array (size);
170 this.highlights.copyInto (h);
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)) {
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);
184 }, "java.awt.Graphics,~N,~N,java.awt.Shape,javax.swing.text.JTextComponent,javax.swing.text.View");
185 Clazz.defineMethod (c$, "safeDamageRange",
187 this.safeDamager.damageRange (p0, p1);
188 }, "javax.swing.text.Position,javax.swing.text.Position");
189 Clazz.defineMethod (c$, "safeDamageRange",
191 var doc = this.component.getDocument ();
192 this.safeDamageRange (doc.createPosition (a0), doc.createPosition (a1));
194 Clazz.defineMethod (c$, "setDrawsLayeredHighlights",
195 function (newValue) {
196 this.drawsLayeredHighlights = newValue;
198 Clazz.defineMethod (c$, "getDrawsLayeredHighlights",
200 return this.drawsLayeredHighlights;
202 c$.$DefaultHighlighter$HighlightInfo$ = function () {
204 c$ = Clazz.decorateAsClass (function () {
205 Clazz.prepareCallback (this, arguments);
209 Clazz.instantialize (this, arguments);
210 }, javax.swing.text.DefaultHighlighter, "HighlightInfo", null, javax.swing.text.Highlighter.Highlight);
211 Clazz.overrideMethod (c$, "getStartOffset",
213 return this.p0.getOffset ();
215 Clazz.overrideMethod (c$, "getEndOffset",
217 return this.p1.getOffset ();
219 Clazz.overrideMethod (c$, "getPainter",
225 c$.$DefaultHighlighter$LayeredHighlightInfo$ = function () {
227 c$ = Clazz.decorateAsClass (function () {
228 Clazz.prepareCallback (this, arguments);
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",
237 if (a == null) return;
239 if (Clazz.instanceOf (a, java.awt.Rectangle)) {
243 }if (this.width == 0 || this.height == 0) {
246 this.width = b.width;
247 this.height = b.height;
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 ();
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");
266 c$.$DefaultHighlighter$SafeDamager$ = function () {
268 c$ = Clazz.decorateAsClass (function () {
269 Clazz.prepareCallback (this, arguments);
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);
279 Clazz.overrideMethod (c$, "run",
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 ());
292 Clazz.defineMethod (c$, "damageRange",
294 if (this.b$["javax.swing.text.DefaultHighlighter"].component == null) {
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 ()) {
308 javax.swing.SwingUtilities.invokeLater (this);
309 }}, "javax.swing.text.Position,javax.swing.text.Position");
313 c$ = Clazz.decorateAsClass (function () {
315 Clazz.instantialize (this, arguments);
316 }, javax.swing.text.DefaultHighlighter, "DefaultHighlightPainter", javax.swing.text.LayeredHighlighter.LayerPainter);
317 Clazz.makeConstructor (c$,
319 Clazz.superConstructor (this, javax.swing.text.DefaultHighlighter.DefaultHighlightPainter, []);
321 }, "java.awt.Color");
322 Clazz.defineMethod (c$, "getColor",
326 Clazz.overrideMethod (c$, "paint",
327 function (a, b, c, d, e) {
328 var f = d.getBounds ();
331 var h = g.modelToView (e, b);
332 var i = g.modelToView (e, c);
333 var j = this.getColor ();
335 a.setColor (e.getSelectionColor ());
340 a.fillRect (k.x, k.y, k.width, k.height);
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);
348 if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
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 ();
358 a.setColor (e.getSelectionColor ());
362 if (b == f.getStartOffset () && c == f.getEndOffset ()) {
363 if (Clazz.instanceOf (d, java.awt.Rectangle)) {
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 ();
372 if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
379 h.width = Math.max (h.width, 1);
380 a.fillRect (h.x, h.y, h.width, h.height);
382 }, "java.awt.Graphics,~N,~N,java.awt.Shape,javax.swing.text.JTextComponent,javax.swing.text.View");
384 c$.noHighlights = c$.prototype.noHighlights = new Array (0);
385 c$.DefaultPainter = c$.prototype.DefaultPainter = new javax.swing.text.DefaultHighlighter.DefaultHighlightPainter (null);