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