X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAlignFrame.java;h=d7c2b43633ee9e635b7f8d62b8f85041ce42548d;hb=442b6bc246ee877d5e977baf80fd96299e0e05c4;hp=7e706d5b492569d295e317cd735577bc4d48d85a;hpb=8339d97c8e301fedb3da91e26642227d4830c4cf;p=jalview.git diff --git a/src/jalview/appletgui/AlignFrame.java b/src/jalview/appletgui/AlignFrame.java index 7e706d5..d7c2b43 100755 --- a/src/jalview/appletgui/AlignFrame.java +++ b/src/jalview/appletgui/AlignFrame.java @@ -33,8 +33,8 @@ import jalview.io.*; 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; @@ -97,6 +97,12 @@ public class AlignFrame wrapMenuItem_actionPerformed(); } } + param = applet.getParameter("centrecolumnlabels"); + if (param != null) + { + centreColumnLabelFlag.setState(true); + centreColumnLabelFlag_stateChanged(); + } try { @@ -545,11 +551,20 @@ public class AlignFrame else if (evt.getSource() == autoCalculate) { viewport.autocalculateConsensus = autoCalculate.getState(); + } else if (evt.getSource() == this.centreColumnLabelFlag) + { + centreColumnLabelFlag_stateChanged(); } - + alignPanel.paintAlignment(true); } + private void centreColumnLabelFlag_stateChanged() + { + viewport.centreColumnLabels = centreColumnLabelFlag.getState(); + this.alignPanel.annotationPanel.repaint(); + } + public void actionPerformed(ActionEvent evt) { Object source = evt.getSource(); @@ -1022,7 +1037,16 @@ public class AlignFrame try { new URL(url); + url = URLEncoder.encode(url); } + /* When we finally deprecate 1.1 compatibility, + * we can start to use URLEncoder.encode(url,"UTF-8") + * and then we'll need this catch: + * catch (UnsupportedEncodingException ex) + { + System.err.println("WARNING - IMPLEMENTATION ERROR - UNSUPPORTED ENCODING EXCEPTION FOR "+url); + ex.printStackTrace(); + } */ catch (java.net.MalformedURLException ex) { url = viewport.applet.getCodeBase() + url; @@ -2106,7 +2130,7 @@ public class AlignFrame { SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray(); AlignmentSorter.sortByPID(viewport.getAlignment(), - viewport.getAlignment().getSequenceAt(0)); + viewport.getAlignment().getSequenceAt(0), null); addHistoryItem(new OrderCommand("Pairwise Sort", oldOrder, viewport.alignment)); alignPanel.paintAlignment(true); @@ -2465,16 +2489,7 @@ public class AlignFrame 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; + CheckboxMenuItem centreColumnLabelFlag = new CheckboxMenuItem(); private void jbInit() throws Exception @@ -2642,7 +2657,9 @@ public class AlignFrame autoCalculate.addItemListener(this); inputText.setLabel("Input from textbox"); inputText.addActionListener(this); - + centreColumnLabelFlag.setLabel("Centre column labels"); + centreColumnLabelFlag.addItemListener(this); + helpMenu.setLabel("Help"); documentation.setLabel("Documentation"); documentation.addActionListener(this); @@ -2781,6 +2798,7 @@ public class AlignFrame formatMenu.add(viewTextMenuItem); formatMenu.add(colourTextMenuItem); formatMenu.add(renderGapsMenuItem); + formatMenu.add(centreColumnLabelFlag); selectMenu.add(findMenuItem); selectMenu.addSeparator(); selectMenu.add(selectAllSequenceMenuItem); @@ -2789,7 +2807,22 @@ public class AlignFrame 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. @@ -2798,50 +2831,15 @@ public class AlignFrame */ 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 + // // view cannot be closed if its actually on the page fileMenu.remove(closeMenuItem); fileMenu.remove(3); // Remove Seperator + embeddedMenu = makeEmbeddedPopupMenu(alignFrameMenuBar, "Arial", Font.PLAIN, 10, false); // use our own fonts. // and actually add the components to the applet area viewport.applet.setLayout(new BorderLayout()); viewport.applet.add(embeddedMenu, BorderLayout.NORTH); @@ -2852,17 +2850,14 @@ public class AlignFrame 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); @@ -2871,94 +2866,4 @@ public class AlignFrame 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) - {} - }