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