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.TextListener", ["javax.swing.SwingUtilities"], function () {
3 c$ = Clazz.decorateAsClass (function () {
5 this.haveDocument = false;
7 Clazz.instantialize (this, arguments);
8 }, swingjs.plaf, "TextListener", 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]);
9 Clazz.makeConstructor (c$,
10 function (ui, txtComp) {
11 this.txtComp = txtComp;
13 }, "swingjs.plaf.JSTextUI,javax.swing.text.JTextComponent");
14 Clazz.defineMethod (c$, "checkDocument",
16 if (!this.haveDocument && this.txtComp.getDocument () != null) {
17 this.haveDocument = true;
18 this.txtComp.getDocument ().addDocumentListener (this);
20 Clazz.overrideMethod (c$, "propertyChange",
22 var prop = e.getPropertyName ();
23 System.out.println ("JSTextListener property change: " + prop + " " + e.getSource ());
24 if ("font" === prop || "foreground" === prop || "preferredSize" === prop) {
25 var txtComp = e.getSource ();
26 (txtComp.getUI ()).notifyPropertyChanged (prop);
27 }if ("editable" === prop) this.ui.setEditable ((e.getNewValue ()).booleanValue ());
28 }, "java.beans.PropertyChangeEvent");
29 Clazz.overrideMethod (c$, "stateChanged",
31 var txtComp = e.getSource ();
33 }, "javax.swing.event.ChangeEvent");
34 Clazz.overrideMethod (c$, "focusGained",
36 }, "java.awt.event.FocusEvent");
37 Clazz.overrideMethod (c$, "focusLost",
39 }, "java.awt.event.FocusEvent");
40 Clazz.overrideMethod (c$, "mouseMoved",
42 }, "java.awt.event.MouseEvent");
43 Clazz.overrideMethod (c$, "mouseDragged",
45 }, "java.awt.event.MouseEvent");
46 Clazz.overrideMethod (c$, "mouseClicked",
48 }, "java.awt.event.MouseEvent");
49 Clazz.overrideMethod (c$, "mousePressed",
51 if (javax.swing.SwingUtilities.isLeftMouseButton (e)) {
52 var txtComp = e.getSource ();
53 if (!txtComp.contains (e.getX (), e.getY ())) return;
54 if (!txtComp.hasFocus () && txtComp.isRequestFocusEnabled ()) {
55 txtComp.requestFocus ();
56 }}}, "java.awt.event.MouseEvent");
57 Clazz.overrideMethod (c$, "mouseReleased",
59 }, "java.awt.event.MouseEvent");
60 Clazz.overrideMethod (c$, "mouseEntered",
62 }, "java.awt.event.MouseEvent");
63 Clazz.overrideMethod (c$, "mouseExited",
65 }, "java.awt.event.MouseEvent");
66 Clazz.overrideMethod (c$, "handleJSEvent",
67 function (target, eventType, jQueryEvent) {
74 mark = jQueryEvent.target.selectionStart;
75 dot = jQueryEvent.target.selectionEnd;
76 evType = jQueryEvent.type;
77 keyCode = jQueryEvent.keyCode;
78 if (keyCode == 13) keyCode = 10;
79 }var oldDot = ui.editor.getCaret ().getDot ();
80 var oldMark = ui.editor.getCaret ().getMark ();
81 if (dot != mark && oldMark == dot) {
92 if (keyCode == 10 && ui.handleEnter (eventType)) break;
93 var val = ui.getJSTextValue ();
94 if (!val.equals (ui.currentText)) {
95 var oldval = ui.currentText;
96 ui.editor.setText (val);
97 ui.editor.firePropertyChangeObject ("text", oldval, val);
98 ui.domNode.setSelectionRange (dot, dot);
101 if (dot != oldDot || mark != oldMark) {
102 ui.editor.getCaret ().setDot (dot);
103 if (dot != mark) ui.editor.getCaret ().moveDot (mark);
104 ui.editor.caretEvent.fire ();
105 }System.out.println (ui.id + " TextListener handling event " + evType + " " + eventType + " " + ui.editor.getCaret () + " " + ui.getComponentText ().length);
108 Clazz.overrideMethod (c$, "insertUpdate",
111 }, "javax.swing.event.DocumentEvent");
112 Clazz.overrideMethod (c$, "removeUpdate",
115 }, "javax.swing.event.DocumentEvent");
116 Clazz.overrideMethod (c$, "changedUpdate",
118 }, "javax.swing.event.DocumentEvent");
119 Clazz.defineMethod (c$, "setText",
121 (this.txtComp.getUI ()).notifyPropertyChanged ("text");