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