import jalview.schemes.*;
public class AlignFrame
- extends Frame implements ActionListener,
- ItemListener, KeyListener, MouseListener
+ extends EmbmenuFrame implements ActionListener,
+ ItemListener, KeyListener
{
public AlignmentPanel alignPanel;
public AlignViewport viewport;
MenuItem documentation = new MenuItem();
MenuItem about = new MenuItem();
CheckboxMenuItem seqLimits = new CheckboxMenuItem();
- Panel embeddedMenu;
- Label embeddedEdit;
- Label embeddedSelect;
- Label embeddedView;
- Label embeddedFormat;
- Label embeddedColour;
- Label embeddedFile;
- Label embeddedHelp;
- Label embeddedCalculate;
- FlowLayout flowLayout1;
private void jbInit()
throws Exception
selectMenu.add(invertColSel);
selectMenu.add(deleteGroups);
}
+ MenuItem featureSettings = new MenuItem();
+ CheckboxMenuItem sequenceFeatures = new CheckboxMenuItem();
+ MenuItem annotationColour = new MenuItem();
+ MenuItem invertColSel = new MenuItem();
+ Menu menu1 = new Menu();
+ MenuItem showColumns = new MenuItem();
+ MenuItem showSeqs = new MenuItem();
+ Menu menu2 = new Menu();
+ MenuItem hideColumns = new MenuItem();
+ MenuItem hideSequences = new MenuItem();
+ Menu formatMenu = new Menu();
+ Menu selectMenu = new Menu();
+ MenuItem newView = new MenuItem();
+
/**
+ * Attach the alignFrame panels after embedding menus, if necessary.
* This used to be called setEmbedded, but is now creates the
* dropdown menus in a platform independent manner
* to avoid OSX/Mac menu appendage daftness.
*/
public void createAlignFrameWindow(boolean reallyEmbedded, String title)
{
- embeddedMenu = new Panel();
- embeddedEdit = new Label("Edit");
- embeddedSelect = new Label("Select");
- embeddedView = new Label("View");
- embeddedFormat = new Label("Format");
- embeddedColour = new Label("Colour");
- embeddedFile = new Label("File");
- embeddedHelp = new Label("Help");
- embeddedCalculate = new Label("Calculate");
- flowLayout1 = new FlowLayout();
- embeddedMenu.setBackground(Color.lightGray);
- embeddedMenu.setLayout(flowLayout1);
- embeddedEdit.setFont(new java.awt.Font("Arial", Font.PLAIN, 10));
- embeddedSelect.setFont(new java.awt.Font("Arial", Font.PLAIN, 10));
- embeddedView.setFont(new java.awt.Font("Arial", Font.PLAIN, 10));
- embeddedFormat.setFont(new java.awt.Font("Arial", Font.PLAIN, 10));
- embeddedColour.setFont(new java.awt.Font("Arial", Font.PLAIN, 10));
- embeddedFile.setFont(new java.awt.Font("Arial", Font.PLAIN, 10));
- embeddedHelp.setFont(new java.awt.Font("Arial", Font.PLAIN, 10));
- embeddedCalculate.setFont(new java.awt.Font("Arial", Font.PLAIN, 10));
- embeddedMenu.add(embeddedFile);
- embeddedMenu.add(embeddedEdit);
- embeddedMenu.add(embeddedSelect);
- embeddedMenu.add(embeddedView);
- embeddedMenu.add(embeddedFormat);
- embeddedMenu.add(embeddedColour);
- embeddedMenu.add(embeddedCalculate);
- embeddedMenu.add(embeddedHelp);
- flowLayout1.setAlignment(FlowLayout.LEFT);
- flowLayout1.setHgap(2);
- flowLayout1.setVgap(0);
- embeddedFile.addMouseListener(this);
- embeddedEdit.addMouseListener(this);
- embeddedSelect.addMouseListener(this);
- embeddedView.addMouseListener(this);
- embeddedFormat.addMouseListener(this);
- embeddedColour.addMouseListener(this);
- embeddedCalculate.addMouseListener(this);
- embeddedHelp.addMouseListener(this);
if (reallyEmbedded)
{
+ //////
+ // Explicly build the embedded menu panel for the on-page applet
+ //
+ embeddedMenu = makeEmbeddedPopupMenu(alignFrameMenuBar, "Arial", Font.PLAIN, 10, false); // use our own fonts.
// view cannot be closed if its actually on the page
fileMenu.remove(closeMenuItem);
fileMenu.remove(3); // Remove Seperator
viewport.applet.add(alignPanel, BorderLayout.CENTER);
viewport.applet.validate();
} else {
- if (new jalview.util.Platform().isAMac())
- {
- // TODO: try to modify the embeddedMenu display so it looks like a real toolbar menu
- // TODO: modify click/mouse handler for embeddedMenu so it behaves more like a real pulldown menu toolbar
- setMenuBar(null);// alignFramMenuBar);
- // add the components to the AlignFrame area.
- add(embeddedMenu, BorderLayout.NORTH);
+ ////////
+ // test and embed menu bar if necessary.
+ //
+ if (embedMenuIfNeeded(alignPanel)) {
+ // adjust for status bar height too
alignPanel.setSize(getSize().width,
getSize().height
- - embeddedMenu.HEIGHT - statusBar.HEIGHT);
-
+ - statusBar.HEIGHT);
}
add(statusBar, BorderLayout.SOUTH);
add(alignPanel, BorderLayout.CENTER);
DEFAULT_HEIGHT);
}
}
-
- PopupMenu filePopup, editPopup, searchPopup,
- viewPopup, formatPopup, colourPopup, calculatePopup, helpPopup;
- MenuItem featureSettings = new MenuItem();
- CheckboxMenuItem sequenceFeatures = new CheckboxMenuItem();
- MenuItem annotationColour = new MenuItem();
- MenuItem invertColSel = new MenuItem();
- Menu menu1 = new Menu();
- MenuItem showColumns = new MenuItem();
- MenuItem showSeqs = new MenuItem();
- Menu menu2 = new Menu();
- MenuItem hideColumns = new MenuItem();
- MenuItem hideSequences = new MenuItem();
- Menu formatMenu = new Menu();
- Menu selectMenu = new Menu();
- MenuItem newView = new MenuItem();
-
- public void mousePressed(MouseEvent evt)
- {
- PopupMenu popup = null;
- Label source = (Label) evt.getSource();
- if (source == embeddedFile)
- {
- popup = filePopup = genPopupMenu(filePopup, fileMenu);
- }
- else if (source == embeddedEdit)
- {
- popup = editPopup = genPopupMenu(editPopup, editMenu);
- }
- else if (source == embeddedSelect)
- {
- popup = searchPopup = genPopupMenu(searchPopup, selectMenu);
- }
- else if (source == embeddedView)
- {
- popup = viewPopup = genPopupMenu(viewPopup, viewMenu);
- }
- else if (source == embeddedFormat)
- {
- popup = formatPopup = genPopupMenu(formatPopup, formatMenu);
- }
- else if (source == embeddedColour)
- {
- popup = colourPopup = genPopupMenu(colourPopup, colourMenu);
- }
- else if (source == embeddedCalculate)
- {
- popup = calculatePopup = genPopupMenu(calculatePopup, calculateMenu);
- }
- else if (source == embeddedHelp)
- {
- popup = helpPopup = genPopupMenu(helpPopup, helpMenu);
- }
-
- embeddedMenu.add(popup);
- popup.show(embeddedMenu,
- source.getBounds().x,
- source.getBounds().y + source.getBounds().getSize().height);
- }
-
- PopupMenu genPopupMenu(PopupMenu popup, Menu original)
- {
- if (popup != null)
- {
- return popup;
- }
- popup = new PopupMenu();
- int m, mSize = original.getItemCount();
- for (m = 0; m < mSize; m++)
- {
- popup.add(original.getItem(m));
- mSize--;
- m--;
- }
-
- return popup;
- }
-
- public void mouseClicked(MouseEvent evt)
- {}
-
- public void mouseReleased(MouseEvent evt)
- {}
-
- public void mouseEntered(MouseEvent evt)
- {}
-
- public void mouseExited(MouseEvent evt)
- {}
-
}