X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPopupMenu.java;h=82ce8359874e9964066a88f7d468c3544eaf4c2c;hb=9a05eeccaf18e0c82cd183f0b84a8be42bf181c7;hp=07fdeea1e62004f24336dcebf834a65e4bbf14e5;hpb=f3d4aa7052f5486039bc2bca8e779a46130ebe10;p=jalview.git diff --git a/src/jalview/gui/PopupMenu.java b/src/jalview/gui/PopupMenu.java old mode 100755 new mode 100644 index 07fdeea..82ce835 --- a/src/jalview/gui/PopupMenu.java +++ b/src/jalview/gui/PopupMenu.java @@ -21,6 +21,7 @@ import java.util.*; import java.awt.*; import java.awt.event.*; + import javax.swing.*; import MCview.*; @@ -37,7 +38,7 @@ import jalview.util.UrlLink; * DOCUMENT ME! * * @author $author$ - * @version $Revision$ + * @version $Revision: 1.118 $ */ public class PopupMenu extends JPopupMenu { @@ -68,6 +69,10 @@ public class PopupMenu extends JPopupMenu protected JRadioButtonMenuItem PIDColour = new JRadioButtonMenuItem(); protected JRadioButtonMenuItem BLOSUM62Colour = new JRadioButtonMenuItem(); + + protected JRadioButtonMenuItem purinePyrimidineColour = new JRadioButtonMenuItem(); + + //protected JRadioButtonMenuItem covariationColour = new JRadioButtonMenuItem(); JRadioButtonMenuItem noColourmenuItem = new JRadioButtonMenuItem(); @@ -156,8 +161,8 @@ public class PopupMenu extends JPopupMenu * @param links * @param groupLinks */ - public PopupMenu(final AlignmentPanel ap, Sequence seq, Vector links, - Vector groupLinks) + public PopupMenu(final AlignmentPanel ap, final Sequence seq, final Vector links, + final Vector groupLinks) { // ///////////////////////////////////////////////////////// // If this is activated from the sequence panel, the user may want to @@ -182,6 +187,8 @@ public class PopupMenu extends JPopupMenu colours.add(userDefinedColour); colours.add(PIDColour); colours.add(BLOSUM62Colour); + colours.add(purinePyrimidineColour); + //colours.add(covariationColour); for (int i = 0; i < jalview.io.FormatAdapter.WRITEABLE_FORMATS.length; i++) { @@ -228,33 +235,11 @@ public class PopupMenu extends JPopupMenu { public void actionPerformed(ActionEvent e) { - Vector seqs = new Vector(); - for (int i = 0; i < ap.av.alignment.getHeight(); i++) - { - Vector pdbs = ap.av.alignment.getSequenceAt(i) - .getDatasetSequence().getPDBId(); - if (pdbs == null) - continue; - - for (int p = 0; p < pdbs.size(); p++) - { - PDBEntry p1 = (PDBEntry) pdbs.elementAt(p); - if (p1.getId().equals(pdb.getId())) - { - if (!seqs.contains(ap.av.alignment.getSequenceAt(i))) - seqs.addElement(ap.av.alignment.getSequenceAt(i)); - - continue; - } - } - } - - SequenceI[] seqs2 = new SequenceI[seqs.size()]; - seqs.toArray(seqs2); - - new AppJmol(pdb, seqs2, null, ap); + // TODO re JAL-860: optionally open dialog or provide a menu entry allowing user to open just one structure per sequence + new AppJmol(pdb, ap.av.collateForPDB(new PDBEntry[] { pdb })[0], null, ap); // new PDBViewer(pdb, seqs2, null, ap, AppletFormatAdapter.FILE); } + }); viewStructureMenu.add(menuItem); @@ -268,10 +253,40 @@ public class PopupMenu extends JPopupMenu } } else - { - structureMenu.remove(viewStructureMenu); + { + if(ap.av.alignment.isNucleotide()==false){ + structureMenu.remove(viewStructureMenu); + } // structureMenu.remove(colStructureMenu); } + + if(ap.av.alignment.isNucleotide()==true){ + AlignmentAnnotation[] aa = ap.av.alignment.getAlignmentAnnotation(); + String rnastruc=new String(); + for(int i=0; i pdbe=new Hashtable(); + for (SequenceI sq: ap.av.getSequenceSelection()) + { + Vector pes = (Vector) sq.getDatasetSequence().getPDBId(); + if (pes!=null) { + for (PDBEntry pe: pes) + { + pdbe.put(pe.getId(), pe); + } + } + } + if (pdbe.size()>0) + { + final PDBEntry[] pe = pdbe.values().toArray(new PDBEntry[pdbe.size()]); + final JMenuItem gpdbview; + structureMenu.add(gpdbview=new JMenuItem("View "+pdbe.size()+" structures.")); + gpdbview.setToolTipText("Open a new Jmol view with all structures associated with the current selection and superimpose them using the alignment."); + gpdbview.addActionListener(new ActionListener() + { + + @Override + public void actionPerformed(ActionEvent e) + { + new AppJmol(ap, pe, ap.av.collateForPDB(pe)); + } + }); + } } else { @@ -988,6 +1039,8 @@ public class PopupMenu extends JPopupMenu colourMenu.add(turnColour); colourMenu.add(buriedColour); colourMenu.add(nucleotideMenuItem); + colourMenu.add(purinePyrimidineColour); + //colourMenu.add(covariationColour); colourMenu.add(userDefinedColour); if (jalview.gui.UserDefinedColours.getUserColourSchemes() != null) @@ -1139,6 +1192,23 @@ public class PopupMenu extends JPopupMenu BLOSUM62Colour_actionPerformed(); } }); + purinePyrimidineColour.setText("Purine/Pyrimidine"); + purinePyrimidineColour.addActionListener(new java.awt.event.ActionListener() + { + public void actionPerformed(ActionEvent e) + { + purinePyrimidineColour_actionPerformed(); + } + }); + /* + covariationColour.addActionListener(new java.awt.event.ActionListener() + { + public void actionPerformed(ActionEvent e) + { + covariationColour_actionPerformed(); + } + });*/ + conservationMenuItem.setText("Conservation"); conservationMenuItem .addActionListener(new java.awt.event.ActionListener() @@ -1277,7 +1347,19 @@ public class PopupMenu extends JPopupMenu getGroup().cs = new NucleotideColourScheme(); refresh(); } - + + protected void purinePyrimidineColour_actionPerformed() + { + getGroup().cs = new PurinePyrimidineColourScheme(); + refresh(); + } + /* + protected void covariationColour_actionPerformed() + { + getGroup().cs = new CovariationColourScheme(sequence.getAnnotation()[0]); + refresh(); + } +*/ /** * DOCUMENT ME! * @@ -1826,8 +1908,7 @@ public class PopupMenu extends JPopupMenu public void colourByStructure(String pdbid) { - Annotation[] anots = jalview.structure.StructureSelectionManager - .getStructureSelectionManager().colourSequenceFromStructure( + Annotation[] anots = ap.av.getStructureSelectionManager().colourSequenceFromStructure( sequence, pdbid); AlignmentAnnotation an = new AlignmentAnnotation("Structure",