X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGAlignFrame.java;h=9491d33c30b90cc03001a61884db502290a1e899;hb=202e77bdd4533a7cfa409eb91de58d31e3d1135f;hp=1cf482d35e76757ce2d8d5d6320c684a7e13d69b;hpb=f4766a7bbcfae845fc95923b01fa14ff83d589ff;p=jalview.git diff --git a/src/jalview/jbgui/GAlignFrame.java b/src/jalview/jbgui/GAlignFrame.java index 1cf482d..9491d33 100755 --- a/src/jalview/jbgui/GAlignFrame.java +++ b/src/jalview/jbgui/GAlignFrame.java @@ -21,11 +21,14 @@ package jalview.jbgui; import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder; +import jalview.analysis.GeneticCodeI; +import jalview.analysis.GeneticCodes; import jalview.api.SplitContainerI; import jalview.bin.Cache; import jalview.gui.JvSwingUtils; import jalview.gui.Preferences; import jalview.io.FileFormats; +import jalview.schemes.ResidueColourScheme; import jalview.util.MessageManager; import jalview.util.Platform; @@ -75,7 +78,7 @@ public class GAlignFrame extends JInternalFrame protected JMenu sortByAnnotScore = new JMenu(); - public JLabel statusBar = new JLabel(); + protected JLabel statusBar = new JLabel(); protected JMenu outputTextboxMenu = new JMenu(); @@ -123,7 +126,7 @@ public class GAlignFrame extends JInternalFrame protected JMenuItem modifyPID; - protected JMenuItem annotationColour; + protected JRadioButtonMenuItem annotationColour; protected JMenu sortByTreeMenu = new JMenu(); @@ -137,7 +140,7 @@ public class GAlignFrame extends JInternalFrame protected JCheckBoxMenuItem showDbRefsMenuitem = new JCheckBoxMenuItem(); - protected JMenuItem showTranslation = new JMenuItem(); + protected JMenu showTranslation = new JMenu(); protected JMenuItem showReverse = new JMenuItem(); @@ -197,13 +200,15 @@ public class GAlignFrame extends JInternalFrame protected JCheckBoxMenuItem applyAutoAnnotationSettings = new JCheckBoxMenuItem(); - private SequenceAnnotationOrder annotationSortOrder; + private Map accelerators = new HashMap<>(); - private boolean showAutoCalculatedAbove = false; + private SplitContainerI splitFrame; - private Map accelerators = new HashMap(); + protected JMenuItem sortAnnBySequence; - private SplitContainerI splitFrame; + protected JMenuItem sortAnnByLabel; + + protected JMenu annotationsMenu; public GAlignFrame() { @@ -283,7 +288,7 @@ public class GAlignFrame extends JInternalFrame JMenu editMenu = new JMenu(MessageManager.getString("action.edit")); JMenu viewMenu = new JMenu(MessageManager.getString("action.view")); - JMenu annotationsMenu = new JMenu( + annotationsMenu = new JMenu( MessageManager.getString("action.annotations")); JMenu showMenu = new JMenu(MessageManager.getString("action.show")); colourMenu.setText(MessageManager.getString("action.colour")); @@ -596,42 +601,27 @@ public class GAlignFrame extends JInternalFrame hideAllAnnotations_actionPerformed(true, false); } }); - SequenceAnnotationOrder sortAnnotationsBy = SequenceAnnotationOrder - .valueOf(Cache.getDefault(Preferences.SORT_ANNOTATIONS, - SequenceAnnotationOrder.NONE.name())); - final JCheckBoxMenuItem sortAnnBySequence = new JCheckBoxMenuItem( + sortAnnBySequence = new JMenuItem( MessageManager.getString("label.sort_annotations_by_sequence")); - final JCheckBoxMenuItem sortAnnByLabel = new JCheckBoxMenuItem( + sortAnnByLabel = new JMenuItem( MessageManager.getString("label.sort_annotations_by_label")); - sortAnnBySequence.setSelected( - sortAnnotationsBy == SequenceAnnotationOrder.SEQUENCE_AND_LABEL); sortAnnBySequence.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - boolean newState = sortAnnBySequence.getState(); - sortAnnByLabel.setSelected(false); - setAnnotationSortOrder( - newState ? SequenceAnnotationOrder.SEQUENCE_AND_LABEL - : SequenceAnnotationOrder.NONE); - sortAnnotations_actionPerformed(); + setAnnotationSortOrder(SequenceAnnotationOrder.SEQUENCE_AND_LABEL); + sortAnnotations(false); } }); - sortAnnByLabel.setSelected( - sortAnnotationsBy == SequenceAnnotationOrder.LABEL_AND_SEQUENCE); sortAnnByLabel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - boolean newState = sortAnnByLabel.getState(); - sortAnnBySequence.setSelected(false); - setAnnotationSortOrder( - newState ? SequenceAnnotationOrder.LABEL_AND_SEQUENCE - : SequenceAnnotationOrder.NONE); - sortAnnotations_actionPerformed(); + setAnnotationSortOrder(SequenceAnnotationOrder.LABEL_AND_SEQUENCE); + sortAnnotations(false); } }); colourTextMenuItem = new JCheckBoxMenuItem( @@ -882,14 +872,15 @@ public class GAlignFrame extends JInternalFrame final boolean autoFirst = Cache .getDefault(Preferences.SHOW_AUTOCALC_ABOVE, false); showAutoFirst.setSelected(autoFirst); - setShowAutoCalculatedAbove(autoFirst); showAutoFirst.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - setShowAutoCalculatedAbove(showAutoFirst.isSelected()); - sortAnnotations_actionPerformed(); + if (setShowAutoCalculatedAbove(showAutoFirst.isSelected())) + { + sortAnnotations(true); + } } }); showAutoLast.setSelected(!showAutoFirst.isSelected()); @@ -898,8 +889,10 @@ public class GAlignFrame extends JInternalFrame @Override public void actionPerformed(ActionEvent e) { - setShowAutoCalculatedAbove(!showAutoLast.isSelected()); - sortAnnotations_actionPerformed(); + if (setShowAutoCalculatedAbove(!showAutoLast.isSelected())) + { + sortAnnotations(true); + } } }); @@ -1221,16 +1214,33 @@ public class GAlignFrame extends JInternalFrame vamsasStore_actionPerformed(e); } }); - showTranslation - .setText(MessageManager.getString("label.translate_cDNA")); - showTranslation.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent e) + + /* + * Translate as cDNA with sub-menu of translation tables + */ + showTranslation.setText(MessageManager + .getString("label.translate_cDNA")); + boolean first = true; + for (final GeneticCodeI table : GeneticCodes.getInstance() + .getCodeTables()) + { + JMenuItem item = new JMenuItem(table.getId() + " " + table.getName()); + showTranslation.add(item); + item.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + showTranslation_actionPerformed(table); + } + }); + if (first) { - showTranslation_actionPerformed(e); + showTranslation.addSeparator(); } - }); + first = false; + } + showReverse.setText(MessageManager.getString("label.reverse")); showReverse.addActionListener(new ActionListener() { @@ -1943,8 +1953,9 @@ public class GAlignFrame extends JInternalFrame } }); - annotationColour = new JMenuItem( + annotationColour = new JRadioButtonMenuItem( MessageManager.getString("action.by_annotation")); + annotationColour.setName(ResidueColourScheme.ANNOTATION_COLOUR); annotationColour.addActionListener(new ActionListener() { @Override @@ -1998,11 +2009,12 @@ public class GAlignFrame extends JInternalFrame } /** - * Action on clicking sort annotations by type. + * Action on clicking sort annotations by type, or change position of + * autocalculated annotation * - * @param sortOrder + * @param autoCalcOnly */ - protected void sortAnnotations_actionPerformed() + protected void sortAnnotations(boolean autoCalcOnly) { } @@ -2440,7 +2452,7 @@ public class GAlignFrame extends JInternalFrame } - public void showTranslation_actionPerformed(ActionEvent e) + public void showTranslation_actionPerformed(GeneticCodeI codeTable) { } @@ -2599,25 +2611,22 @@ public class GAlignFrame extends JInternalFrame } - protected boolean isShowAutoCalculatedAbove() - { - return showAutoCalculatedAbove; - } - - protected void setShowAutoCalculatedAbove(boolean showAutoCalculatedAbove) - { - this.showAutoCalculatedAbove = showAutoCalculatedAbove; - } - - protected SequenceAnnotationOrder getAnnotationSortOrder() + /** + * Sets the value of the flag for 'show autocalculated annotations above other + * annotations'. Answers true if the value changed, else false. + * + * @param showAutoCalculatedAbove + * @return + */ + protected boolean setShowAutoCalculatedAbove( + boolean showAutoCalculatedAbove) { - return annotationSortOrder; + return false; } - protected void setAnnotationSortOrder( + public void setAnnotationSortOrder( SequenceAnnotationOrder annotationSortOrder) { - this.annotationSortOrder = annotationSortOrder; } public Map getAccelerators()