61706b7d3dea6ef3f9607d7000a46762779b8294
[jalviewjs.git] / site / swingjs / j2s / javax / swing / text / DefaultCaret.js
1 Clazz.declarePackage ("javax.swing.text");
2 Clazz.load (["java.awt.Rectangle", "java.awt.event.ActionListener", "$.FocusListener", "$.MouseListener", "$.MouseMotionListener", "java.beans.PropertyChangeListener", "javax.swing.event.DocumentListener", "javax.swing.text.Caret", "$.NavigationFilter", "javax.swing.event.EventListenerList"], "javax.swing.text.DefaultCaret", ["java.lang.Boolean", "$.IllegalArgumentException", "java.awt.Point", "java.awt.event.ActionEvent", "javax.swing.SwingUtilities", "javax.swing.event.ChangeEvent", "$.ChangeListener", "javax.swing.text.AbstractDocument", "javax.swing.text.AbstractDocument.UndoRedoDocumentEvent", "javax.swing.text.DefaultEditorKit", "$.DefaultHighlighter", "$.Document", "$.Position", "$.Segment", "$.StateInvariantError"], function () {
3 c$ = Clazz.decorateAsClass (function () {
4 this.listenerList = null;
5 this.changeEvent = null;
6 this.component = null;
7 this.updatePolicy = 0;
8 this.visible = false;
9 this.active = false;
10 this.dot = 0;
11 this.mark = 0;
12 this.selectionTag = null;
13 this.selectionVisible = false;
14 this.magicCaretPosition = null;
15 this.dotBias = null;
16 this.markBias = null;
17 this.dotLTR = false;
18 this.markLTR = false;
19 this.handler = null;
20 this.flagXPoints = null;
21 this.flagYPoints = null;
22 this.filterBypass = null;
23 this.ownsSelection = false;
24 this.forceCaretPositionChange = false;
25 this.shouldHandleRelease = false;
26 this.selectedWordEvent = null;
27 this.caretWidth = -1;
28 this.aspectRatio = -1;
29 if (!Clazz.isClassDefined ("javax.swing.text.DefaultCaret.SafeScroller")) {
30 javax.swing.text.DefaultCaret.$DefaultCaret$SafeScroller$ ();
31 }
32 if (!Clazz.isClassDefined ("javax.swing.text.DefaultCaret.Handler")) {
33 javax.swing.text.DefaultCaret.$DefaultCaret$Handler$ ();
34 }
35 if (!Clazz.isClassDefined ("javax.swing.text.DefaultCaret.DefaultFilterBypass")) {
36 javax.swing.text.DefaultCaret.$DefaultCaret$DefaultFilterBypass$ ();
37 }
38 Clazz.instantialize (this, arguments);
39 }, javax.swing.text, "DefaultCaret", java.awt.Rectangle, [javax.swing.text.Caret, java.awt.event.FocusListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener]);
40 Clazz.prepareFields (c$, function () {
41 this.listenerList =  new javax.swing.event.EventListenerList ();
42 this.handler = Clazz.innerTypeInstance (javax.swing.text.DefaultCaret.Handler, this, null);
43 this.flagXPoints =  Clazz.newIntArray (3, 0);
44 this.flagYPoints =  Clazz.newIntArray (3, 0);
45 });
46 Clazz.makeConstructor (c$, 
47 function () {
48 Clazz.superConstructor (this, javax.swing.text.DefaultCaret, []);
49 });
50 Clazz.defineMethod (c$, "setUpdatePolicy", 
51 function (policy) {
52 this.updatePolicy = policy;
53 }, "~N");
54 Clazz.defineMethod (c$, "getUpdatePolicy", 
55 function () {
56 return this.updatePolicy;
57 });
58 Clazz.defineMethod (c$, "getComponent", 
59 function () {
60 return this.component;
61 });
62 Clazz.defineMethod (c$, "repaint", 
63 function () {
64 if (this.component != null) {
65 this.component.repaint (this.x, this.y, this.width, this.height);
66 }});
67 Clazz.defineMethod (c$, "damage", 
68 function (r) {
69 if (r != null) {
70 var damageWidth = this.getCaretWidth (r.height);
71 this.x = r.x - 4 - (damageWidth >> 1);
72 this.y = r.y;
73 this.width = 9 + damageWidth;
74 this.height = r.height;
75 this.repaint ();
76 }}, "java.awt.Rectangle");
77 Clazz.defineMethod (c$, "adjustVisibility", 
78 function (nloc) {
79 if (this.component == null) {
80 return;
81 }if (javax.swing.SwingUtilities.isEventDispatchThread ()) {
82 this.component.scrollRectToVisible (nloc);
83 } else {
84 javax.swing.SwingUtilities.invokeLater (Clazz.innerTypeInstance (javax.swing.text.DefaultCaret.SafeScroller, this, null, nloc));
85 }}, "java.awt.Rectangle");
86 Clazz.defineMethod (c$, "getSelectionPainter", 
87 function () {
88 return javax.swing.text.DefaultHighlighter.DefaultPainter;
89 });
90 Clazz.defineMethod (c$, "positionCaret", 
91 function (e) {
92 var pt =  new java.awt.Point (e.getX (), e.getY ());
93 var biasRet =  new Array (1);
94 var pos = this.component.getUI ().viewToModel (this.component, pt, biasRet);
95 if (biasRet[0] == null) biasRet[0] = javax.swing.text.Position.Bias.Forward;
96 if (pos >= 0) {
97 this.setDot (pos, biasRet[0]);
98 }}, "java.awt.event.MouseEvent");
99 Clazz.defineMethod (c$, "moveCaret", 
100 function (e) {
101 var pt =  new java.awt.Point (e.getX (), e.getY ());
102 var biasRet =  new Array (1);
103 var pos = this.component.getUI ().viewToModel (this.component, pt, biasRet);
104 if (biasRet[0] == null) biasRet[0] = javax.swing.text.Position.Bias.Forward;
105 if (pos >= 0) {
106 this.moveDot (pos, biasRet[0]);
107 }}, "java.awt.event.MouseEvent");
108 Clazz.overrideMethod (c$, "focusGained", 
109 function (e) {
110 if (this.component.isEnabled ()) {
111 if (this.component.isEditable ()) {
112 this.setVisible (true);
113 }this.setSelectionVisible (true);
114 }}, "java.awt.event.FocusEvent");
115 Clazz.overrideMethod (c$, "focusLost", 
116 function (e) {
117 this.setVisible (false);
118 this.setSelectionVisible (this.ownsSelection || e.isTemporary ());
119 }, "java.awt.event.FocusEvent");
120 Clazz.overrideMethod (c$, "mouseClicked", 
121 function (e) {
122 var nclicks = e.getClickCount ();
123 if (!e.isConsumed ()) {
124 if (javax.swing.SwingUtilities.isLeftMouseButton (e)) {
125 if (nclicks == 1) {
126 this.selectedWordEvent = null;
127 }} else if (javax.swing.SwingUtilities.isMiddleMouseButton (e)) {
128 }}}, "java.awt.event.MouseEvent");
129 Clazz.overrideMethod (c$, "mousePressed", 
130 function (e) {
131 if (javax.swing.SwingUtilities.isLeftMouseButton (e)) {
132 if (e.isConsumed ()) {
133 this.shouldHandleRelease = true;
134 } else {
135 this.shouldHandleRelease = false;
136 this.adjustCaretAndFocus (e);
137 }}}, "java.awt.event.MouseEvent");
138 Clazz.defineMethod (c$, "adjustCaretAndFocus", 
139 function (e) {
140 this.adjustCaret (e);
141 this.adjustFocus (false);
142 }, "java.awt.event.MouseEvent");
143 Clazz.defineMethod (c$, "adjustCaret", 
144  function (e) {
145 if ((e.getModifiers () & 1) != 0 && this.getDot () != -1) {
146 this.moveCaret (e);
147 } else {
148 this.positionCaret (e);
149 }}, "java.awt.event.MouseEvent");
150 Clazz.defineMethod (c$, "adjustFocus", 
151  function (inWindow) {
152 if ((this.component != null) && this.component.isEnabled () && this.component.isRequestFocusEnabled ()) {
153 if (inWindow) {
154 this.component.requestFocusInWindow ();
155 } else {
156 this.component.requestFocus ();
157 }}}, "~B");
158 Clazz.overrideMethod (c$, "mouseReleased", 
159 function (e) {
160 if (!e.isConsumed () && this.shouldHandleRelease && javax.swing.SwingUtilities.isLeftMouseButton (e)) {
161 this.adjustCaretAndFocus (e);
162 }}, "java.awt.event.MouseEvent");
163 Clazz.overrideMethod (c$, "mouseEntered", 
164 function (e) {
165 }, "java.awt.event.MouseEvent");
166 Clazz.overrideMethod (c$, "mouseExited", 
167 function (e) {
168 }, "java.awt.event.MouseEvent");
169 Clazz.overrideMethod (c$, "mouseDragged", 
170 function (e) {
171 if ((!e.isConsumed ()) && javax.swing.SwingUtilities.isLeftMouseButton (e)) {
172 this.moveCaret (e);
173 }}, "java.awt.event.MouseEvent");
174 Clazz.overrideMethod (c$, "mouseMoved", 
175 function (e) {
176 }, "java.awt.event.MouseEvent");
177 Clazz.overrideMethod (c$, "paint", 
178 function (g) {
179 if (this.isVisible ()) {
180 try {
181 var mapper = this.component.getUI ();
182 var r = mapper.modelToView (this.component, this.dot, this.dotBias);
183 if ((r == null) || ((r.width == 0) && (r.height == 0))) {
184 return;
185 }if (this.width > 0 && this.height > 0 && !this._contains (r.x, r.y, r.width, r.height)) {
186 var clip = g.getClipBounds ();
187 if (clip != null && !clip.contains (this)) {
188 this.repaint ();
189 }this.damage (r);
190 }g.setColor (this.component.getCaretColor ());
191 var paintWidth = this.getCaretWidth (r.height);
192 r.x -= paintWidth >> 1;
193 g.fillRect (r.x, r.y, paintWidth, r.height);
194 var doc = this.component.getDocument ();
195 if (Clazz.instanceOf (doc, javax.swing.text.AbstractDocument)) {
196 var bidi = (doc).getBidiRootElement ();
197 if ((bidi != null) && (bidi.getElementCount () > 1)) {
198 this.flagXPoints[0] = r.x + ((this.dotLTR) ? paintWidth : 0);
199 this.flagYPoints[0] = r.y;
200 this.flagXPoints[1] = this.flagXPoints[0];
201 this.flagYPoints[1] = this.flagYPoints[0] + 4;
202 this.flagXPoints[2] = this.flagXPoints[0] + ((this.dotLTR) ? 4 : -4);
203 this.flagYPoints[2] = this.flagYPoints[0];
204 g.fillPolygon (this.flagXPoints, this.flagYPoints, 3);
205 }}} catch (e) {
206 if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
207 } else {
208 throw e;
209 }
210 }
211 }}, "java.awt.Graphics");
212 Clazz.overrideMethod (c$, "install", 
213 function (c) {
214 this.component = c;
215 var doc = c.getDocument ();
216 this.dot = this.mark = 0;
217 this.dotLTR = this.markLTR = true;
218 this.dotBias = this.markBias = javax.swing.text.Position.Bias.Forward;
219 if (doc != null) {
220 doc.addDocumentListener (this.handler);
221 }c.addPropertyChangeListener (this.handler);
222 c.addFocusListener (this);
223 c.addMouseListener (this);
224 c.addMouseMotionListener (this);
225 if (this.component.hasFocus ()) {
226 this.focusGained (null);
227 }var ratio = c.getClientProperty ("caretAspectRatio");
228 if (ratio != null) {
229 this.aspectRatio = ratio.floatValue ();
230 } else {
231 this.aspectRatio = -1;
232 }var width = c.getClientProperty ("caretWidth");
233 if (width != null) {
234 this.caretWidth = width.intValue ();
235 } else {
236 this.caretWidth = -1;
237 }}, "javax.swing.text.JTextComponent");
238 Clazz.overrideMethod (c$, "deinstall", 
239 function (c) {
240 c.removeMouseListener (this);
241 c.removeMouseMotionListener (this);
242 c.removeFocusListener (this);
243 c.removePropertyChangeListener (this.handler);
244 var doc = c.getDocument ();
245 if (doc != null) {
246 doc.removeDocumentListener (this.handler);
247 }{
248 this.component = null;
249 }}, "javax.swing.text.JTextComponent");
250 Clazz.overrideMethod (c$, "addChangeListener", 
251 function (l) {
252 this.listenerList.add (javax.swing.event.ChangeListener, l);
253 }, "javax.swing.event.ChangeListener");
254 Clazz.overrideMethod (c$, "removeChangeListener", 
255 function (l) {
256 this.listenerList.remove (javax.swing.event.ChangeListener, l);
257 }, "javax.swing.event.ChangeListener");
258 Clazz.defineMethod (c$, "getChangeListeners", 
259 function () {
260 return this.listenerList.getListeners (javax.swing.event.ChangeListener);
261 });
262 Clazz.defineMethod (c$, "fireStateChanged", 
263 function () {
264 var listeners = this.listenerList.getListenerList ();
265 for (var i = listeners.length - 2; i >= 0; i -= 2) {
266 if (listeners[i] === javax.swing.event.ChangeListener) {
267 if (this.changeEvent == null) this.changeEvent =  new javax.swing.event.ChangeEvent (this);
268 (listeners[i + 1]).stateChanged (this.changeEvent);
269 }}
270 });
271 Clazz.defineMethod (c$, "getListeners", 
272 function (listenerType) {
273 return this.listenerList.getListeners (listenerType);
274 }, "Class");
275 Clazz.overrideMethod (c$, "setSelectionVisible", 
276 function (vis) {
277 if (vis != this.selectionVisible) {
278 this.selectionVisible = vis;
279 if (this.selectionVisible) {
280 var h = this.component.getHighlighter ();
281 if ((this.dot != this.mark) && (h != null) && (this.selectionTag == null)) {
282 var p0 = Math.min (this.dot, this.mark);
283 var p1 = Math.max (this.dot, this.mark);
284 var p = this.getSelectionPainter ();
285 try {
286 this.selectionTag = h.addHighlight (p0, p1, p);
287 } catch (bl) {
288 if (Clazz.exceptionOf (bl, javax.swing.text.BadLocationException)) {
289 this.selectionTag = null;
290 } else {
291 throw bl;
292 }
293 }
294 }} else {
295 if (this.selectionTag != null) {
296 var h = this.component.getHighlighter ();
297 h.removeHighlight (this.selectionTag);
298 this.selectionTag = null;
299 }}}}, "~B");
300 Clazz.overrideMethod (c$, "isSelectionVisible", 
301 function () {
302 return this.selectionVisible;
303 });
304 Clazz.defineMethod (c$, "isActive", 
305 function () {
306 return this.active;
307 });
308 Clazz.overrideMethod (c$, "isVisible", 
309 function () {
310 return this.visible;
311 });
312 Clazz.overrideMethod (c$, "setVisible", 
313 function (e) {
314 if (this.component != null) {
315 this.active = e;
316 var mapper = this.component.getUI ();
317 if (this.visible != e) {
318 this.visible = e;
319 try {
320 var loc = mapper.modelToView (this.component, this.dot, this.dotBias);
321 this.damage (loc);
322 } catch (badloc) {
323 if (Clazz.exceptionOf (badloc, javax.swing.text.BadLocationException)) {
324 } else {
325 throw badloc;
326 }
327 }
328 }}}, "~B");
329 Clazz.overrideMethod (c$, "setBlinkRate", 
330 function (rate) {
331 }, "~N");
332 Clazz.overrideMethod (c$, "getBlinkRate", 
333 function () {
334 return 0;
335 });
336 Clazz.overrideMethod (c$, "getDot", 
337 function () {
338 return this.dot;
339 });
340 Clazz.overrideMethod (c$, "getMark", 
341 function () {
342 return this.mark;
343 });
344 Clazz.defineMethod (c$, "setDot", 
345 function (dot) {
346 this.setDot (dot, javax.swing.text.Position.Bias.Forward);
347 }, "~N");
348 Clazz.defineMethod (c$, "moveDot", 
349 function (dot) {
350 this.moveDot (dot, javax.swing.text.Position.Bias.Forward);
351 }, "~N");
352 Clazz.defineMethod (c$, "moveDot", 
353 function (dot, dotBias) {
354 if (dotBias == null) {
355 throw  new IllegalArgumentException ("null bias");
356 }if (!this.component.isEnabled ()) {
357 this.setDot (dot, dotBias);
358 return;
359 }if (dot != this.dot) {
360 var filter = this.component.getNavigationFilter ();
361 if (filter != null) {
362 filter.moveDot (this.getFilterBypass (), dot, dotBias);
363 } else {
364 this.handleMoveDot (dot, dotBias);
365 }}}, "~N,javax.swing.text.Position.Bias");
366 Clazz.defineMethod (c$, "handleMoveDot", 
367 function (dot, dotBias) {
368 this.changeCaretPosition (dot, dotBias);
369 if (this.selectionVisible) {
370 var h = this.component.getHighlighter ();
371 if (h != null) {
372 var p0 = Math.min (dot, this.mark);
373 var p1 = Math.max (dot, this.mark);
374 if (p0 == p1) {
375 if (this.selectionTag != null) {
376 h.removeHighlight (this.selectionTag);
377 this.selectionTag = null;
378 }} else {
379 try {
380 if (this.selectionTag != null) {
381 h.changeHighlight (this.selectionTag, p0, p1);
382 } else {
383 var p = this.getSelectionPainter ();
384 this.selectionTag = h.addHighlight (p0, p1, p);
385 }} catch (e) {
386 if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
387 throw  new javax.swing.text.StateInvariantError ("Bad caret position");
388 } else {
389 throw e;
390 }
391 }
392 }}}}, "~N,javax.swing.text.Position.Bias");
393 Clazz.defineMethod (c$, "setDot", 
394 function (dot, dotBias) {
395 if (dotBias == null) {
396 throw  new IllegalArgumentException ("null bias");
397 }var filter = this.component.getNavigationFilter ();
398 if (filter != null) {
399 filter.setDot (this.getFilterBypass (), dot, dotBias);
400 } else {
401 this.handleSetDot (dot, dotBias);
402 }}, "~N,javax.swing.text.Position.Bias");
403 Clazz.defineMethod (c$, "handleSetDot", 
404 function (dot, dotBias) {
405 var doc = this.component.getDocument ();
406 if (doc != null) {
407 dot = Math.min (dot, doc.getLength ());
408 }dot = Math.max (dot, 0);
409 if (dot == 0) dotBias = javax.swing.text.Position.Bias.Forward;
410 this.mark = dot;
411 if (this.dot != dot || this.dotBias !== dotBias || this.selectionTag != null || this.forceCaretPositionChange) {
412 this.changeCaretPosition (dot, dotBias);
413 }this.markBias = this.dotBias;
414 this.markLTR = this.dotLTR;
415 var h = this.component.getHighlighter ();
416 if ((h != null) && (this.selectionTag != null)) {
417 h.removeHighlight (this.selectionTag);
418 this.selectionTag = null;
419 }}, "~N,javax.swing.text.Position.Bias");
420 Clazz.defineMethod (c$, "getDotBias", 
421 function () {
422 return this.dotBias;
423 });
424 Clazz.defineMethod (c$, "getMarkBias", 
425 function () {
426 return this.markBias;
427 });
428 Clazz.defineMethod (c$, "isDotLeftToRight", 
429 function () {
430 return this.dotLTR;
431 });
432 Clazz.defineMethod (c$, "isMarkLeftToRight", 
433 function () {
434 return this.markLTR;
435 });
436 Clazz.defineMethod (c$, "isPositionLTR", 
437 function (position, bias) {
438 var doc = this.component.getDocument ();
439 if (Clazz.instanceOf (doc, javax.swing.text.AbstractDocument)) {
440 if (bias === javax.swing.text.Position.Bias.Backward && --position < 0) position = 0;
441 return (doc).isLeftToRight (position, position);
442 }return true;
443 }, "~N,javax.swing.text.Position.Bias");
444 Clazz.defineMethod (c$, "guessBiasForOffset", 
445 function (offset, lastBias, lastLTR) {
446 if (lastLTR != this.isPositionLTR (offset, lastBias)) {
447 lastBias = javax.swing.text.Position.Bias.Backward;
448 } else if (lastBias !== javax.swing.text.Position.Bias.Backward && lastLTR != this.isPositionLTR (offset, javax.swing.text.Position.Bias.Backward)) {
449 lastBias = javax.swing.text.Position.Bias.Backward;
450 }if (lastBias === javax.swing.text.Position.Bias.Backward && offset > 0) {
451 try {
452 var s =  new javax.swing.text.Segment ();
453 this.component.getDocument ().getText (offset - 1, 1, s);
454 if (s.count > 0 && s.array[s.offset] == '\n') {
455 lastBias = javax.swing.text.Position.Bias.Forward;
456 }} catch (ble) {
457 if (Clazz.exceptionOf (ble, javax.swing.text.BadLocationException)) {
458 } else {
459 throw ble;
460 }
461 }
462 }return lastBias;
463 }, "~N,javax.swing.text.Position.Bias,~B");
464 Clazz.defineMethod (c$, "changeCaretPosition", 
465 function (dot, dotBias) {
466 this.repaint ();
467 this.dot = dot;
468 this.dotBias = dotBias;
469 this.dotLTR = this.isPositionLTR (dot, dotBias);
470 this.fireStateChanged ();
471 this.updateSystemSelection ();
472 this.setMagicCaretPosition (null);
473 var callRepaintNewCaret = ((Clazz.isClassDefined ("javax.swing.text.DefaultCaret$1") ? 0 : javax.swing.text.DefaultCaret.$DefaultCaret$1$ ()), Clazz.innerTypeInstance (javax.swing.text.DefaultCaret$1, this, null));
474 javax.swing.SwingUtilities.invokeLater (callRepaintNewCaret);
475 }, "~N,javax.swing.text.Position.Bias");
476 Clazz.defineMethod (c$, "repaintNewCaret", 
477 function () {
478 if (this.component != null) {
479 var mapper = this.component.getUI ();
480 var doc = this.component.getDocument ();
481 if ((mapper != null) && (doc != null)) {
482 var newLoc;
483 try {
484 newLoc = mapper.modelToView (this.component, this.dot, this.dotBias);
485 } catch (e) {
486 if (Clazz.exceptionOf (e, javax.swing.text.BadLocationException)) {
487 newLoc = null;
488 } else {
489 throw e;
490 }
491 }
492 if (newLoc != null) {
493 this.adjustVisibility (newLoc);
494 if (this.getMagicCaretPosition () == null) {
495 this.setMagicCaretPosition ( new java.awt.Point (newLoc.x, newLoc.y));
496 }}this.damage (newLoc);
497 }}});
498 Clazz.defineMethod (c$, "updateSystemSelection", 
499  function () {
500 });
501 Clazz.defineMethod (c$, "ensureValidPosition", 
502  function () {
503 var length = this.component.getDocument ().getLength ();
504 if (this.dot > length || this.mark > length) {
505 this.handleSetDot (length, javax.swing.text.Position.Bias.Forward);
506 }});
507 Clazz.overrideMethod (c$, "setMagicCaretPosition", 
508 function (p) {
509 this.magicCaretPosition = p;
510 }, "java.awt.Point");
511 Clazz.overrideMethod (c$, "getMagicCaretPosition", 
512 function () {
513 return this.magicCaretPosition;
514 });
515 Clazz.overrideMethod (c$, "equals", 
516 function (obj) {
517 return (this === obj);
518 }, "~O");
519 Clazz.overrideMethod (c$, "toString", 
520 function () {
521 var s = "Dot=(" + this.dot + ", " + this.dotBias + ")";
522 s += " Mark=(" + this.mark + ", " + this.markBias + ")";
523 return s;
524 });
525 Clazz.defineMethod (c$, "getFilterBypass", 
526  function () {
527 if (this.filterBypass == null) {
528 this.filterBypass = Clazz.innerTypeInstance (javax.swing.text.DefaultCaret.DefaultFilterBypass, this, null);
529 }return this.filterBypass;
530 });
531 Clazz.defineMethod (c$, "_contains", 
532  function (X, Y, W, H) {
533 var w = this.width;
534 var h = this.height;
535 if ((w | h | W | H) < 0) {
536 return false;
537 }var x = this.x;
538 var y = this.y;
539 if (X < x || Y < y) {
540 return false;
541 }if (W > 0) {
542 w += x;
543 W += X;
544 if (W <= X) {
545 if (w >= x || W > w) return false;
546 } else {
547 if (w >= x && W > w) return false;
548 }} else if ((x + w) < X) {
549 return false;
550 }if (H > 0) {
551 h += y;
552 H += Y;
553 if (H <= Y) {
554 if (h >= y || H > h) return false;
555 } else {
556 if (h >= y && H > h) return false;
557 }} else if ((y + h) < Y) {
558 return false;
559 }return true;
560 }, "~N,~N,~N,~N");
561 Clazz.defineMethod (c$, "getCaretWidth", 
562 function (height) {
563 if (this.aspectRatio > -1) {
564 return Clazz.floatToInt (this.aspectRatio * height) + 1;
565 }if (this.caretWidth > -1) {
566 return this.caretWidth;
567 }return 1;
568 }, "~N");
569 c$.$DefaultCaret$SafeScroller$ = function () {
570 Clazz.pu$h(self.c$);
571 c$ = Clazz.decorateAsClass (function () {
572 Clazz.prepareCallback (this, arguments);
573 this.r = null;
574 Clazz.instantialize (this, arguments);
575 }, javax.swing.text.DefaultCaret, "SafeScroller", null, Runnable);
576 Clazz.makeConstructor (c$, 
577 function (a) {
578 this.r = a;
579 }, "java.awt.Rectangle");
580 Clazz.overrideMethod (c$, "run", 
581 function () {
582 if (this.b$["javax.swing.text.DefaultCaret"].component != null) {
583 this.b$["javax.swing.text.DefaultCaret"].component.scrollRectToVisible (this.r);
584 }});
585 c$ = Clazz.p0p ();
586 };
587 c$.$DefaultCaret$Handler$ = function () {
588 Clazz.pu$h(self.c$);
589 c$ = Clazz.decorateAsClass (function () {
590 Clazz.prepareCallback (this, arguments);
591 Clazz.instantialize (this, arguments);
592 }, javax.swing.text.DefaultCaret, "Handler", null, [java.beans.PropertyChangeListener, javax.swing.event.DocumentListener, java.awt.event.ActionListener]);
593 Clazz.overrideMethod (c$, "actionPerformed", 
594 function (a) {
595 if (this.b$["javax.swing.text.DefaultCaret"].width == 0 || this.b$["javax.swing.text.DefaultCaret"].height == 0) {
596 if (this.b$["javax.swing.text.DefaultCaret"].component != null) {
597 var b = this.b$["javax.swing.text.DefaultCaret"].component.getUI ();
598 try {
599 var c = b.modelToView (this.b$["javax.swing.text.DefaultCaret"].component, this.b$["javax.swing.text.DefaultCaret"].dot, this.b$["javax.swing.text.DefaultCaret"].dotBias);
600 if (c != null && c.width != 0 && c.height != 0) {
601 this.b$["javax.swing.text.DefaultCaret"].damage (c);
602 }} catch (ble) {
603 if (Clazz.exceptionOf (ble, javax.swing.text.BadLocationException)) {
604 } else {
605 throw ble;
606 }
607 }
608 }}this.b$["javax.swing.text.DefaultCaret"].visible = !this.b$["javax.swing.text.DefaultCaret"].visible;
609 this.b$["javax.swing.text.DefaultCaret"].repaint ();
610 }, "java.awt.event.ActionEvent");
611 Clazz.overrideMethod (c$, "insertUpdate", 
612 function (a) {
613 if (this.b$["javax.swing.text.DefaultCaret"].getUpdatePolicy () == 1 || (this.b$["javax.swing.text.DefaultCaret"].getUpdatePolicy () == 0 && !javax.swing.SwingUtilities.isEventDispatchThread ())) {
614 if ((a.getOffset () <= this.b$["javax.swing.text.DefaultCaret"].dot || a.getOffset () <= this.b$["javax.swing.text.DefaultCaret"].mark) && this.b$["javax.swing.text.DefaultCaret"].selectionTag != null) {
615 try {
616 this.b$["javax.swing.text.DefaultCaret"].component.getHighlighter ().changeHighlight (this.b$["javax.swing.text.DefaultCaret"].selectionTag, Math.min (this.b$["javax.swing.text.DefaultCaret"].dot, this.b$["javax.swing.text.DefaultCaret"].mark), Math.max (this.b$["javax.swing.text.DefaultCaret"].dot, this.b$["javax.swing.text.DefaultCaret"].mark));
617 } catch (e1) {
618 if (Clazz.exceptionOf (e1, javax.swing.text.BadLocationException)) {
619 e1.printStackTrace ();
620 } else {
621 throw e1;
622 }
623 }
624 }return;
625 }var b = 0;
626 var c = a.getOffset ();
627 var d = a.getLength ();
628 var e = this.b$["javax.swing.text.DefaultCaret"].dot;
629 var f = 0;
630 if (Clazz.instanceOf (a, javax.swing.text.AbstractDocument.UndoRedoDocumentEvent)) {
631 this.b$["javax.swing.text.DefaultCaret"].setDot (c + d);
632 return;
633 }if (e >= c) {
634 e += d;
635 f |= 1;
636 }var g = this.b$["javax.swing.text.DefaultCaret"].mark;
637 if (g >= c) {
638 g += d;
639 f |= 2;
640 }if (f != 0) {
641 var h = this.b$["javax.swing.text.DefaultCaret"].dotBias;
642 if (this.b$["javax.swing.text.DefaultCaret"].dot == c) {
643 var i = this.b$["javax.swing.text.DefaultCaret"].component.getDocument ();
644 var j;
645 try {
646 var k =  new javax.swing.text.Segment ();
647 i.getText (e - 1, 1, k);
648 j = (k.count > 0 && k.array[k.offset] == '\n');
649 } catch (ble) {
650 if (Clazz.exceptionOf (ble, javax.swing.text.BadLocationException)) {
651 j = false;
652 } else {
653 throw ble;
654 }
655 }
656 if (j) {
657 h = javax.swing.text.Position.Bias.Forward;
658 } else {
659 h = javax.swing.text.Position.Bias.Backward;
660 }}if (g == e) {
661 this.b$["javax.swing.text.DefaultCaret"].setDot (e, h);
662 this.b$["javax.swing.text.DefaultCaret"].ensureValidPosition ();
663 } else {
664 this.b$["javax.swing.text.DefaultCaret"].setDot (g, this.b$["javax.swing.text.DefaultCaret"].markBias);
665 if (this.b$["javax.swing.text.DefaultCaret"].getDot () == g) {
666 this.b$["javax.swing.text.DefaultCaret"].moveDot (e, h);
667 }this.b$["javax.swing.text.DefaultCaret"].ensureValidPosition ();
668 }}}, "javax.swing.event.DocumentEvent");
669 Clazz.overrideMethod (c$, "removeUpdate", 
670 function (a) {
671 if (this.b$["javax.swing.text.DefaultCaret"].getUpdatePolicy () == 1 || (this.b$["javax.swing.text.DefaultCaret"].getUpdatePolicy () == 0 && !javax.swing.SwingUtilities.isEventDispatchThread ())) {
672 var b = this.b$["javax.swing.text.DefaultCaret"].component.getDocument ().getLength ();
673 this.b$["javax.swing.text.DefaultCaret"].dot = Math.min (this.b$["javax.swing.text.DefaultCaret"].dot, b);
674 this.b$["javax.swing.text.DefaultCaret"].mark = Math.min (this.b$["javax.swing.text.DefaultCaret"].mark, b);
675 if ((a.getOffset () < this.b$["javax.swing.text.DefaultCaret"].dot || a.getOffset () < this.b$["javax.swing.text.DefaultCaret"].mark) && this.b$["javax.swing.text.DefaultCaret"].selectionTag != null) {
676 try {
677 this.b$["javax.swing.text.DefaultCaret"].component.getHighlighter ().changeHighlight (this.b$["javax.swing.text.DefaultCaret"].selectionTag, Math.min (this.b$["javax.swing.text.DefaultCaret"].dot, this.b$["javax.swing.text.DefaultCaret"].mark), Math.max (this.b$["javax.swing.text.DefaultCaret"].dot, this.b$["javax.swing.text.DefaultCaret"].mark));
678 } catch (e1) {
679 if (Clazz.exceptionOf (e1, javax.swing.text.BadLocationException)) {
680 e1.printStackTrace ();
681 } else {
682 throw e1;
683 }
684 }
685 }return;
686 }var b = a.getOffset ();
687 var c = b + a.getLength ();
688 var d = 0;
689 var e = this.b$["javax.swing.text.DefaultCaret"].dot;
690 var f = false;
691 var g = this.b$["javax.swing.text.DefaultCaret"].mark;
692 var h = false;
693 if (Clazz.instanceOf (a, javax.swing.text.AbstractDocument.UndoRedoDocumentEvent)) {
694 this.b$["javax.swing.text.DefaultCaret"].setDot (b);
695 return;
696 }if (e >= c) {
697 e -= (c - b);
698 if (e == c) {
699 f = true;
700 }} else if (e >= b) {
701 e = b;
702 f = true;
703 }if (g >= c) {
704 g -= (c - b);
705 if (g == c) {
706 h = true;
707 }} else if (g >= b) {
708 g = b;
709 h = true;
710 }if (g == e) {
711 this.b$["javax.swing.text.DefaultCaret"].forceCaretPositionChange = true;
712 try {
713 this.b$["javax.swing.text.DefaultCaret"].setDot (e, this.b$["javax.swing.text.DefaultCaret"].guessBiasForOffset (e, this.b$["javax.swing.text.DefaultCaret"].dotBias, this.b$["javax.swing.text.DefaultCaret"].dotLTR));
714 } finally {
715 this.b$["javax.swing.text.DefaultCaret"].forceCaretPositionChange = false;
716 }
717 this.b$["javax.swing.text.DefaultCaret"].ensureValidPosition ();
718 } else {
719 var i = this.b$["javax.swing.text.DefaultCaret"].dotBias;
720 var j = this.b$["javax.swing.text.DefaultCaret"].markBias;
721 if (f) {
722 i = this.b$["javax.swing.text.DefaultCaret"].guessBiasForOffset (e, i, this.b$["javax.swing.text.DefaultCaret"].dotLTR);
723 }if (h) {
724 j = this.b$["javax.swing.text.DefaultCaret"].guessBiasForOffset (this.b$["javax.swing.text.DefaultCaret"].mark, j, this.b$["javax.swing.text.DefaultCaret"].markLTR);
725 }this.b$["javax.swing.text.DefaultCaret"].setDot (g, j);
726 if (this.b$["javax.swing.text.DefaultCaret"].getDot () == g) {
727 this.b$["javax.swing.text.DefaultCaret"].moveDot (e, i);
728 }this.b$["javax.swing.text.DefaultCaret"].ensureValidPosition ();
729 }}, "javax.swing.event.DocumentEvent");
730 Clazz.overrideMethod (c$, "changedUpdate", 
731 function (a) {
732 if (this.b$["javax.swing.text.DefaultCaret"].getUpdatePolicy () == 1 || (this.b$["javax.swing.text.DefaultCaret"].getUpdatePolicy () == 0 && !javax.swing.SwingUtilities.isEventDispatchThread ())) {
733 return;
734 }if (Clazz.instanceOf (a, javax.swing.text.AbstractDocument.UndoRedoDocumentEvent)) {
735 this.b$["javax.swing.text.DefaultCaret"].setDot (a.getOffset () + a.getLength ());
736 }}, "javax.swing.event.DocumentEvent");
737 Clazz.overrideMethod (c$, "propertyChange", 
738 function (a) {
739 var b = a.getOldValue ();
740 var c = a.getNewValue ();
741 if ((Clazz.instanceOf (b, javax.swing.text.Document)) || (Clazz.instanceOf (c, javax.swing.text.Document))) {
742 this.b$["javax.swing.text.DefaultCaret"].setDot (0);
743 if (b != null) {
744 (b).removeDocumentListener (this);
745 }if (c != null) {
746 (c).addDocumentListener (this);
747 }} else if ("enabled".equals (a.getPropertyName ())) {
748 var d = a.getNewValue ();
749 if (this.b$["javax.swing.text.DefaultCaret"].component.isFocusOwner ()) {
750 if (d === Boolean.TRUE) {
751 if (this.b$["javax.swing.text.DefaultCaret"].component.isEditable ()) {
752 this.b$["javax.swing.text.DefaultCaret"].setVisible (true);
753 }this.b$["javax.swing.text.DefaultCaret"].setSelectionVisible (true);
754 } else {
755 this.b$["javax.swing.text.DefaultCaret"].setVisible (false);
756 this.b$["javax.swing.text.DefaultCaret"].setSelectionVisible (false);
757 }}} else if ("caretWidth".equals (a.getPropertyName ())) {
758 var d = a.getNewValue ();
759 if (d != null) {
760 this.b$["javax.swing.text.DefaultCaret"].caretWidth = d.intValue ();
761 } else {
762 this.b$["javax.swing.text.DefaultCaret"].caretWidth = -1;
763 }this.b$["javax.swing.text.DefaultCaret"].repaint ();
764 } else if ("caretAspectRatio".equals (a.getPropertyName ())) {
765 var d = a.getNewValue ();
766 if (d != null) {
767 this.b$["javax.swing.text.DefaultCaret"].aspectRatio = d.floatValue ();
768 } else {
769 this.b$["javax.swing.text.DefaultCaret"].aspectRatio = -1;
770 }this.b$["javax.swing.text.DefaultCaret"].repaint ();
771 }}, "java.beans.PropertyChangeEvent");
772 c$ = Clazz.p0p ();
773 };
774 c$.$DefaultCaret$DefaultFilterBypass$ = function () {
775 Clazz.pu$h(self.c$);
776 c$ = Clazz.decorateAsClass (function () {
777 Clazz.prepareCallback (this, arguments);
778 Clazz.instantialize (this, arguments);
779 }, javax.swing.text.DefaultCaret, "DefaultFilterBypass", javax.swing.text.NavigationFilter.FilterBypass);
780 Clazz.overrideMethod (c$, "getCaret", 
781 function () {
782 return this.b$["javax.swing.text.DefaultCaret"];
783 });
784 Clazz.overrideMethod (c$, "setDot", 
785 function (a, b) {
786 this.b$["javax.swing.text.DefaultCaret"].handleSetDot (a, b);
787 }, "~N,javax.swing.text.Position.Bias");
788 Clazz.overrideMethod (c$, "moveDot", 
789 function (a, b) {
790 this.b$["javax.swing.text.DefaultCaret"].handleMoveDot (a, b);
791 }, "~N,javax.swing.text.Position.Bias");
792 c$ = Clazz.p0p ();
793 };
794 c$.$DefaultCaret$1$ = function () {
795 Clazz.pu$h(self.c$);
796 c$ = Clazz.declareAnonymous (javax.swing.text, "DefaultCaret$1", null, Runnable);
797 Clazz.overrideMethod (c$, "run", 
798 function () {
799 this.b$["javax.swing.text.DefaultCaret"].repaintNewCaret ();
800 });
801 c$ = Clazz.p0p ();
802 };
803 Clazz.defineStatics (c$,
804 "UPDATE_WHEN_ON_EDT", 0,
805 "NEVER_UPDATE", 1,
806 "ALWAYS_UPDATE", 2,
807 "$selectWord", null,
808 "selectLine", null);
809 });