1 Clazz.declarePackage ("jalview.appletgui");
\r
2 Clazz.load (["awt2swing.Frame", "java.awt.event.MouseListener", "java.awt.Font", "java.util.HashMap"], "jalview.appletgui.EmbmenuFrame", ["awt2swing.Label", "$.Panel", "$.PopupMenu", "jalview.util.Platform", "java.awt.Color", "$.FlowLayout"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
4 this.embeddedPopup = null;
\r
5 this.embeddedMenu = null;
\r
6 Clazz.instantialize (this, arguments);
\r
7 }, jalview.appletgui, "EmbmenuFrame", awt2swing.Frame, java.awt.event.MouseListener);
\r
8 Clazz.prepareFields (c$, function () {
\r
9 this.embeddedPopup = new java.util.HashMap ();
\r
11 Clazz.defineMethod (c$, "embedMenuIfNeeded",
\r
12 function (tobeAdjusted) {
\r
13 var topMenuBar = this.getJMenuBar ();
\r
14 if (topMenuBar == null) {
\r
16 }if (jalview.util.Platform.isAMac ()) {
\r
17 this.embeddedMenu = this.makeEmbeddedPopupMenu (topMenuBar, true, false);
\r
18 this.unsetMenuBar ();
\r
19 this.add (this.embeddedMenu, "North");
\r
20 tobeAdjusted.setSize (this.getSize ().width, this.getSize ().height - this.embeddedMenu.getHeight ());
\r
23 }, "awt2swing.Panel");
\r
24 Clazz.defineMethod (c$, "makeEmbeddedPopupMenu",
\r
25 function (menuBar, overrideFonts, append) {
\r
27 this.embeddedPopup.clear ();
\r
28 if (this.embeddedMenu != null) {
\r
29 this.embeddedMenu.removeAll ();
\r
30 }}this.embeddedMenu = this.makeEmbeddedPopupMenu (menuBar, jalview.appletgui.EmbmenuFrame.DEFAULT_MENU_FONT, overrideFonts, new awt2swing.Panel (), this);
\r
31 return this.embeddedMenu;
\r
32 }, "awt2swing.MenuBar,~B,~B");
\r
33 Clazz.defineMethod (c$, "makeEmbeddedPopupMenu",
\r
34 function (menuBar, font, overrideFonts, embeddedMenu, clickHandler) {
\r
35 if (overrideFonts) {
\r
36 var mbf = menuBar.getFont ();
\r
39 }}if (embeddedMenu == null) {
\r
40 embeddedMenu = new awt2swing.Panel ();
\r
41 }var flowLayout1 = new java.awt.FlowLayout ();
\r
42 embeddedMenu.setBackground (java.awt.Color.lightGray);
\r
43 embeddedMenu.setLayout (flowLayout1);
\r
44 for (var mbi = 0, nMbi = menuBar.getMenuCount (); mbi < nMbi; mbi++) {
\r
45 var mi = menuBar.getMenu (mbi);
\r
46 var elab = new awt2swing.Label (mi.getLabel ());
\r
47 elab.setFont (font);
\r
48 var popup = new awt2swing.PopupMenu ();
\r
50 var mSize = mi.getItemCount ();
\r
51 for (m = 0; m < mSize; m++) {
\r
52 if (mi.getItem (m) == null) popup.addSeparator ();
\r
53 else popup.add (mi.getItem (m));
\r
57 this.embeddedPopup.put (elab, popup);
\r
58 embeddedMenu.add (elab);
\r
59 elab.addMouseListener (clickHandler);
\r
61 flowLayout1.setAlignment (0);
\r
62 flowLayout1.setHgap (2);
\r
63 flowLayout1.setVgap (0);
\r
64 return embeddedMenu;
\r
65 }, "awt2swing.MenuBar,java.awt.Font,~B,awt2swing.Panel,java.awt.event.MouseListener");
\r
66 Clazz.overrideMethod (c$, "mousePressed",
\r
69 var source = evt.getSource ();
\r
70 popup = this.getPopupMenu (source);
\r
71 if (popup != null) {
\r
72 this.embeddedMenu.add (popup);
\r
73 popup.show (this.embeddedMenu, source.getBounds ().x, source.getBounds ().y + source.getBounds ().getSize ().height);
\r
74 }}, "java.awt.event.MouseEvent");
\r
75 Clazz.defineMethod (c$, "getPopupMenu",
\r
77 return this.embeddedPopup.get (source);
\r
78 }, "awt2swing.Label");
\r
79 Clazz.overrideMethod (c$, "mouseClicked",
\r
81 }, "java.awt.event.MouseEvent");
\r
82 Clazz.overrideMethod (c$, "mouseReleased",
\r
84 }, "java.awt.event.MouseEvent");
\r
85 Clazz.overrideMethod (c$, "mouseEntered",
\r
87 }, "java.awt.event.MouseEvent");
\r
88 Clazz.overrideMethod (c$, "mouseExited",
\r
90 }, "java.awt.event.MouseEvent");
\r
91 Clazz.defineMethod (c$, "destroyMenus",
\r
93 if (this.embeddedPopup != null) {
\r
94 for (var lb, $lb = this.embeddedPopup.keySet ().iterator (); $lb.hasNext () && ((lb = $lb.next ()) || true);) {
\r
95 lb.removeMouseListener (this);
\r
97 this.embeddedPopup.clear ();
\r
98 }if (this.embeddedMenu != null) {
\r
99 this.embeddedMenu.removeAll ();
\r
101 Clazz.defineMethod (c$, "finalize",
\r
103 this.destroyMenus ();
\r
104 this.embeddedPopup = null;
\r
105 this.embeddedMenu = null;
\r
106 Clazz.superCall (this, jalview.appletgui.EmbmenuFrame, "finalize", []);
\r
108 c$.FONT_ARIAL_PLAIN_11 = c$.prototype.FONT_ARIAL_PLAIN_11 = new java.awt.Font ("Arial", 0, 11);
\r
109 c$.DEFAULT_MENU_FONT = c$.prototype.DEFAULT_MENU_FONT = jalview.appletgui.EmbmenuFrame.FONT_ARIAL_PLAIN_11;
\r