59bdc2353a17271b93bb1d02e6aa08b8e56ebd3b
[jalviewjs.git] / site / swingjs / j2s / swingjs / plaf / TextListener.js
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
4 this.txtComp = null;\r
5 this.haveDocument = false;\r
6 this.ui = null;\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
12 this.ui = ui;\r
13 }, "swingjs.plaf.JSTextUI,javax.swing.text.JTextComponent");\r
14 Clazz.defineMethod (c$, "checkDocument", \r
15 function () {\r
16 if (!this.haveDocument && this.txtComp.getDocument () != null) {\r
17 this.haveDocument = true;\r
18 this.txtComp.getDocument ().addDocumentListener (this);\r
19 }});\r
20 Clazz.overrideMethod (c$, "propertyChange", \r
21 function (e) {\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
30 function (e) {\r
31 var txtComp = e.getSource ();\r
32 txtComp.repaint ();\r
33 }, "javax.swing.event.ChangeEvent");\r
34 Clazz.overrideMethod (c$, "focusGained", \r
35 function (e) {\r
36 }, "java.awt.event.FocusEvent");\r
37 Clazz.overrideMethod (c$, "focusLost", \r
38 function (e) {\r
39 }, "java.awt.event.FocusEvent");\r
40 Clazz.overrideMethod (c$, "mouseMoved", \r
41 function (e) {\r
42 }, "java.awt.event.MouseEvent");\r
43 Clazz.overrideMethod (c$, "mouseDragged", \r
44 function (e) {\r
45 }, "java.awt.event.MouseEvent");\r
46 Clazz.overrideMethod (c$, "mouseClicked", \r
47 function (e) {\r
48 }, "java.awt.event.MouseEvent");\r
49 Clazz.overrideMethod (c$, "mousePressed", \r
50 function (e) {\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
58 function (e) {\r
59 }, "java.awt.event.MouseEvent");\r
60 Clazz.overrideMethod (c$, "mouseEntered", \r
61 function (e) {\r
62 }, "java.awt.event.MouseEvent");\r
63 Clazz.overrideMethod (c$, "mouseExited", \r
64 function (e) {\r
65 }, "java.awt.event.MouseEvent");\r
66 Clazz.overrideMethod (c$, "handleJSEvent", \r
67 function (target, eventType, jQueryEvent) {\r
68 var ui = target;\r
69 var dot = 0;\r
70 var mark = 0;\r
71 var evType = null;\r
72 var keyCode = 0;\r
73 {\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
82 dot = mark;\r
83 mark = oldMark;\r
84 }switch (eventType) {\r
85 case 501:\r
86 case 502:\r
87 case 500:\r
88 break;\r
89 case 401:\r
90 case 402:\r
91 case 400:\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
99 }break;\r
100 }\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
106 return true;\r
107 }, "~O,~N,~O");\r
108 Clazz.overrideMethod (c$, "insertUpdate", \r
109 function (e) {\r
110 this.setText ();\r
111 }, "javax.swing.event.DocumentEvent");\r
112 Clazz.overrideMethod (c$, "removeUpdate", \r
113 function (e) {\r
114 this.setText ();\r
115 }, "javax.swing.event.DocumentEvent");\r
116 Clazz.overrideMethod (c$, "changedUpdate", \r
117 function (e) {\r
118 }, "javax.swing.event.DocumentEvent");\r
119 Clazz.defineMethod (c$, "setText", \r
120  function () {\r
121 (this.txtComp.getUI ()).notifyPropertyChanged ("text");\r
122 });\r
123 });\r