Skip to content

Commit ae4840c

Browse files
hansonrhansonr
authored andcommitted
AWT Menu/MenuBar work - preliminary
1 parent 797cb13 commit ae4840c

File tree

3 files changed

+97
-9
lines changed

3 files changed

+97
-9
lines changed

sources/net.sf.j2s.java.core/src/swingjs/a2s/Frame.java

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
package swingjs.a2s;
22

3+
import java.awt.Component;
34
import java.awt.GraphicsConfiguration;
5+
import java.awt.MenuBar;
6+
import java.awt.MenuComponent;
7+
//import java.awt.peer.FramePeer;
48

59
import javax.swing.JFrame;
10+
import javax.swing.JMenuBar;
611

712
public class Frame extends JFrame implements A2SContainer {
813

@@ -31,7 +36,7 @@ public Frame(GraphicsConfiguration gc) {
3136
public Frame(String title, GraphicsConfiguration gc) {
3237
super(title, gc);
3338
listener = new A2SListener();
34-
//Util.setAWTWindowDefaults(this);
39+
Util.setAWTWindowDefaults(this);
3540
}
3641

3742

@@ -44,13 +49,33 @@ public void setMenuBar(MenuBar m) {
4449
setJMenuBar(m);
4550
}
4651

47-
public void unsetMenuBar() {
48-
setJMenuBar(null);
52+
public void remove(MenuComponent m) {
53+
JMenuBar mb = super.getJMenuBar();
54+
if (mb != null)
55+
mb.remove((Component) m);
56+
}
57+
58+
public void unsetMenuBar() {
59+
setJMenuBar(null);
4960
}
5061

5162

5263
public MenuBar getMenubar() {
5364
return (MenuBar) getJMenuBar();
5465
}
5566

67+
@Override
68+
public void addNotify() {
69+
synchronized (getTreeLock()) {
70+
getOrCreatePeer();
71+
// FramePeer p = (FramePeer)peer;
72+
if (getMenubar() != null) {
73+
getMenubar().addNotify();
74+
// p.setMenuBar(menuBar);
75+
}
76+
// p.setMaximizedBounds(maximizedBounds);
77+
super.addNotify();
78+
}
79+
}
80+
5681
}

sources/net.sf.j2s.java.core/src/swingjs/a2s/Menu.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.awt.MenuShortcut;
66
import java.awt.event.ActionEvent;
77
import java.awt.event.KeyEvent;
8+
import java.util.Enumeration;
89

910
import javax.swing.JComponent;
1011
import javax.swing.JMenu;
@@ -67,6 +68,16 @@ public void deleteShortcut() {
6768
setAccelerator(null);
6869
}
6970

71+
public Enumeration<MenuShortcut> shortcuts() {
72+
// TODO Auto-generated method stub
73+
return null;
74+
}
75+
76+
public void deleteShortcut(MenuShortcut s) {
77+
// TODO Auto-generated method stub
78+
79+
}
80+
7081

7182

7283
}
Lines changed: 58 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,67 @@
11
package swingjs.a2s;
22

3+
import java.awt.Component;
34
import java.awt.HeadlessException;
5+
import java.awt.MenuComponent;
6+
import java.awt.MenuShortcut;
7+
import java.util.Enumeration;
8+
import java.util.Vector;
49

510
import javax.swing.JMenuBar;
611

712
public class MenuBar extends JMenuBar {
8-
9-
public void isAWT() {}
10-
11-
public MenuBar() throws HeadlessException {
12-
super();
13-
}
13+
14+
public void isAWT() {
15+
}
16+
17+
public MenuBar() throws HeadlessException {
18+
super();
19+
}
20+
21+
public void add(java.awt.Menu m) {
22+
super.add((Component) m);
23+
}
24+
25+
public void add(java.awt.MenuItem m) {
26+
super.add((Component) m);
27+
}
28+
29+
public void deleteShortcut(MenuShortcut s) {
30+
int nmenus = getMenuCount();
31+
for (int i = 0; i < nmenus; i++) {
32+
((Menu) getMenu(i)).deleteShortcut(s);
33+
}
34+
}
35+
36+
public synchronized Enumeration<MenuShortcut> shortcuts() {
37+
Vector<MenuShortcut> shortcuts = new Vector<>();
38+
int nmenus = getMenuCount();
39+
for (int i = 0; i < nmenus; i++) {
40+
Enumeration<MenuShortcut> e = ((Menu) getMenu(i)).shortcuts();
41+
while (e.hasMoreElements()) {
42+
shortcuts.addElement(e.nextElement());
43+
}
44+
}
45+
return shortcuts.elements();
46+
}
47+
48+
Menu helpMenu = null;
49+
50+
@Override
51+
public Menu getHelpMenu() {
52+
return helpMenu;
53+
}
54+
55+
public void setHelpMenu(java.awt.Menu m) {
56+
helpMenu = m;
57+
}
58+
59+
public void remove(MenuComponent m) {
60+
super.remove((Component) m);
61+
}
62+
63+
public int countMenus() {
64+
return getMenuCount();
65+
}
1466

1567
}

0 commit comments

Comments
 (0)