JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / src / javajs / swing / AbstractButton.java
1 package javajs.swing;\r
2 \r
3 import javajs.awt.Component;\r
4 \r
5 import javajs.api.SC;\r
6 \r
7 public abstract class AbstractButton extends JComponent implements SC {\r
8 \r
9   Object itemListener;\r
10   Object applet;\r
11   String htmlName;\r
12   boolean selected;\r
13   \r
14   private SC popupMenu;\r
15 \r
16   private String icon;\r
17 \r
18   protected AbstractButton(String type) {\r
19     super(type);\r
20     enabled = true;\r
21   }\r
22   \r
23   @Override\r
24   public void setSelected(boolean selected) {\r
25     this.selected = selected;\r
26     /**\r
27      * @j2sNative\r
28      * \r
29      * SwingController.setSelected(this);\r
30      * \r
31      */\r
32     {\r
33     }\r
34   }\r
35 \r
36   @Override\r
37   public boolean isSelected() {\r
38     return selected;\r
39   }\r
40   \r
41   @Override\r
42   public void addItemListener(Object listener) {\r
43     itemListener = listener;\r
44   }\r
45   \r
46   @Override\r
47   public Object getIcon() {\r
48     return icon;\r
49   }\r
50   \r
51   @Override\r
52   public void setIcon(Object icon) {\r
53     this.icon = (String) icon;\r
54   }\r
55 \r
56   @Override\r
57   public void init(String text, Object icon, String actionCommand, SC popupMenu) {\r
58     this.text = text;\r
59     this.icon = (String) icon;\r
60     this.actionCommand = actionCommand;\r
61     this.popupMenu = popupMenu;\r
62     /**\r
63      * @j2sNative\r
64      * \r
65      *  SwingController.initMenuItem(this);\r
66      *  \r
67      */\r
68     {\r
69     }\r
70   }\r
71  \r
72   public SC getTopPopupMenu() {\r
73     // note that JMenu.getPopupMenu refers to ITSELF, not the main one)\r
74     return popupMenu;\r
75   }\r
76   \r
77   @Override\r
78   public void add(SC item) {\r
79     addComponent((Component) item);\r
80   }\r
81 \r
82   @Override\r
83   public void insert(SC subMenu, int index) {\r
84     // JMenu, JPopupMenu only, but implemented here as well\r
85     // for simplicity\r
86     insertComponent((Component) subMenu, index);\r
87   }\r
88 \r
89   @Override\r
90   public Object getPopupMenu() {\r
91     // JMenu only\r
92     return null;\r
93   }\r
94 \r
95   protected String getMenuHTML() {\r
96     String label = (this.icon != null ? this.icon\r
97         : this.text != null ? this.text \r
98          : null);\r
99     String s = (label == null ? "" : "<li><a>" + label + "</a>"\r
100       + htmlMenuOpener("ul"));\r
101     int n = getComponentCount();\r
102     if (n > 0)\r
103       for(int i = 0; i < n; i++)\r
104         s += getComponent(i).toHTML();\r
105     if (label != null)\r
106       s += "</ul></li>";\r
107     return s;\r
108   }\r
109 \r
110   protected String htmlMenuOpener(String type) {\r
111     return "<" + type + " id=\"" + this.id + "\"" + (this.enabled ? "" : getHtmlDisabled()) + ">";\r
112   }\r
113 \r
114   protected String getHtmlDisabled() {\r
115     return " disabled=\"disabled\"";\r
116   }  \r
117 \r
118 }\r