CheckboxMenuItem showBoxes = new CheckboxMenuItem();\r
CheckboxMenuItem showText = new CheckboxMenuItem();\r
CheckboxMenuItem showColourText = new CheckboxMenuItem();\r
+ Menu editMenu = new Menu("Edit");\r
+ MenuItem copy = new MenuItem("Copy (Jalview Only)");\r
+ 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
-\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
\r
public void actionPerformed(ActionEvent evt)\r
{\r
- if(evt.getSource()==clustalColour)\r
+ Object source = evt.getSource();\r
+ if(source==clustalColour)\r
clustalColour_actionPerformed();\r
- else if(evt.getSource()==zappoColour)\r
+ else if(source==zappoColour)\r
zappoColour_actionPerformed();\r
- else if(evt.getSource()==taylorColour)\r
+ else if(source==taylorColour)\r
taylorColour_actionPerformed();\r
- else if(evt.getSource()==hydrophobicityColour)\r
+ else if(source==hydrophobicityColour)\r
hydrophobicityColour_actionPerformed();\r
- else if(evt.getSource()==helixColour)\r
+ else if(source==helixColour)\r
helixColour_actionPerformed();\r
- else if(evt.getSource()==strandColour)\r
+ else if(source==strandColour)\r
strandColour_actionPerformed();\r
- else if(evt.getSource()==clustalColour)\r
+ else if(source==clustalColour)\r
turnColour_actionPerformed();\r
- else if(evt.getSource()==buriedColour)\r
+ else if(source==buriedColour)\r
buriedColour_actionPerformed();\r
- else if(evt.getSource()==nucleotideMenuItem)\r
+ else if(source==nucleotideMenuItem)\r
nucleotideMenuItem_actionPerformed();\r
\r
- else if(evt.getSource()==userDefinedColour)\r
+ else if(source==userDefinedColour)\r
userDefinedColour_actionPerformed();\r
- else if(evt.getSource()==PIDColour)\r
+ else if(source==PIDColour)\r
PIDColour_actionPerformed();\r
- else if(evt.getSource()==BLOSUM62Colour)\r
+ else if(source==BLOSUM62Colour)\r
BLOSUM62Colour_actionPerformed();\r
- else if(evt.getSource()==noColourmenuItem)\r
+ else if(source==noColourmenuItem)\r
noColourmenuItem_actionPerformed();\r
- else if(evt.getSource()==conservationMenuItem)\r
+ else if(source==conservationMenuItem)\r
conservationMenuItem_itemStateChanged();\r
- else if(evt.getSource()==unGroupMenuItem)\r
+ else if(source==unGroupMenuItem)\r
unGroupMenuItem_actionPerformed();\r
\r
+ else if(source==copy)\r
+ ap.alignFrame.copy_actionPerformed();\r
+ else if(source==cut)\r
+ ap.alignFrame.cut_actionPerformed();\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
+ 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
+ }\r
+\r
}\r
\r
void addPDB(Sequence seq)\r
BLOSUM62Colour.addActionListener(this);\r
conservationMenuItem.setLabel("Conservation");\r
\r
+ add(editMenu);\r
+ editMenu.add(copy);\r
+ copy.addActionListener(this);\r
+ editMenu.add(cut);\r
+ cut.addActionListener(this);\r
+ editMenu.add(toUpper);\r
+ toUpper.addActionListener(this);\r
+ editMenu.add(toLower);\r
+ toLower.addActionListener(this);\r
+ editMenu.add(toggleCase);\r
+ toggleCase.addActionListener(this);\r
+\r
}\r
\r
void refresh()\r