X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPopupMenu.java;h=0095bc967eea1cb9cb6647cca9be48ecffae78bd;hb=21fccb30635d61dbf7ad0f266a88f07fb87358f7;hp=1263b712e6395c2568e7331c63e8b5f0c81e51d6;hpb=be32c14cd8e48fe0a207cd7030cb9cd46f894678;p=jalview.git diff --git a/src/jalview/gui/PopupMenu.java b/src/jalview/gui/PopupMenu.java index 1263b71..0095bc9 100644 --- a/src/jalview/gui/PopupMenu.java +++ b/src/jalview/gui/PopupMenu.java @@ -204,9 +204,9 @@ public class PopupMenu extends JPopupMenu JMenu jMenu1 = new JMenu(); - JMenuItem structureMenu = new JMenuItem(); + JMenuItem proteinStructureMenu = new JMenuItem(); - JMenu viewStructureMenu = new JMenu(); + JMenu rnaStructureMenu = new JMenu(); JMenuItem editSequence = new JMenuItem(); @@ -322,89 +322,54 @@ public class PopupMenu extends JPopupMenu makeReferenceSeq.setText("Mark as representative"); } - if (seq.getDatasetSequence().getPDBId() != null - && seq.getDatasetSequence().getPDBId().size() > 0) + if (!ap.av.getAlignment().isNucleotide()) { - java.util.Enumeration e = seq.getDatasetSequence().getPDBId() - .elements(); - - while (e.hasMoreElements()) - { - final PDBEntry pdb = (PDBEntry) e.nextElement(); - - menuItem = new JMenuItem(); - menuItem.setText(pdb.getId()); - menuItem.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) - { - // 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 StructureViewer(ap.getStructureSelectionManager()) - .viewStructures(pdb, - ap.av.collateForPDB(new PDBEntry[] - { pdb })[0], null, ap); - } - }); - viewStructureMenu.add(menuItem); - - /* - * menuItem = new JMenuItem(); menuItem.setText(pdb.getId()); - * menuItem.addActionListener(new java.awt.event.ActionListener() { - * public void actionPerformed(ActionEvent e) { - * colourByStructure(pdb.getId()); } }); - * colStructureMenu.add(menuItem); - */ - } + remove(rnaStructureMenu); } else { - if (ap.av.getAlignment().isNucleotide() == false) - { - structureMenu.remove(viewStructureMenu); - } - } - if (ap.av.getAlignment().isNucleotide() == true) - { - AlignmentAnnotation[] aa = ap.av.getAlignment() + /* + * add menu items to 2D-render any alignment or sequence secondary + * structure annotation + */ + AlignmentAnnotation[] aas = ap.av.getAlignment() .getAlignmentAnnotation(); - for (int i = 0; aa != null && i < aa.length; i++) + if (aas != null) { - if (aa[i].isValidStruc() && aa[i].sequenceRef == null) + for (final AlignmentAnnotation aa : aas) { - final String rnastruc = aa[i].getRNAStruc(); - final String structureLine = aa[i].label + " (alignment)"; - menuItem = new JMenuItem(); - menuItem.setText(MessageManager.formatMessage( - "label.2d_rna_structure_line", new Object[] - { structureLine })); - menuItem.addActionListener(new java.awt.event.ActionListener() + if (aa.isValidStruc() && aa.sequenceRef == null) { - @Override - public void actionPerformed(ActionEvent e) + /* + * valid alignment RNA secondary structure annotation + */ + menuItem = new JMenuItem(); + menuItem.setText(MessageManager.formatMessage( + "label.2d_rna_structure_line", new Object[] + { aa.label })); + menuItem.addActionListener(new java.awt.event.ActionListener() { - new AppVarna(structureLine, seq, seq.getSequenceAsString(), - rnastruc, seq.getName(), ap); - System.out.println("end"); - } - }); - viewStructureMenu.add(menuItem); + @Override + public void actionPerformed(ActionEvent e) + { + new AppVarna(seq, aa, ap); + } + }); + rnaStructureMenu.add(menuItem); + } } } - if (seq.getAnnotation() != null) { - AlignmentAnnotation seqAnno[] = seq.getAnnotation(); - for (int i = 0; i < seqAnno.length; i++) + AlignmentAnnotation seqAnns[] = seq.getAnnotation(); + for (final AlignmentAnnotation aa : seqAnns) { - if (seqAnno[i].isValidStruc()) + if (aa.isValidStruc()) { - final String rnastruc = seqAnno[i].getRNAStruc(); - + /* + * valid sequence RNA secondary structure annotation + */ // TODO: make rnastrucF a bit more nice menuItem = new JMenuItem(); menuItem.setText(MessageManager.formatMessage( @@ -416,13 +381,10 @@ public class PopupMenu extends JPopupMenu public void actionPerformed(ActionEvent e) { // TODO: VARNA does'nt print gaps in the sequence - - new AppVarna(seq.getName() + " structure", seq, seq - .getSequenceAsString(), rnastruc, seq.getName(), - ap); + new AppVarna(seq, aa, ap); } }); - viewStructureMenu.add(menuItem); + rnaStructureMenu.add(menuItem); } } } @@ -638,7 +600,8 @@ public class PopupMenu extends JPopupMenu if (seq == null) { sequenceMenu.setVisible(false); - structureMenu.setVisible(false); + proteinStructureMenu.setVisible(false); + rnaStructureMenu.setVisible(false); } if (links != null && links.size() > 0) @@ -1379,8 +1342,9 @@ public class PopupMenu extends JPopupMenu } }); jMenu1.setText(MessageManager.getString("label.group")); - structureMenu.setText(MessageManager.getString("label.view_structure")); - structureMenu.addActionListener(new ActionListener() + proteinStructureMenu.setText(MessageManager + .getString("label.view_protein_structure")); + proteinStructureMenu.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) @@ -1395,8 +1359,9 @@ public class PopupMenu extends JPopupMenu } }); - viewStructureMenu.setText(MessageManager - .getString("label.view_structure")); + rnaStructureMenu.setText(MessageManager + .getString("label.view_rna_structure")); + // colStructureMenu.setText("Colour By Structure"); editSequence.setText(MessageManager.getString("label.edit_sequence") + "..."); @@ -1439,7 +1404,8 @@ public class PopupMenu extends JPopupMenu groupMenu.add(sequenceSelDetails); add(groupMenu); add(sequenceMenu); - add(structureMenu); + add(rnaStructureMenu); + add(proteinStructureMenu); if (sequence!=null) { add(hideInsertions);