JAL-1807 Bob
[jalviewjs.git] / site / j2s / swingjs / plaf / JSTextFieldUI.java
1 package swingjs.plaf;
2
3 //import jsjava.awt.FontMetrics;
4 import java.awt.event.KeyEvent;
5
6 import jsjava.awt.Dimension;
7 import jsjava.awt.event.ActionEvent;
8 import jsjavax.swing.Action;
9 import jsjavax.swing.JTextField;
10 import swingjs.api.DOMNode;
11
12 /**
13  * A minimal implementation of a test field ui/peer
14  * 
15  * @author Bob Hanson
16  *
17  */
18 public class JSTextFieldUI extends JSTextUI {
19
20         protected String inputType = "text";
21
22         @Override
23         public DOMNode getDOMObject() {
24                 if (domNode == null) {
25                         updateHandler.checkDocument();
26                         focusNode = enableNode = valueNode = domNode = DOMNode
27                                         .setStyles(createDOMObject("input", id, "type", inputType),
28                                                         "padding", "0px 1px");
29                         vCenter(domNode, -10);
30                         bindMouse(domNode);
31                         bindKeys(domNode);
32                         setFocusable();
33                 }
34                 setCssFont(setProp(domNode, "value", getComponentText()),
35                                 c.getFont());
36                 if (!editable)
37                         DOMNode.setAttr(domNode, "readOnly", "true");
38                 return domNode;
39         }
40
41         @Override
42         protected Dimension getCSSDimension(int w, int h) {
43                 return new Dimension(w, h - 2);
44         }
45         
46         @Override
47         boolean handleEnter(int eventType) {
48                 if (eventType == KeyEvent.KEY_PRESSED) {
49                         Action a = getActionMap().get(JTextField.notifyAction);
50                         if (a != null)
51                                 a.actionPerformed(new ActionEvent(c, ActionEvent.ACTION_PERFORMED, JTextField.notifyAction, System.currentTimeMillis(), 0));
52                 }
53                 return true;
54         }
55
56
57 }