1 Clazz.declarePackage ("javax.swing.text");
\r
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 () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
4 this.highlights = null;
\r
5 this.component = null;
\r
6 this.drawsLayeredHighlights = false;
\r
7 this.safeDamager = null;
\r
8 if (!Clazz.isClassDefined ("javax.swing.text.DefaultHighlighter.HighlightInfo")) {
\r
9 javax.swing.text.DefaultHighlighter.$DefaultHighlighter$HighlightInfo$ ();
\r
11 if (!Clazz.isClassDefined ("javax.swing.text.DefaultHighlighter.LayeredHighlightInfo")) {
\r
12 javax.swing.text.DefaultHighlighter.$DefaultHighlighter$LayeredHighlightInfo$ ();
\r
14 if (!Clazz.isClassDefined ("javax.swing.text.DefaultHighlighter.SafeDamager")) {
\r
15 javax.swing.text.DefaultHighlighter.$DefaultHighlighter$SafeDamager$ ();
\r
17 Clazz.instantialize (this, arguments);
\r
18 }, javax.swing.text, "DefaultHighlighter", javax.swing.text.LayeredHighlighter);
\r
19 Clazz.prepareFields (c$, function () {
\r
20 this.highlights = new java.util.Vector ();
\r
21 this.safeDamager = Clazz.innerTypeInstance (javax.swing.text.DefaultHighlighter.SafeDamager, this, null);
\r
23 Clazz.makeConstructor (c$,
\r
25 Clazz.superConstructor (this, javax.swing.text.DefaultHighlighter, []);
\r
26 this.drawsLayeredHighlights = true;
\r
28 Clazz.overrideMethod (c$, "paint",
\r
30 var len = this.highlights.size ();
\r
31 for (var i = 0; i < len; i++) {
\r
32 var info = this.highlights.elementAt (i);
\r
33 if (!(Clazz.instanceOf (info, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo))) {
\r
34 var a = this.component.getBounds ();
\r
35 var insets = this.component.getInsets ();
\r
38 a.width -= insets.left + insets.right;
\r
39 a.height -= insets.top + insets.bottom;
\r
40 for (; i < len; i++) {
\r
41 info = this.highlights.elementAt (i);
\r
42 if (!(Clazz.instanceOf (info, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo))) {
\r
43 var p = info.getPainter ();
\r
44 p.paint (g, info.getStartOffset (), info.getEndOffset (), a, this.component);
\r
47 }, "java.awt.Graphics");
\r
48 Clazz.overrideMethod (c$, "install",
\r
51 this.removeAllHighlights ();
\r
52 }, "javax.swing.text.JTextComponent");
\r
53 Clazz.overrideMethod (c$, "deinstall",
\r
55 this.component = null;
\r
56 }, "javax.swing.text.JTextComponent");
\r
57 Clazz.overrideMethod (c$, "addHighlight",
\r
58 function (p0, p1, p) {
\r
59 var doc = this.component.getDocument ();
\r
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);
\r
62 i.p0 = doc.createPosition (p0);
\r
63 i.p1 = doc.createPosition (p1);
\r
64 this.highlights.addElement (i);
\r
65 this.safeDamageRange (p0, p1);
\r
67 }, "~N,~N,javax.swing.text.Highlighter.HighlightPainter");
\r
68 Clazz.overrideMethod (c$, "removeHighlight",
\r
70 if (Clazz.instanceOf (tag, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo)) {
\r
72 if (lhi.width > 0 && lhi.height > 0) {
\r
73 this.component.repaint (lhi.x, lhi.y, lhi.width, lhi.height);
\r
76 this.safeDamageRange (info.p0, info.p1);
\r
77 }this.highlights.removeElement (tag);
\r
79 Clazz.overrideMethod (c$, "removeAllHighlights",
\r
81 var mapper = this.component.getUI ();
\r
82 if (this.getDrawsLayeredHighlights ()) {
\r
83 var len = this.highlights.size ();
\r
91 for (var i = 0; i < len; i++) {
\r
92 var hi = this.highlights.elementAt (i);
\r
93 if (Clazz.instanceOf (hi, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo)) {
\r
95 minX = Math.min (minX, info.x);
\r
96 minY = Math.min (minY, info.y);
\r
97 maxX = Math.max (maxX, info.x + info.width);
\r
98 maxY = Math.max (maxY, info.y + info.height);
\r
101 p0 = hi.p0.getOffset ();
\r
102 p1 = hi.p1.getOffset ();
\r
104 p0 = Math.min (p0, hi.p0.getOffset ());
\r
105 p1 = Math.max (p1, hi.p1.getOffset ());
\r
107 if (minX != maxX && minY != maxY) {
\r
108 this.component.repaint (minX, minY, maxX - minX, maxY - minY);
\r
111 this.safeDamageRange (p0, p1);
\r
113 if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
\r
118 }this.highlights.removeAllElements ();
\r
119 }} else if (mapper != null) {
\r
120 var len = this.highlights.size ();
\r
122 var p0 = 2147483647;
\r
124 for (var i = 0; i < len; i++) {
\r
125 var info = this.highlights.elementAt (i);
\r
126 p0 = Math.min (p0, info.p0.getOffset ());
\r
127 p1 = Math.max (p1, info.p1.getOffset ());
\r
130 this.safeDamageRange (p0, p1);
\r
132 if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
\r
137 this.highlights.removeAllElements ();
\r
139 Clazz.overrideMethod (c$, "changeHighlight",
\r
140 function (tag, p0, p1) {
\r
141 var doc = this.component.getDocument ();
\r
142 if (Clazz.instanceOf (tag, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo)) {
\r
144 if (lhi.width > 0 && lhi.height > 0) {
\r
145 this.component.repaint (lhi.x, lhi.y, lhi.width, lhi.height);
\r
146 }lhi.width = lhi.height = 0;
\r
147 lhi.p0 = doc.createPosition (p0);
\r
148 lhi.p1 = doc.createPosition (p1);
\r
149 this.safeDamageRange (Math.min (p0, p1), Math.max (p0, p1));
\r
152 var oldP0 = info.p0.getOffset ();
\r
153 var oldP1 = info.p1.getOffset ();
\r
155 this.safeDamageRange (Math.min (oldP1, p1), Math.max (oldP1, p1));
\r
156 } else if (p1 == oldP1) {
\r
157 this.safeDamageRange (Math.min (p0, oldP0), Math.max (p0, oldP0));
\r
159 this.safeDamageRange (oldP0, oldP1);
\r
160 this.safeDamageRange (p0, p1);
\r
161 }info.p0 = doc.createPosition (p0);
\r
162 info.p1 = doc.createPosition (p1);
\r
164 Clazz.overrideMethod (c$, "getHighlights",
\r
166 var size = this.highlights.size ();
\r
168 return javax.swing.text.DefaultHighlighter.noHighlights;
\r
169 }var h = new Array (size);
\r
170 this.highlights.copyInto (h);
\r
173 Clazz.overrideMethod (c$, "paintLayeredHighlights",
\r
174 function (g, p0, p1, viewBounds, editor, view) {
\r
175 for (var counter = this.highlights.size () - 1; counter >= 0; counter--) {
\r
176 var tag = this.highlights.elementAt (counter);
\r
177 if (Clazz.instanceOf (tag, javax.swing.text.DefaultHighlighter.LayeredHighlightInfo)) {
\r
179 var start = lhi.getStartOffset ();
\r
180 var end = lhi.getEndOffset ();
\r
181 if ((p0 < start && p1 > start) || (p0 >= start && p0 < end)) {
\r
182 lhi.paintLayeredHighlights (g, p0, p1, viewBounds, editor, view);
\r
184 }, "java.awt.Graphics,~N,~N,java.awt.Shape,javax.swing.text.JTextComponent,javax.swing.text.View");
\r
185 Clazz.defineMethod (c$, "safeDamageRange",
\r
186 function (p0, p1) {
\r
187 this.safeDamager.damageRange (p0, p1);
\r
188 }, "javax.swing.text.Position,javax.swing.text.Position");
\r
189 Clazz.defineMethod (c$, "safeDamageRange",
\r
190 function (a0, a1) {
\r
191 var doc = this.component.getDocument ();
\r
192 this.safeDamageRange (doc.createPosition (a0), doc.createPosition (a1));
\r
194 Clazz.defineMethod (c$, "setDrawsLayeredHighlights",
\r
195 function (newValue) {
\r
196 this.drawsLayeredHighlights = newValue;
\r
198 Clazz.defineMethod (c$, "getDrawsLayeredHighlights",
\r
200 return this.drawsLayeredHighlights;
\r
202 c$.$DefaultHighlighter$HighlightInfo$ = function () {
\r
203 Clazz.pu$h(self.c$);
\r
204 c$ = Clazz.decorateAsClass (function () {
\r
205 Clazz.prepareCallback (this, arguments);
\r
208 this.painter = null;
\r
209 Clazz.instantialize (this, arguments);
\r
210 }, javax.swing.text.DefaultHighlighter, "HighlightInfo", null, javax.swing.text.Highlighter.Highlight);
\r
211 Clazz.overrideMethod (c$, "getStartOffset",
\r
213 return this.p0.getOffset ();
\r
215 Clazz.overrideMethod (c$, "getEndOffset",
\r
217 return this.p1.getOffset ();
\r
219 Clazz.overrideMethod (c$, "getPainter",
\r
221 return this.painter;
\r
225 c$.$DefaultHighlighter$LayeredHighlightInfo$ = function () {
\r
226 Clazz.pu$h(self.c$);
\r
227 c$ = Clazz.decorateAsClass (function () {
\r
228 Clazz.prepareCallback (this, arguments);
\r
233 Clazz.instantialize (this, arguments);
\r
234 }, javax.swing.text.DefaultHighlighter, "LayeredHighlightInfo", javax.swing.text.DefaultHighlighter.HighlightInfo, null, Clazz.innerTypeInstance (javax.swing.text.DefaultHighlighter.HighlightInfo, this, null, Clazz.inheritArgs));
\r
235 Clazz.defineMethod (c$, "union",
\r
237 if (a == null) return;
\r
239 if (Clazz.instanceOf (a, java.awt.Rectangle)) {
\r
242 b = a.getBounds ();
\r
243 }if (this.width == 0 || this.height == 0) {
\r
246 this.width = b.width;
\r
247 this.height = b.height;
\r
249 this.width = Math.max (this.x + this.width, b.x + b.width);
\r
250 this.height = Math.max (this.y + this.height, b.y + b.height);
\r
251 this.x = Math.min (this.x, b.x);
\r
252 this.width -= this.x;
\r
253 this.y = Math.min (this.y, b.y);
\r
254 this.height -= this.y;
\r
255 }}, "java.awt.Shape");
\r
256 Clazz.defineMethod (c$, "paintLayeredHighlights",
\r
257 function (a, b, c, d, e, f) {
\r
258 var g = this.getStartOffset ();
\r
259 var h = this.getEndOffset ();
\r
260 b = Math.max (g, b);
\r
261 c = Math.min (h, c);
\r
262 this.union ((this.painter).paintLayer (a, b, c, d, e, f));
\r
263 }, "java.awt.Graphics,~N,~N,java.awt.Shape,javax.swing.text.JTextComponent,javax.swing.text.View");
\r
266 c$.$DefaultHighlighter$SafeDamager$ = function () {
\r
267 Clazz.pu$h(self.c$);
\r
268 c$ = Clazz.decorateAsClass (function () {
\r
269 Clazz.prepareCallback (this, arguments);
\r
272 this.lastDoc = null;
\r
273 Clazz.instantialize (this, arguments);
\r
274 }, javax.swing.text.DefaultHighlighter, "SafeDamager", null, Runnable);
\r
275 Clazz.prepareFields (c$, function () {
\r
276 this.p0 = new java.util.Vector (10);
\r
277 this.p1 = new java.util.Vector (10);
\r
279 Clazz.overrideMethod (c$, "run",
\r
281 if (this.b$["javax.swing.text.DefaultHighlighter"].component != null) {
\r
282 var a = this.b$["javax.swing.text.DefaultHighlighter"].component.getUI ();
\r
283 if (a != null && this.lastDoc === this.b$["javax.swing.text.DefaultHighlighter"].component.getDocument ()) {
\r
284 var b = this.p0.size ();
\r
285 for (var c = 0; c < b; c++) {
\r
286 a.damageRange (this.b$["javax.swing.text.DefaultHighlighter"].component, (this.p0.get (c)).getOffset (), (this.p1.get (c)).getOffset ());
\r
288 }}this.p0.clear ();
\r
290 this.lastDoc = null;
\r
292 Clazz.defineMethod (c$, "damageRange",
\r
294 if (this.b$["javax.swing.text.DefaultHighlighter"].component == null) {
\r
296 this.lastDoc = null;
\r
298 }var c = this.p0.isEmpty ();
\r
299 var d = this.b$["javax.swing.text.DefaultHighlighter"].component.getDocument ();
\r
300 if (d !== this.lastDoc) {
\r
301 if (!this.p0.isEmpty ()) {
\r
308 javax.swing.SwingUtilities.invokeLater (this);
\r
309 }}, "javax.swing.text.Position,javax.swing.text.Position");
\r
312 Clazz.pu$h(self.c$);
\r
313 c$ = Clazz.decorateAsClass (function () {
\r
315 Clazz.instantialize (this, arguments);
\r
316 }, javax.swing.text.DefaultHighlighter, "DefaultHighlightPainter", javax.swing.text.LayeredHighlighter.LayerPainter);
\r
317 Clazz.makeConstructor (c$,
\r
319 Clazz.superConstructor (this, javax.swing.text.DefaultHighlighter.DefaultHighlightPainter, []);
\r
321 }, "java.awt.Color");
\r
322 Clazz.defineMethod (c$, "getColor",
\r
326 Clazz.overrideMethod (c$, "paint",
\r
327 function (a, b, c, d, e) {
\r
328 var f = d.getBounds ();
\r
330 var g = e.getUI ();
\r
331 var h = g.modelToView (e, b);
\r
332 var i = g.modelToView (e, c);
\r
333 var j = this.getColor ();
\r
335 a.setColor (e.getSelectionColor ());
\r
339 var k = h.union (i);
\r
340 a.fillRect (k.x, k.y, k.width, k.height);
\r
342 var k = f.x + f.width - h.x;
\r
343 a.fillRect (h.x, h.y, k, h.height);
\r
344 if ((h.y + h.height) != i.y) {
\r
345 a.fillRect (f.x, h.y + h.height, f.width, i.y - (h.y + h.height));
\r
346 }a.fillRect (f.x, i.y, (i.x - f.x), i.height);
\r
348 if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
\r
353 }, "java.awt.Graphics,~N,~N,java.awt.Shape,javax.swing.text.JTextComponent");
\r
354 Clazz.overrideMethod (c$, "paintLayer",
\r
355 function (a, b, c, d, e, f) {
\r
356 var g = this.getColor ();
\r
358 a.setColor (e.getSelectionColor ());
\r
362 if (b == f.getStartOffset () && c == f.getEndOffset ()) {
\r
363 if (Clazz.instanceOf (d, java.awt.Rectangle)) {
\r
366 h = d.getBounds ();
\r
369 var i = f.modelToView (b, javax.swing.text.Position.Bias.Forward, c, javax.swing.text.Position.Bias.Backward, d);
\r
370 h = (Clazz.instanceOf (i, java.awt.Rectangle)) ? i : i.getBounds ();
\r
372 if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
\r
379 h.width = Math.max (h.width, 1);
\r
380 a.fillRect (h.x, h.y, h.width, h.height);
\r
382 }, "java.awt.Graphics,~N,~N,java.awt.Shape,javax.swing.text.JTextComponent,javax.swing.text.View");
\r
384 c$.noHighlights = c$.prototype.noHighlights = new Array (0);
\r
385 c$.DefaultPainter = c$.prototype.DefaultPainter = new javax.swing.text.DefaultHighlighter.DefaultHighlightPainter (null);
\r