X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAPopupMenu.java;h=1c9b3cd94091c3bb1a19283843fe2472ba0dfccc;hb=c23f28e21e50f93f6e695bdc86247f2700c35869;hp=a9a0e354b88ec1c5f79136024e85d66a6234d828;hpb=81bf67e64fade340738792bfbcd8b3a3efd3a010;p=jalview.git diff --git a/src/jalview/appletgui/APopupMenu.java b/src/jalview/appletgui/APopupMenu.java index a9a0e35..1c9b3cd 100755 --- a/src/jalview/appletgui/APopupMenu.java +++ b/src/jalview/appletgui/APopupMenu.java @@ -53,6 +53,12 @@ public class APopupMenu CheckboxMenuItem showBoxes = new CheckboxMenuItem(); CheckboxMenuItem showText = new CheckboxMenuItem(); CheckboxMenuItem showColourText = new CheckboxMenuItem(); + Menu editMenu = new Menu("Edit"); + MenuItem copy = new MenuItem("Copy (Jalview Only)"); + MenuItem cut = new MenuItem("Cut (Jalview Only)"); + MenuItem toUpper = new MenuItem("To Upper Case"); + MenuItem toLower = new MenuItem("To Lower Case"); + MenuItem toggleCase = new MenuItem("Toggle Case"); public APopupMenu(AlignmentPanel apanel, final Sequence seq, Vector links) { @@ -75,19 +81,25 @@ public class APopupMenu } SequenceGroup sg = ap.av.getSelectionGroup(); - if (sg != null) + + if (sg != null && sg.getSize()>0) { showText.setState(sg.getDisplayText()); showColourText.setState(sg.getColourText()); showBoxes.setState(sg.getDisplayBoxes()); - } + if (!ap.av.alignment.getGroups().contains(sg)) + { + groupMenu.remove(unGroupMenuItem); + } - if (!ap.av.alignment.getGroups().contains(sg)) + } + else { - groupMenu.remove(unGroupMenuItem); + remove(groupMenu); + remove(editMenu); } - if (seq != null && links!=null) + if (links!=null) { Menu linkMenu = new Menu("Link"); MenuItem item; @@ -97,13 +109,22 @@ public class APopupMenu link = links.elementAt(i).toString(); final String target = link.substring(0, link.indexOf("|")); item = new MenuItem(target); - String id = seq.getName(); - if(id.indexOf("|")>-1) - id = id.substring(id.lastIndexOf("|")+1); - final String url = link.substring(link.indexOf("|")+1, link.indexOf("$SEQUENCE_ID$")) - + id + - link.substring(link.indexOf("$SEQUENCE_ID$") + 13); + final String url; + + if (link.indexOf("$SEQUENCE_ID$") > -1) + { + String id = seq.getName(); + if (id.indexOf("|") > -1) + id = id.substring(id.lastIndexOf("|") + 1); + + url = link.substring(link.indexOf("|") + 1, + link.indexOf("$SEQUENCE_ID$")) + + id + + link.substring(link.indexOf("$SEQUENCE_ID$") + 13); + } + else + url = link.substring(link.lastIndexOf("|")+1); item.addActionListener(new java.awt.event.ActionListener() { @@ -116,18 +137,19 @@ public class APopupMenu } add(linkMenu); - item = new MenuItem("Show PDB Structure"); - item.addActionListener(new java.awt.event.ActionListener() - { - public void actionPerformed(ActionEvent e) - { - addPDB(seq); - } - }); - - add(item); - - + if(seq!=null) + { + item = new MenuItem("Show PDB Structure"); + item.addActionListener(new java.awt.event.ActionListener() + { + public void actionPerformed(ActionEvent e) + { + addPDB(seq); + } + }); + + add(item); + } } } @@ -145,45 +167,67 @@ public class APopupMenu public void actionPerformed(ActionEvent evt) { - if(evt.getSource()==clustalColour) + Object source = evt.getSource(); + if(source==clustalColour) clustalColour_actionPerformed(); - else if(evt.getSource()==zappoColour) + else if(source==zappoColour) zappoColour_actionPerformed(); - else if(evt.getSource()==taylorColour) + else if(source==taylorColour) taylorColour_actionPerformed(); - else if(evt.getSource()==hydrophobicityColour) + else if(source==hydrophobicityColour) hydrophobicityColour_actionPerformed(); - else if(evt.getSource()==helixColour) + else if(source==helixColour) helixColour_actionPerformed(); - else if(evt.getSource()==strandColour) + else if(source==strandColour) strandColour_actionPerformed(); - else if(evt.getSource()==clustalColour) + else if(source==clustalColour) turnColour_actionPerformed(); - else if(evt.getSource()==buriedColour) + else if(source==buriedColour) buriedColour_actionPerformed(); - else if(evt.getSource()==nucleotideMenuItem) + else if(source==nucleotideMenuItem) nucleotideMenuItem_actionPerformed(); - else if(evt.getSource()==userDefinedColour) + else if(source==userDefinedColour) userDefinedColour_actionPerformed(); - else if(evt.getSource()==PIDColour) + else if(source==PIDColour) PIDColour_actionPerformed(); - else if(evt.getSource()==BLOSUM62Colour) + else if(source==BLOSUM62Colour) BLOSUM62Colour_actionPerformed(); - else if(evt.getSource()==noColourmenuItem) + else if(source==noColourmenuItem) noColourmenuItem_actionPerformed(); - else if(evt.getSource()==conservationMenuItem) + else if(source==conservationMenuItem) conservationMenuItem_itemStateChanged(); - else if(evt.getSource()==unGroupMenuItem) + else if(source==unGroupMenuItem) unGroupMenuItem_actionPerformed(); + else if(source==copy) + ap.alignFrame.copy_actionPerformed(); + else if(source==cut) + ap.alignFrame.cut_actionPerformed(); + else if(source==toUpper || source==toLower || source==toggleCase) + { + SequenceGroup sg = ap.av.getSelectionGroup(); + if (sg != null) + { + for (int g = 0; g < sg.getSize(); g++) + { + if (source == toggleCase) + sg.getSequenceAt(g).toggleCase(sg.getStartRes(), sg.getEndRes() + 1); + else + sg.getSequenceAt(g).changeCase(source == toUpper, sg.getStartRes(), + sg.getEndRes() + 1); + } + ap.seqPanel.seqCanvas.repaint(); + } + } + } void addPDB(Sequence seq) { - CutAndPasteTransfer cap = new CutAndPasteTransfer(true, ap.alignFrame.applet); + CutAndPasteTransfer cap = new CutAndPasteTransfer(true, ap.alignFrame); cap.setText("Paste your PDB file here."); - cap.setPDBImport(seq, ap.seqPanel.seqCanvas); + cap.setPDBImport(seq); Frame frame = new Frame(); frame.add(cap); jalview.bin.JalviewLite.addFrame(frame, "Paste PDB file ", 400, 300); @@ -265,6 +309,18 @@ public class APopupMenu BLOSUM62Colour.addActionListener(this); conservationMenuItem.setLabel("Conservation"); + add(editMenu); + editMenu.add(copy); + copy.addActionListener(this); + editMenu.add(cut); + cut.addActionListener(this); + editMenu.add(toUpper); + toUpper.addActionListener(this); + editMenu.add(toLower); + toLower.addActionListener(this); + editMenu.add(toggleCase); + toggleCase.addActionListener(this); + } void refresh()