- JMenu groupMenu = new JMenu();\r
- JMenuItem analyze = new JMenuItem();\r
- JMenu defineMenu = new JMenu();\r
- JMenuItem groupName = new JMenuItem();\r
- JMenuItem groupAnnotation = new JMenuItem();\r
- protected JRadioButtonMenuItem clustalColour = new JRadioButtonMenuItem();\r
- protected JRadioButtonMenuItem zappoColour = new JRadioButtonMenuItem();\r
- protected JRadioButtonMenuItem taylorColour = new JRadioButtonMenuItem();\r
- protected JRadioButtonMenuItem hydrophobicityColour = new JRadioButtonMenuItem();\r
- protected JRadioButtonMenuItem helixColour = new JRadioButtonMenuItem();\r
- protected JRadioButtonMenuItem strandColour = new JRadioButtonMenuItem();\r
- protected JRadioButtonMenuItem turnColour = new JRadioButtonMenuItem();\r
- protected JRadioButtonMenuItem buriedColour = new JRadioButtonMenuItem();\r
- protected JCheckBoxMenuItem abovePIDColour = new JCheckBoxMenuItem();\r
- protected JRadioButtonMenuItem userDefinedColour = new JRadioButtonMenuItem();\r
- protected JRadioButtonMenuItem PIDColour = new JRadioButtonMenuItem();\r
- protected JRadioButtonMenuItem BLOSUM62Colour = new JRadioButtonMenuItem();\r
- JRadioButtonMenuItem noColourmenuItem = new JRadioButtonMenuItem();\r
- protected JCheckBoxMenuItem conservationMenuItem = new JCheckBoxMenuItem();\r
-\r
-\r
- AlignmentPanel ap;\r
- JMenu sequenceMenu = new JMenu();\r
- JMenuItem sequenceName = new JMenuItem();\r
- JMenu residueMenu = new JMenu();\r
- JMenuItem annotateResidue = new JMenuItem();\r
-\r
- Sequence sequence;\r
- JMenuItem unGroupMenuItem = new JMenuItem();\r
- JMenuItem pdbMenuItem = new JMenuItem();\r
- JMenuItem outline = new JMenuItem();\r
-\r
- public PopupMenu(AlignmentPanel ap, Sequence seq)\r
- {\r
- ///////////////////////////////////////////////////////////\r
- // If this is activated from the sequence panel, the user may want to\r
- // edit or annotate a particular residue. Therefore display the residue menu\r
- //\r
- // If from the IDPanel, we must display the sequence menu\r
- //////////////////////////////////////////////////////////\r
-\r
- this.ap = ap;\r
- sequence = seq;\r
-\r
- ButtonGroup colours = new ButtonGroup();\r
- colours.add(noColourmenuItem);\r
- colours.add(clustalColour);\r
- colours.add(zappoColour);\r
- colours.add(taylorColour);\r
- colours.add(hydrophobicityColour);\r
- colours.add(helixColour);\r
- colours.add(strandColour);\r
- colours.add(turnColour);\r
- colours.add(buriedColour);\r
- colours.add(abovePIDColour);\r
- colours.add(userDefinedColour);\r
- colours.add(PIDColour);\r
- colours.add(BLOSUM62Colour);\r
-\r
- try\r
- { jbInit(); }\r
- catch(Exception e)\r
- { e.printStackTrace(); }\r
+ JMenu groupMenu = new JMenu();\r
+ JMenuItem groupName = new JMenuItem();\r
+ protected JRadioButtonMenuItem clustalColour = new JRadioButtonMenuItem();\r
+ protected JRadioButtonMenuItem zappoColour = new JRadioButtonMenuItem();\r
+ protected JRadioButtonMenuItem taylorColour = new JRadioButtonMenuItem();\r
+ protected JRadioButtonMenuItem hydrophobicityColour = new JRadioButtonMenuItem();\r
+ protected JRadioButtonMenuItem helixColour = new JRadioButtonMenuItem();\r
+ protected JRadioButtonMenuItem strandColour = new JRadioButtonMenuItem();\r
+ protected JRadioButtonMenuItem turnColour = new JRadioButtonMenuItem();\r
+ protected JRadioButtonMenuItem buriedColour = new JRadioButtonMenuItem();\r
+ protected JCheckBoxMenuItem abovePIDColour = new JCheckBoxMenuItem();\r
+ protected JRadioButtonMenuItem userDefinedColour = new JRadioButtonMenuItem();\r
+ protected JRadioButtonMenuItem PIDColour = new JRadioButtonMenuItem();\r
+ protected JRadioButtonMenuItem BLOSUM62Colour = new JRadioButtonMenuItem();\r
+ JRadioButtonMenuItem noColourmenuItem = new JRadioButtonMenuItem();\r
+ protected JCheckBoxMenuItem conservationMenuItem = new JCheckBoxMenuItem();\r
+ AlignmentPanel ap;\r
+ JMenu sequenceMenu = new JMenu();\r
+ JMenuItem sequenceName = new JMenuItem();\r
+ Sequence sequence;\r
+ JMenuItem unGroupMenuItem = new JMenuItem();\r
+ JMenuItem outline = new JMenuItem();\r
+ JRadioButtonMenuItem nucleotideMenuItem = new JRadioButtonMenuItem();\r
+ JMenu colourMenu = new JMenu();\r
+ JCheckBoxMenuItem showBoxes = new JCheckBoxMenuItem();\r
+ JCheckBoxMenuItem showText = new JCheckBoxMenuItem();\r
+ JCheckBoxMenuItem showColourText = new JCheckBoxMenuItem();\r
+ JMenu editMenu = new JMenu();\r
+ JMenuItem cut = new JMenuItem();\r
+ JMenuItem copy = new JMenuItem();\r
+ JMenuItem upperCase = new JMenuItem();\r
+ JMenuItem lowerCase = new JMenuItem();\r
+ JMenuItem toggle = new JMenuItem();\r
+ JMenu pdbMenu = new JMenu();\r
+ JMenuItem pdbFromFile = new JMenuItem();\r
+ JMenuItem enterPDB = new JMenuItem();\r
+ JMenuItem discoverPDB = new JMenuItem();\r
+ JMenu outputMenu = new JMenu();\r
+ JMenuItem sequenceFeature = new JMenuItem();\r
+\r
+ /**\r
+ * Creates a new PopupMenu object.\r
+ *\r
+ * @param ap DOCUMENT ME!\r
+ * @param seq DOCUMENT ME!\r
+ */\r
+ public PopupMenu(final AlignmentPanel ap, Sequence seq, Vector links)\r
+ {\r
+ ///////////////////////////////////////////////////////////\r
+ // If this is activated from the sequence panel, the user may want to\r
+ // edit or annotate a particular residue. Therefore display the residue menu\r
+ //\r
+ // If from the IDPanel, we must display the sequence menu\r
+ //////////////////////////////////////////////////////////\r
+ this.ap = ap;\r
+ sequence = seq;\r
+\r
+ ButtonGroup colours = new ButtonGroup();\r
+ colours.add(noColourmenuItem);\r
+ colours.add(clustalColour);\r
+ colours.add(zappoColour);\r
+ colours.add(taylorColour);\r
+ colours.add(hydrophobicityColour);\r
+ colours.add(helixColour);\r
+ colours.add(strandColour);\r
+ colours.add(turnColour);\r
+ colours.add(buriedColour);\r
+ colours.add(abovePIDColour);\r
+ colours.add(userDefinedColour);\r
+ colours.add(PIDColour);\r
+ colours.add(BLOSUM62Colour);\r
+\r
+ for (int i = 0; i < jalview.io.FormatAdapter.WRITEABLE_FORMATS.length; i++)\r
+ {\r
+ JMenuItem item = new JMenuItem( jalview.io.FormatAdapter.WRITEABLE_FORMATS[i] );\r
+\r
+ item.addActionListener(new java.awt.event.ActionListener()\r
+ {\r
+ public void actionPerformed(ActionEvent e)\r
+ {\r
+ outputText_actionPerformed(e);\r
+ }\r
+ });\r
+\r
+ outputMenu.add(item);\r
+ }\r
+\r
+\r
+ try\r
+ {\r
+ jbInit();\r
+ }\r
+ catch (Exception e)\r
+ {\r
+ e.printStackTrace();\r
+ }\r
+\r
+\r
+ if (seq != null)\r
+ {\r
+ int start = Math.max(sequence.getName().length()-15, 0);\r
+ sequenceMenu.setText(sequence.getName().substring(start));\r
+\r
+ JMenuItem menuItem;\r
+ if( seq.getDatasetSequence().getPDBId() != null)\r
+ {\r
+ java.util.Enumeration e = seq.getDatasetSequence().getPDBId().\r
+ elements();\r
+\r
+ while (e.hasMoreElements())\r
+ {\r
+ final PDBEntry pdb = (PDBEntry) e.nextElement();\r
+\r
+ menuItem = new JMenuItem();\r
+ menuItem.setText("View PDB entry: " + pdb.getId());\r
+ menuItem.addActionListener(new java.awt.event.ActionListener()\r
+ {\r
+ public void actionPerformed(ActionEvent e)\r
+ {\r
+ new PDBViewer(pdb, sequence, ap.seqPanel.seqCanvas);\r
+ }\r
+ });\r
+ sequenceMenu.add(menuItem);\r
+ }\r
+ }\r
+\r
+ menuItem = new JMenuItem("Hide Sequences");\r
+ menuItem.addActionListener(new java.awt.event.ActionListener()\r
+ {\r
+ public void actionPerformed(ActionEvent e)\r
+ {\r
+ hideSequences(false);\r
+ }\r
+ });\r
+ add(menuItem);\r
+\r
+ if(ap.av.getSelectionGroup() !=null\r
+ && ap.av.getSelectionGroup().getSize(false)>1)\r
+ {\r
+ menuItem = new JMenuItem("Represent Group with " + seq.getName());\r
+ menuItem.addActionListener(new java.awt.event.ActionListener()\r
+ {\r
+ public void actionPerformed(ActionEvent e)\r
+ {\r
+ hideSequences(true);\r
+ }\r
+ });\r
+ sequenceMenu.add(menuItem);\r
+ }\r
+\r
+ if (ap.av.hasHiddenRows)\r
+ {\r
+ final int index = ap.av.alignment.findIndex(seq);\r
+\r
+ if (ap.av.adjustForHiddenSeqs(index) -\r
+ ap.av.adjustForHiddenSeqs(index - 1) > 1)\r
+ {\r
+ menuItem = new JMenuItem("Reveal Sequences");\r
+ menuItem.addActionListener(new ActionListener()\r
+ {\r
+ public void actionPerformed(ActionEvent e)\r
+ {\r
+ ap.av.showSequence(index);\r
+ if (ap.overviewPanel != null)\r
+ ap.overviewPanel.updateOverviewImage();\r
+ }\r
+ });\r
+ add(menuItem);\r
+ }\r
+\r
+ menuItem = new JMenuItem("Reveal All");\r
+ menuItem.addActionListener(new ActionListener()\r
+ {\r
+ public void actionPerformed(ActionEvent e)\r
+ {\r
+ ap.av.showAllHiddenSeqs();\r
+ if (ap.overviewPanel != null)\r
+ ap.overviewPanel.updateOverviewImage();\r
+ }\r
+ });\r
+\r
+ add(menuItem);\r
+ }\r
+\r
+\r
+ }\r
+\r
+\r
+\r
+ SequenceGroup sg = ap.av.getSelectionGroup();\r
+\r
+ if (sg != null)\r
+ {\r
+ groupName.setText(sg.getName());\r
+\r
+ if (sg.cs instanceof ZappoColourScheme)\r
+ {\r
+ zappoColour.setSelected(true);\r
+ }\r
+ else if (sg.cs instanceof TaylorColourScheme)\r
+ {\r
+ taylorColour.setSelected(true);\r
+ }\r
+ else if (sg.cs instanceof PIDColourScheme)\r
+ {\r
+ PIDColour.setSelected(true);\r
+ }\r
+ else if (sg.cs instanceof Blosum62ColourScheme)\r
+ {\r
+ BLOSUM62Colour.setSelected(true);\r
+ }\r
+ else if (sg.cs instanceof UserColourScheme)\r
+ {\r
+ userDefinedColour.setSelected(true);\r
+ }\r
+ else if (sg.cs instanceof HydrophobicColourScheme)\r
+ {\r
+ hydrophobicityColour.setSelected(true);\r
+ }\r
+ else if (sg.cs instanceof HelixColourScheme)\r
+ {\r
+ helixColour.setSelected(true);\r
+ }\r
+ else if (sg.cs instanceof StrandColourScheme)\r
+ {\r
+ strandColour.setSelected(true);\r
+ }\r
+ else if (sg.cs instanceof TurnColourScheme)\r
+ {\r
+ turnColour.setSelected(true);\r
+ }\r
+ else if (sg.cs instanceof BuriedColourScheme)\r
+ {\r
+ buriedColour.setSelected(true);\r
+ }\r
+ else if (sg.cs instanceof ClustalxColourScheme)\r
+ {\r
+ clustalColour.setSelected(true);\r
+ }\r
+ else\r
+ {\r
+ noColourmenuItem.setSelected(true);\r
+ }\r
+\r
+ if (sg.cs!=null && sg.cs.conservationApplied())\r
+ {\r
+ conservationMenuItem.setSelected(true);\r
+ }\r
+\r
+ showText.setSelected(sg.getDisplayText());\r
+ showColourText.setSelected(sg.getColourText());\r
+ showBoxes.setSelected(sg.getDisplayBoxes());\r
+ }\r
+ else\r
+ {\r
+ groupMenu.setVisible(false);\r
+ editMenu.setVisible(false);\r
+ }\r
+\r
+ if (!ap.av.alignment.getGroups().contains(sg))\r
+ {\r
+ unGroupMenuItem.setVisible(false);\r
+ }\r
+\r
+\r
+ if (seq == null)\r
+ {\r
+ sequenceMenu.setVisible(false);\r
+ pdbMenu.setVisible(false);\r
+ }\r
+\r
+ if(links != null && links.size()>0)\r
+ {\r
+ JMenu linkMenu = new JMenu("Link");\r
+ JMenuItem item;\r
+ for(int i=0; i<links.size(); i++)\r
+ {\r
+ String link = links.elementAt(i).toString();\r
+ final String label = link.substring(0, link.indexOf("|"));\r
+ item = new JMenuItem(label);\r
+ final String url;\r
+\r
+ if (link.indexOf("$SEQUENCE_ID$") > -1)\r
+ {\r
+ String id = seq.getName();\r
+ if (id.indexOf("|") > -1)\r
+ id = id.substring(id.lastIndexOf("|") + 1);\r
+\r
+ url = link.substring(link.indexOf("|") + 1,\r
+ link.indexOf("$SEQUENCE_ID$"))\r
+ + id +\r
+ link.substring(link.indexOf("$SEQUENCE_ID$") + 13);\r
+ }\r
+ else\r
+ url = link.substring(link.lastIndexOf("|")+1);\r
+\r
+\r
+ item.addActionListener(new java.awt.event.ActionListener()\r
+ {\r
+ public void actionPerformed(ActionEvent e)\r
+ {\r
+ showLink(url);\r
+ }\r
+ });\r
+\r
+ linkMenu.add(item);\r
+ }\r
+ if(sequence!=null)\r
+ sequenceMenu.add(linkMenu);\r
+ else\r
+ add(linkMenu);\r
+ }\r
+ }\r