Skip to content

Commit 9a1d657

Browse files
hansonrhansonr
authored andcommitted
JMenu select/deselect enabled
1 parent c3dc92a commit 9a1d657

File tree

7 files changed

+63
-3
lines changed

7 files changed

+63
-3
lines changed
1.42 KB
Binary file not shown.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20181114074826
1+
20181114223438
1.42 KB
Binary file not shown.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20181114074826
1+
20181114223438
1.42 KB
Binary file not shown.

sources/net.sf.j2s.java.core/src/swingjs/plaf/JSMenuUI.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public DOMNode updateDOMNode() {
2121
isMenuItem = !((JMenu) jc).isTopLevelMenu();
2222
if (isMenuItem) {
2323
containerNode = domNode = createItem("_menu", null);
24+
DOMNode.addJqueryHandledEvent(this, domNode, "mouseenter mouseleave");
2425
} else {
2526
// DOMNode labelNode = newDOMObject("label", id);
2627
domNode = createItem("_item", null);
@@ -36,6 +37,34 @@ public DOMNode updateDOMNode() {
3637
return domNode;
3738
}
3839

40+
@Override
41+
public boolean handleJSEvent(Object target, int eventType, Object jQueryEvent) {
42+
String type = "";
43+
// we use == here because this will be JavaScript
44+
if (target == domNode) {
45+
/**
46+
* @j2sNative
47+
*
48+
* type = jQueryEvent.type;
49+
*
50+
*/
51+
{
52+
}
53+
if (eventType == -1) {
54+
if (type.equals("mouseenter")) {
55+
((JMenu) jc).setSelected(true);
56+
return true;
57+
}
58+
if (type.equals("mouseleave")) {
59+
((JMenu) jc).setSelected(false);
60+
return true;
61+
}
62+
}
63+
}
64+
return false;
65+
}
66+
67+
3968
@Override
4069
public void installUI(JComponent jc) {
4170
jm = (JMenu) jc;

sources/net.sf.j2s.java.core/src/test/JalviewJSTest.java

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import java.awt.GridLayout;
88
import java.awt.MediaTracker;
99
import java.awt.MenuItem;
10+
import java.awt.event.ItemEvent;
11+
import java.awt.event.ItemListener;
1012

1113
import javax.swing.ImageIcon;
1214
import javax.swing.JButton;
@@ -23,13 +25,15 @@
2325
import javax.swing.SwingConstants;
2426
import javax.swing.WindowConstants;
2527
import javax.swing.border.TitledBorder;
28+
import javax.swing.event.MenuEvent;
29+
import javax.swing.event.MenuListener;
2630

2731
/**
2832
* A class with a main method entry point for ad hoc tests of JalviewJS
2933
* behaviour. The J2S transpiler should generate an html entry point for this
3034
* class, allowing comparison between Java and Javascript execution.
3135
*/
32-
public class JalviewJSTest extends JPanel
36+
public class JalviewJSTest extends JPanel implements MenuListener, ItemListener
3337
{
3438
public static void main(String[] args)
3539
{
@@ -186,6 +190,7 @@ Container getVisualPaneContent(JMenu menu)
186190

187191
JMenu m1 = new JMenu("left");
188192
JMenu m2 = new JMenu("right");
193+
m2.addMenuListener(this);
189194
menu.add(m1);
190195
menu.add(m2);
191196
// m1.add(cb3m);
@@ -197,6 +202,7 @@ Container getVisualPaneContent(JMenu menu)
197202
m2.add(rb3m);
198203
m2.add(mb3);
199204
m2.add(mb4);
205+
mb4.addItemListener(this);
200206

201207
JPanel theTab = new JPanel();
202208

@@ -217,4 +223,29 @@ private ImageIcon getImage(String name) {
217223
}
218224
return icon;
219225
}
226+
227+
@Override
228+
public void menuSelected(MenuEvent e) {
229+
System.out.println("menuSelected " + e.getSource().toString());
230+
231+
}
232+
233+
@Override
234+
public void menuDeselected(MenuEvent e) {
235+
System.out.println("menuDeselected " + e.getSource().toString());
236+
237+
238+
}
239+
240+
@Override
241+
public void menuCanceled(MenuEvent e) {
242+
System.out.println("menuCanceled " + e.getSource().toString());
243+
244+
}
245+
246+
@Override
247+
public void itemStateChanged(ItemEvent e) {
248+
System.out.println("itemStateChanged " + e.getItem());
249+
250+
}
220251
}

0 commit comments

Comments
 (0)