X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FSeqPanel.java;h=db6add722dfd4578ae8973ffcae2e8708c2a52ea;hb=17e77c3f2949a0729322b4a8d907f3f34b6a9914;hp=86dedfc189b079b020877873ce64d63f4d1c4ad4;hpb=ed2283c5f54da377a2a2fdbdb7aec75ed7041714;p=jalview.git diff --git a/src/jalview/appletgui/SeqPanel.java b/src/jalview/appletgui/SeqPanel.java index 86dedfc..db6add7 100644 --- a/src/jalview/appletgui/SeqPanel.java +++ b/src/jalview/appletgui/SeqPanel.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) - * Copyright (C) $$Year-Rel$$ The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9) + * Copyright (C) 2015 The Jalview Authors * * This file is part of Jalview. * @@ -20,21 +20,10 @@ */ package jalview.appletgui; -import java.awt.BorderLayout; -import java.awt.Font; -import java.awt.FontMetrics; -import java.awt.Panel; -import java.awt.Point; -import java.awt.event.InputEvent; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; -import java.awt.event.MouseMotionListener; -import java.util.List; -import java.util.Vector; - import jalview.api.AlignViewportI; import jalview.commands.EditCommand; import jalview.commands.EditCommand.Action; +import jalview.datamodel.AlignmentI; import jalview.datamodel.ColumnSelection; import jalview.datamodel.SearchResults; import jalview.datamodel.SearchResults.Match; @@ -52,6 +41,17 @@ import jalview.util.MappingUtils; import jalview.util.MessageManager; import jalview.viewmodel.AlignmentViewport; +import java.awt.BorderLayout; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Panel; +import java.awt.Point; +import java.awt.event.InputEvent; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.awt.event.MouseMotionListener; +import java.util.Vector; + public class SeqPanel extends Panel implements MouseMotionListener, MouseListener, SequenceListener, SelectionListener { @@ -432,8 +432,9 @@ public class SeqPanel extends Panel implements MouseMotionListener, } else { - residue = "X".equalsIgnoreCase(displayChar) ? "X" - : ResidueProperties.aa2Triplet.get(displayChar); + residue = "X".equalsIgnoreCase(displayChar) ? "X" : ("*" + .equals(displayChar) ? "STOP" : ResidueProperties.aa2Triplet + .get(displayChar)); if (residue != null) { text.append(" Residue: ").append(residue); @@ -446,36 +447,8 @@ public class SeqPanel extends Panel implements MouseMotionListener, pos = sequence.findPosition(res); text.append(" (").append(Integer.toString(pos)).append(")"); } - // Object obj = null; - // if (av.getAlignment().isNucleotide()) - // { - // obj = ResidueProperties.nucleotideName.get(sequence.getCharAt(res) - // + ""); - // if (obj != null) - // { - // text.append(" Nucleotide: "); - // } - // } - // else - // { - // obj = ResidueProperties.aa2Triplet.get(sequence.getCharAt(res) + ""); - // if (obj != null) - // { - // text.append(" Residue: "); - // } - // } - // - // if (obj != null) - // { - // - // if (obj != "") - // { - // text.append(obj + " (" + sequence.findPosition(res) + ")"); - // } - // } ap.alignFrame.statusBar.setText(text.toString()); - } /** @@ -483,23 +456,37 @@ public class SeqPanel extends Panel implements MouseMotionListener, * search results. * * @param results + * @return true if results were matched, false if not */ - private void setStatusMessage(SearchResults results) + private boolean setStatusMessage(SearchResults results) { - List matches = results.getResults(); - if (!matches.isEmpty()) + AlignmentI al = this.av.getAlignment(); + int sequenceIndex = al.findIndex(results); + if (sequenceIndex == -1) + { + return false; + } + SequenceI ds = al.getSequenceAt(sequenceIndex).getDatasetSequence(); + for (Match m : results.getResults()) { - Match m = matches.get(0); SequenceI seq = m.getSequence(); - int sequenceIndex = this.av.getAlignment().findIndex(seq); + if (seq.getDatasetSequence() != null) + { + seq = seq.getDatasetSequence(); + } - /* - * Convert position in sequence (base 1) to sequence character array index - * (base 0) - */ - int start = m.getStart() - 1; - setStatusMessage(seq, start, sequenceIndex); + if (seq == ds) + { + /* + * Convert position in sequence (base 1) to sequence character array + * index (base 0) + */ + int start = m.getStart() - 1; + setStatusMessage(seq, start, sequenceIndex); + return true; + } } + return false; } public void mousePressed(MouseEvent evt) @@ -577,8 +564,8 @@ public class SeqPanel extends Panel implements MouseMotionListener, } if (features != null && features.length > 0) { - seqCanvas.getFeatureRenderer().amendFeatures(new SequenceI[] - { sequence }, features, false, ap); + seqCanvas.getFeatureRenderer().amendFeatures( + new SequenceI[] { sequence }, features, false, ap); seqCanvas.highlightSearchResults(null); } @@ -620,8 +607,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, } int cHeight = av.getAlignment().getHeight() * av.getCharHeight() - + hgap - + seqCanvas.getAnnotationHeight(); + + hgap + seqCanvas.getAnnotationHeight(); int y = evt.getY(); y -= hgap; @@ -678,8 +664,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, } int cHeight = av.getAlignment().getHeight() * av.getCharHeight() - + hgap - + seqCanvas.getAnnotationHeight(); + + hgap + seqCanvas.getAnnotationHeight(); y -= hgap; @@ -813,8 +798,8 @@ public class SeqPanel extends Panel implements MouseMotionListener, } else { - obj = "X".equalsIgnoreCase(ch) ? "X" - : ResidueProperties.aa2Triplet.get(ch); + obj = "X".equalsIgnoreCase(ch) ? "X" : ResidueProperties.aa2Triplet + .get(ch); if (obj != null) { text.append(" Residue: ").append(obj); @@ -898,13 +883,15 @@ public class SeqPanel extends Panel implements MouseMotionListener, for (int i = 0; i < features.length; i++) { if (av.getFeaturesDisplayed() == null - || !av.getFeaturesDisplayed().isVisible(features[i].getType())) + || !av.getFeaturesDisplayed().isVisible( + features[i].getType())) { continue; } if (features[i].featureGroup != null - && !seqCanvas.fr.checkGroupVisibility(features[i].featureGroup,false)) + && !seqCanvas.fr.checkGroupVisibility( + features[i].featureGroup, false)) { continue; } @@ -1060,8 +1047,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, if (editCommand == null) { editCommand = new EditCommand(MessageManager.formatMessage( - "label.edit_params", new String[] - { label })); + "label.edit_params", new String[] { label })); } } @@ -1295,14 +1281,14 @@ public class SeqPanel extends Panel implements MouseMotionListener, { for (int j = lastres; j < startres; j++) { - insertChar(j, new SequenceI[] - { seq }, fixedRight); + insertChar(j, new SequenceI[] { seq }, fixedRight); } } else { - editCommand.appendEdit(Action.INSERT_GAP, new SequenceI[] - { seq }, lastres, startres - lastres, av.getAlignment(), true); + editCommand.appendEdit(Action.INSERT_GAP, + new SequenceI[] { seq }, lastres, startres - lastres, + av.getAlignment(), true); } } else @@ -1317,8 +1303,7 @@ public class SeqPanel extends Panel implements MouseMotionListener, endEditing(); break; } - deleteChar(startres, new SequenceI[] - { seq }, fixedRight); + deleteChar(startres, new SequenceI[] { seq }, fixedRight); } } else @@ -1336,8 +1321,9 @@ public class SeqPanel extends Panel implements MouseMotionListener, if (max > 0) { - editCommand.appendEdit(Action.DELETE_GAP, new SequenceI[] - { seq }, startres, max, av.getAlignment(), true); + editCommand.appendEdit(Action.DELETE_GAP, + new SequenceI[] { seq }, startres, max, + av.getAlignment(), true); } } } @@ -1942,22 +1928,24 @@ public class SeqPanel extends Panel implements MouseMotionListener, protected boolean selectionFromTranslation(SequenceGroup seqsel, ColumnSelection colsel, SelectionSource source) { - if (!(source instanceof AlignViewportI)) { + if (!(source instanceof AlignViewportI)) + { return false; } final AlignViewportI sourceAv = (AlignViewportI) source; - if (sourceAv.getCodingComplement() != av && av.getCodingComplement() != sourceAv) + if (sourceAv.getCodingComplement() != av + && av.getCodingComplement() != sourceAv) { return false; } - + /* * Map sequence selection */ SequenceGroup sg = MappingUtils.mapSequenceGroup(seqsel, sourceAv, av); av.setSelectionGroup(sg); av.isSelectionGroupChanged(true); - + /* * Map column selection */ @@ -1965,10 +1953,10 @@ public class SeqPanel extends Panel implements MouseMotionListener, av); av.setColumnSelection(cs); av.isColSelChanged(true); - + ap.scalePanelHolder.repaint(); ap.repaint(); - + return true; }