JAL-1807 Bob
[jalviewjs.git] / site / j2s / swingjs / plaf / JSTextListener.js
1 Clazz.declarePackage ("swingjs.plaf");
2 Clazz.load (["java.awt.event.FocusListener", "$.MouseListener", "$.MouseMotionListener", "java.beans.PropertyChangeListener", "javax.swing.event.ChangeListener", "$.DocumentListener", "swingjs.plaf.JSEventHandler"], "swingjs.plaf.JSTextListener", ["javax.swing.SwingUtilities"], function () {
3 c$ = Clazz.decorateAsClass (function () {
4 this.b = null;
5 this.haveDocument = false;
6 Clazz.instantialize (this, arguments);
7 }, swingjs.plaf, "JSTextListener", null, [java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.FocusListener, javax.swing.event.ChangeListener, java.beans.PropertyChangeListener, javax.swing.event.DocumentListener, swingjs.plaf.JSEventHandler]);
8 Clazz.makeConstructor (c$, 
9 function (b) {
10 this.b = b;
11 }, "javax.swing.text.JTextComponent");
12 Clazz.defineMethod (c$, "checkDocument", 
13 function () {
14 if (!this.haveDocument && this.b.getDocument () != null) {
15 this.haveDocument = true;
16 this.b.getDocument ().addDocumentListener (this);
17 }});
18 Clazz.overrideMethod (c$, "propertyChange", 
19 function (e) {
20 var prop = e.getPropertyName ();
21 System.out.println ("JSTextListener property change: " + prop + " " + e.getSource ());
22 if ("font" === prop || "foreground" === prop || "preferredSize" === prop) {
23 var b = e.getSource ();
24 (b.getUI ()).notifyPropertyChanged (prop);
25 }}, "java.beans.PropertyChangeEvent");
26 Clazz.overrideMethod (c$, "stateChanged", 
27 function (e) {
28 var b = e.getSource ();
29 b.repaint ();
30 }, "javax.swing.event.ChangeEvent");
31 Clazz.overrideMethod (c$, "focusGained", 
32 function (e) {
33 }, "java.awt.event.FocusEvent");
34 Clazz.overrideMethod (c$, "focusLost", 
35 function (e) {
36 }, "java.awt.event.FocusEvent");
37 Clazz.overrideMethod (c$, "mouseMoved", 
38 function (e) {
39 }, "java.awt.event.MouseEvent");
40 Clazz.overrideMethod (c$, "mouseDragged", 
41 function (e) {
42 }, "java.awt.event.MouseEvent");
43 Clazz.overrideMethod (c$, "mouseClicked", 
44 function (e) {
45 }, "java.awt.event.MouseEvent");
46 Clazz.overrideMethod (c$, "mousePressed", 
47 function (e) {
48 if (javax.swing.SwingUtilities.isLeftMouseButton (e)) {
49 var b = e.getSource ();
50 if (!b.contains (e.getX (), e.getY ())) return;
51 if (!b.hasFocus () && b.isRequestFocusEnabled ()) {
52 b.requestFocus ();
53 }}}, "java.awt.event.MouseEvent");
54 Clazz.overrideMethod (c$, "mouseReleased", 
55 function (e) {
56 }, "java.awt.event.MouseEvent");
57 Clazz.overrideMethod (c$, "mouseEntered", 
58 function (e) {
59 }, "java.awt.event.MouseEvent");
60 Clazz.overrideMethod (c$, "mouseExited", 
61 function (e) {
62 }, "java.awt.event.MouseEvent");
63 Clazz.overrideMethod (c$, "handleJSEvent", 
64 function (target, eventType, jQueryEvent) {
65 var ui = target;
66 var dot = 0;
67 var mark = 0;
68 var evType = null;
69 {
70 mark = jQueryEvent.target.selectionStart; dot =
71 jQueryEvent.target.selectionEnd; evType = jQueryEvent.type;
72 }var oldDot = ui.editor.getCaret ().getDot ();
73 var oldMark = ui.editor.getCaret ().getMark ();
74 if (dot != mark && oldMark == dot) {
75 dot = mark;
76 mark = oldMark;
77 }switch (eventType) {
78 case 501:
79 case 502:
80 case 500:
81 break;
82 case 401:
83 case 402:
84 case 400:
85 var val = ui.getJSTextValue ();
86 if (!val.equals (ui.currentText)) {
87 var oldval = ui.currentText;
88 ui.editor.setText (val);
89 ui.editor.firePropertyChangeObject ("text", oldval, val);
90 }break;
91 }
92 if (dot != oldDot || mark != oldMark) {
93 ui.editor.getCaret ().setDot (dot);
94 if (dot != mark) ui.editor.getCaret ().moveDot (mark);
95 ui.editor.caretEvent.fire ();
96 }System.out.println (ui.id + " handling event " + evType + " " + eventType + " " + ui.editor.getCaret () + " " + ui.getComponentText ());
97 return true;
98 }, "~O,~N,~O");
99 Clazz.overrideMethod (c$, "insertUpdate", 
100 function (e) {
101 this.setText ();
102 }, "javax.swing.event.DocumentEvent");
103 Clazz.overrideMethod (c$, "removeUpdate", 
104 function (e) {
105 this.setText ();
106 }, "javax.swing.event.DocumentEvent");
107 Clazz.overrideMethod (c$, "changedUpdate", 
108 function (e) {
109 }, "javax.swing.event.DocumentEvent");
110 Clazz.defineMethod (c$, "setText", 
111  function () {
112 (this.b.getUI ()).notifyPropertyChanged ("text");
113 });
114 });