MenuItem cut = new MenuItem("Cut (Jalview Only)");\r
MenuItem toUpper = new MenuItem("To Upper Case");\r
MenuItem toLower = new MenuItem("To Lower Case");\r
+ MenuItem toggleCase = new MenuItem("Toggle Case");\r
\r
public APopupMenu(AlignmentPanel apanel, final Sequence seq, Vector links)\r
{\r
}\r
\r
SequenceGroup sg = ap.av.getSelectionGroup();\r
- if (sg != null)\r
+\r
+ if (sg != null && sg.getSize()>0)\r
{\r
showText.setState(sg.getDisplayText());\r
showColourText.setState(sg.getColourText());\r
showBoxes.setState(sg.getDisplayBoxes());\r
- }\r
+ if (!ap.av.alignment.getGroups().contains(sg))\r
+ {\r
+ groupMenu.remove(unGroupMenuItem);\r
+ }\r
\r
- if (!ap.av.alignment.getGroups().contains(sg))\r
+ }\r
+ else\r
{\r
- groupMenu.remove(unGroupMenuItem);\r
+ remove(groupMenu);\r
+ remove(editMenu);\r
}\r
\r
- if (seq != null && links!=null)\r
+ if (links!=null)\r
{\r
Menu linkMenu = new Menu("Link");\r
MenuItem item;\r
link = links.elementAt(i).toString();\r
final String target = link.substring(0, link.indexOf("|"));\r
item = new MenuItem(target);\r
- String id = seq.getName();\r
- if(id.indexOf("|")>-1)\r
- id = id.substring(id.lastIndexOf("|")+1);\r
\r
- final String url = link.substring(link.indexOf("|")+1, link.indexOf("$SEQUENCE_ID$"))\r
- + id +\r
- link.substring(link.indexOf("$SEQUENCE_ID$") + 13);\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
item.addActionListener(new java.awt.event.ActionListener()\r
{\r
}\r
add(linkMenu);\r
\r
- item = new MenuItem("Show PDB Structure");\r
- item.addActionListener(new java.awt.event.ActionListener()\r
- {\r
- public void actionPerformed(ActionEvent e)\r
- {\r
- addPDB(seq);\r
- }\r
- });\r
-\r
- add(item);\r
-\r
+ if(seq!=null)\r
+ {\r
+ item = new MenuItem("Show PDB Structure");\r
+ item.addActionListener(new java.awt.event.ActionListener()\r
+ {\r
+ public void actionPerformed(ActionEvent e)\r
+ {\r
+ addPDB(seq);\r
+ }\r
+ });\r
\r
+ add(item);\r
+ }\r
}\r
}\r
\r
ap.alignFrame.copy_actionPerformed();\r
else if(source==cut)\r
ap.alignFrame.cut_actionPerformed();\r
- else if(source==toUpper)\r
- {\r
- SequenceGroup sg = ap.av.getSelectionGroup();\r
- if (sg != null)\r
- {\r
- for (int g = 0; g < sg.getSize(); g++)\r
- {\r
- sg.getSequenceAt(g).changeCase(true, sg.getStartRes(),\r
- sg.getEndRes() + 1);\r
- }\r
- ap.seqPanel.seqCanvas.repaint();\r
- }\r
- }\r
- else if(source==toLower)\r
+ else if(source==toUpper || source==toLower || source==toggleCase)\r
{\r
SequenceGroup sg = ap.av.getSelectionGroup();\r
if (sg != null)\r
{\r
for (int g = 0; g < sg.getSize(); g++)\r
{\r
- sg.getSequenceAt(g).changeCase(false, sg.getStartRes(),\r
- sg.getEndRes() + 1);\r
+ if (source == toggleCase)\r
+ sg.getSequenceAt(g).toggleCase(sg.getStartRes(), sg.getEndRes() + 1);\r
+ else\r
+ sg.getSequenceAt(g).changeCase(source == toUpper, sg.getStartRes(),\r
+ sg.getEndRes() + 1);\r
}\r
ap.seqPanel.seqCanvas.repaint();\r
}\r
toUpper.addActionListener(this);\r
editMenu.add(toLower);\r
toLower.addActionListener(this);\r
+ editMenu.add(toggleCase);\r
+ toggleCase.addActionListener(this);\r
\r
}\r
\r