X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAPopupMenu.java;h=1b2d19a0d9b55f71c848300dcffb2ee8875e19ba;hb=479307d1043e937fbace7a1375b2e94aefcbc1fa;hp=64fed16939ce43ea0af70c89f9b5641b72ebc65d;hpb=58afea88095280d807e5c2ac8b9155de5ba3503c;p=jalview.git diff --git a/src/jalview/appletgui/APopupMenu.java b/src/jalview/appletgui/APopupMenu.java index 64fed16..1b2d19a 100644 --- a/src/jalview/appletgui/APopupMenu.java +++ b/src/jalview/appletgui/APopupMenu.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -20,19 +20,44 @@ */ package jalview.appletgui; -import java.util.*; - -import java.awt.*; -import java.awt.event.*; - -import jalview.analysis.*; -import jalview.commands.*; -import jalview.datamodel.*; -import jalview.schemes.*; -import jalview.util.MessageManager; -import jalview.util.UrlLink; +import jalview.analysis.AAFrequency; +import jalview.analysis.Conservation; +import jalview.commands.ChangeCaseCommand; +import jalview.commands.EditCommand; +import jalview.commands.EditCommand.Action; +import jalview.datamodel.DBRefEntry; +import jalview.datamodel.PDBEntry; +import jalview.datamodel.Sequence; +import jalview.datamodel.SequenceFeature; +import jalview.datamodel.SequenceGroup; +import jalview.datamodel.SequenceI; import jalview.io.AppletFormatAdapter; import jalview.io.SequenceAnnotationReport; +import jalview.schemes.Blosum62ColourScheme; +import jalview.schemes.BuriedColourScheme; +import jalview.schemes.ClustalxColourScheme; +import jalview.schemes.HelixColourScheme; +import jalview.schemes.HydrophobicColourScheme; +import jalview.schemes.NucleotideColourScheme; +import jalview.schemes.PIDColourScheme; +import jalview.schemes.ResidueProperties; +import jalview.schemes.StrandColourScheme; +import jalview.schemes.TaylorColourScheme; +import jalview.schemes.TurnColourScheme; +import jalview.schemes.ZappoColourScheme; +import jalview.util.MessageManager; +import jalview.util.UrlLink; + +import java.awt.CheckboxMenuItem; +import java.awt.Frame; +import java.awt.Menu; +import java.awt.MenuItem; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.util.List; +import java.util.Vector; public class APopupMenu extends java.awt.PopupMenu implements ActionListener, ItemListener @@ -89,10 +114,9 @@ public class APopupMenu extends java.awt.PopupMenu implements Menu editMenu = new Menu(MessageManager.getString("action.edit")); - MenuItem copy = new MenuItem( - MessageManager.getString("label.jalview_copy")); + MenuItem copy = new MenuItem(MessageManager.getString("action.copy")); - MenuItem cut = new MenuItem(MessageManager.getString("label.jalview_cut")); + MenuItem cut = new MenuItem(MessageManager.getString("action.cut")); MenuItem toUpper = new MenuItem( MessageManager.getString("label.to_upper_case")); @@ -128,6 +152,8 @@ public class APopupMenu extends java.awt.PopupMenu implements MenuItem selSeqDetails = new MenuItem( MessageManager.getString("label.sequence_details") + "..."); + MenuItem makeReferenceSeq = new MenuItem(); + Sequence seq; MenuItem revealAll = new MenuItem(); @@ -323,6 +349,17 @@ public class APopupMenu extends java.awt.PopupMenu implements if (seq != null) { seqMenu.setLabel(seq.getName()); + if (seq == ap.av.getAlignment().getSeqrep()) + { + makeReferenceSeq.setLabel(MessageManager + .getString("action.unmark_as_reference"));// Unmark + // representative"); + } + else + { + makeReferenceSeq.setLabel(MessageManager + .getString("action.set_as_reference")); // ); + } repGroup.setLabel(MessageManager.formatMessage( "label.represent_group_with", new String[] { seq.getName() })); @@ -491,6 +528,10 @@ public class APopupMenu extends java.awt.PopupMenu implements { editName(); } + else if (source == makeReferenceSeq) + { + makeReferenceSeq_actionPerformed(); + } else if (source == sequenceDetails) { showSequenceDetails(); @@ -549,7 +590,9 @@ public class APopupMenu extends java.awt.PopupMenu implements if (sg != null) { if (seq == null) + { seq = (Sequence) sg.getSequenceAt(0); + } EditNameDialog dialog = new EditNameDialog(seq.getSequenceAsString( sg.getStartRes(), sg.getEndRes() + 1), null, @@ -559,8 +602,8 @@ public class APopupMenu extends java.awt.PopupMenu implements if (dialog.accept) { - EditCommand editCommand = new EditCommand("Edit Sequences", - EditCommand.REPLACE, dialog.getName().replace(' ', + EditCommand editCommand = new EditCommand(MessageManager.getString("label.edit_sequences"), + Action.REPLACE, dialog.getName().replace(' ', ap.av.getGapCharacter()), sg.getSequencesAsArray(ap.av.getHiddenRepSequences()), sg.getStartRes(), sg.getEndRes() + 1, @@ -576,10 +619,9 @@ public class APopupMenu extends java.awt.PopupMenu implements else if (source == toUpper || source == toLower || source == toggleCase) { SequenceGroup sg = ap.av.getSelectionGroup(); - Vector regions = new Vector(); if (sg != null) { - int[][] startEnd = ap.av.getVisibleRegionBoundaries( + List startEnd = ap.av.getVisibleRegionBoundaries( sg.getStartRes(), sg.getEndRes() + 1); String description; @@ -647,7 +689,7 @@ public class APopupMenu extends java.awt.PopupMenu implements features, true, ap)) { ap.alignFrame.sequenceFeatures.setState(true); - ap.av.showSequenceFeatures(true); + ap.av.setShowSequenceFeatures(true);; ap.highlightSearchResults(null); } } @@ -672,8 +714,7 @@ public class APopupMenu extends java.awt.PopupMenu implements // TODO consider using getSequenceSelection instead here cap.setText(new jalview.io.AppletFormatAdapter().formatSequences( - e.getActionCommand(), - ap.av.showJVSuffix, ap.av, true)); + e.getActionCommand(), ap.av.getShowJVSuffix(), ap.av, true)); } @@ -706,7 +747,7 @@ public class APopupMenu extends java.awt.PopupMenu implements true, true, false, - (ap.seqPanel.seqCanvas.fr != null) ? ap.seqPanel.seqCanvas.fr.minmax + (ap.seqPanel.seqCanvas.fr != null) ? ap.seqPanel.seqCanvas.fr.getMinMax() : null); contents.append("

"); } @@ -742,11 +783,15 @@ public class APopupMenu extends java.awt.PopupMenu implements PDBEntry entry = (PDBEntry) seq.getPDBId().firstElement(); if (ap.av.applet.jmolAvailable) + { new jalview.appletgui.AppletJmol(entry, new Sequence[] { seq }, null, ap, AppletFormatAdapter.URL); + } else + { new MCview.AppletPDBViewer(entry, new Sequence[] { seq }, null, ap, AppletFormatAdapter.URL); + } } else @@ -879,6 +924,7 @@ public class APopupMenu extends java.awt.PopupMenu implements toLower.addActionListener(this); editMenu.add(toggleCase); seqMenu.add(sequenceName); + seqMenu.add(makeReferenceSeq); // seqMenu.add(sequenceDetails); if (!ap.av.applet.useXtrnalSviewer) @@ -898,6 +944,7 @@ public class APopupMenu extends java.awt.PopupMenu implements repGroup.addActionListener(this); revealAll.addActionListener(this); revealSeq.addActionListener(this); + makeReferenceSeq.addActionListener(this); } void refresh() @@ -975,7 +1022,7 @@ public class APopupMenu extends java.awt.PopupMenu implements int threshold = SliderPanel.setPIDSliderSource(ap, sg.cs, getGroup() .getName()); - sg.cs.setThreshold(threshold, ap.av.getIgnoreGapsConsensus()); + sg.cs.setThreshold(threshold, ap.av.isIgnoreGapsConsensus()); SliderPanel.showPIDSlider(); @@ -983,7 +1030,7 @@ public class APopupMenu extends java.awt.PopupMenu implements else // remove PIDColouring { - sg.cs.setThreshold(0, ap.av.getIgnoreGapsConsensus()); + sg.cs.setThreshold(0, ap.av.isIgnoreGapsConsensus()); } refresh(); @@ -1087,6 +1134,28 @@ public class APopupMenu extends java.awt.PopupMenu implements getGroup().setDisplayText(showText.getState()); refresh(); } + public void makeReferenceSeq_actionPerformed() + { + if (!ap.av.getAlignment().hasSeqrep()) + { + // initialise the display flags so the user sees something happen + ap.av.setDisplayReferenceSeq(true); + ap.av.setColourByReferenceSeq(true); + ap.av.getAlignment().setSeqrep(seq); + } + else + { + if (ap.av.getAlignment().getSeqrep() == seq) + { + ap.av.getAlignment().setSeqrep(null); + } + else + { + ap.av.getAlignment().setSeqrep(seq); + } + } + refresh(); + } public void showNonconserved_itemStateChanged() {