X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqPanel.java;h=b9ba9f344c7fa4aaebc5af7be02b2d08a0b725bc;hb=9807ea8cc4e867378c52d51b832168d4bc611d29;hp=8486ac1f59f78c5ef76080d5a16f2d3367a36ed6;hpb=ce728f87f1f43be3041ef02f7f2cc2e39314711a;p=jalview.git diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index 8486ac1..b9ba9f3 100755 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -18,8 +18,6 @@ */ package jalview.gui; -import jalview.analysis.*; - import jalview.datamodel.*; import jalview.schemes.*; @@ -91,21 +89,31 @@ public class SeqPanel extends JPanel ap = p; + addMouseMotionListener(new MouseMotionAdapter() { public void mouseMoved(MouseEvent evt) { doMouseMoved(evt); + if (editingSeqs) + { + // This is because MacOSX creates a mouseMoved + // If control is down + if(!av.isDataset()) + doMouseDragged(evt); + } } public void mouseDragged(MouseEvent evt) { if (editingSeqs) { + if(!av.isDataset()) doMouseDragged(evt); } else { + if(!av.isDataset()) doMouseDraggedDefineMode(evt); } } @@ -120,7 +128,7 @@ public class SeqPanel extends JPanel { Font font = av.getFont(); int fontSize = font.getSize(); - if (e.getWheelRotation() > 0 && fontSize < 30) + if (e.getWheelRotation() > 0 && fontSize < 51) fontSize++; else if (fontSize > 1) fontSize--; @@ -140,67 +148,71 @@ public class SeqPanel extends JPanel }); - addMouseListener(new MouseAdapter() - { - public void mouseReleased(MouseEvent evt) - { - mouseWheelPressed = false; - - if (editingSeqs) - { - doMouseReleased(evt); - } - else - { - doMouseReleasedDefineMode(evt); - } - } - - public void mousePressed(MouseEvent evt) - { - if( javax.swing.SwingUtilities.isMiddleMouseButton(evt)) - { - mouseWheelPressed = true; - return; - } + if(!av.isDataset()) + { + addMouseListener(new MouseAdapter() + { + public void mouseReleased(MouseEvent evt) + { + mouseWheelPressed = false; - if (evt.isShiftDown() || evt.isAltDown() || - evt.isControlDown()) - { - if (evt.isAltDown() || evt.isControlDown()) - { - groupEditing = true; - } + if (editingSeqs) + { + doMouseReleased(evt); + } + else + { + doMouseReleasedDefineMode(evt); + } + } - editingSeqs = true; - doMousePressed(evt); - } - else - { - doMousePressedDefineMode(evt); - } - } + public void mousePressed(MouseEvent evt) + { + if (javax.swing.SwingUtilities.isMiddleMouseButton(evt)) + { + mouseWheelPressed = true; + return; + } + + if (evt.isShiftDown() || evt.isAltDown() || + evt.isControlDown()) + { + if (evt.isAltDown() || evt.isControlDown()) + { + groupEditing = true; + + } + + editingSeqs = true; + doMousePressed(evt); + } + else + { + doMousePressedDefineMode(evt); + } + } - public void mouseExited(MouseEvent evt) - { - if (editingSeqs) - { - return; - } + public void mouseExited(MouseEvent evt) + { + if (editingSeqs) + { + return; + } - doMouseExitedDefineMode(evt); - } + doMouseExitedDefineMode(evt); + } - public void mouseEntered(MouseEvent evt) - { - if (editingSeqs) - { - return; - } + public void mouseEntered(MouseEvent evt) + { + if (editingSeqs) + { + return; + } - doMouseEnteredDefineMode(evt); - } - }); + doMouseEnteredDefineMode(evt); + } + }); + } } int startWrapBlock=-1; @@ -238,6 +250,9 @@ public class SeqPanel extends JPanel res = (x / av.getCharWidth()) + av.getStartRes(); } + if(av.hasHiddenColumns) + res = av.getColumnSelection().adjustForHiddenColumns(res); + return res; } @@ -342,25 +357,41 @@ public class SeqPanel extends JPanel if (res > sequence.getLength()) { - return; - } + return; + } - Object obj = ResidueProperties.aa2Triplet.get(sequence.getCharAt(res) + - ""); - String aa = ""; + if(seqCanvas.pdbCanvas!=null && sequence==seqCanvas.pdbCanvas.sequence) + { + seqCanvas.pdbCanvas.highlightRes(sequence.findPosition(res)); + } - if (obj != null) - { - aa = obj.toString(); - } StringBuffer text = new StringBuffer("Sequence " + (seq + 1) + " ID: " + sequence.getName()); - if (aa != "") + Object obj = null; + if (av.alignment.isNucleotide()) + { + obj = ResidueProperties.nucleotideName.get(sequence.getCharAt(res) + + ""); + if(obj!=null) + text.append(" Nucleotide: "); + } + else { - text.append(" Residue: " + aa + " (" + - av.getAlignment().getSequenceAt(seq).findPosition(res) + ")"); + obj = ResidueProperties.aa2Triplet.get(sequence.getCharAt(res) + ""); + if(obj!=null) + text.append(" Residue: "); + } + + if (obj != null) + { + + if (obj != "") + { + text.append( obj + " (" + + av.getAlignment().getSequenceAt(seq).findPosition(res) + ")"); + } } ap.alignFrame.statusBar.setText(text.toString()); @@ -368,32 +399,62 @@ public class SeqPanel extends JPanel // use aa to see if the mouse pointer is on a if (av.showSequenceFeatures) { - Vector features = sequence.getSequenceFeatures(); - Enumeration e = features.elements(); - StringBuffer sbuffer = new StringBuffer(); - - while (e.hasMoreElements()) + SequenceFeature [] features = sequence.getDatasetSequence().getSequenceFeatures(); + if(features!=null) { - SequenceFeature sf = (SequenceFeature) e.nextElement(); + StringBuffer sbuffer = new StringBuffer(""); - if ((sf.getStart() <= sequence.findPosition(res)) && - (sf.getEnd() >= sequence.findPosition(res))) + for (int i = 0; i < features.length; i++) + { + + if ( (features[i].getBegin() <= sequence.findPosition(res)) && + (features[i].getEnd() >= sequence.findPosition(res))) { - if (sbuffer.length() > 0) + if(!av.featuresDisplayed.containsKey(features[i].getType())) + continue; + + + if (features[i].getType().equals("disulfide bond")) + { + if (features[i].getBegin() == sequence.findPosition(res) + || features[i].getEnd() == sequence.findPosition(res)) { - sbuffer.append("; "); + if (sbuffer.length() > 6) + sbuffer.append("
"); + sbuffer.append("disulfide bond " + features[i].getBegin() + ":" + + features[i].getEnd()); } + } + else + { + if (sbuffer.length() > 6) + sbuffer.append("
"); + if(features[i].featureGroup!=null) + sbuffer.append(features[i].featureGroup+";"); - sbuffer.append(sf.getType() + " " + sf.getDescription()); + sbuffer.append(features[i].getType()); - if (sf.getStatus().length() > 0) + if (features[i].getDescription() != null + && !features[i].description.equals(features[i].getType())) + sbuffer.append("; " + features[i].getDescription()); + + if (features[i].getStatus() != null && features[i].getStatus().length()>0) { - sbuffer.append(" (" + sf.getStatus() + ")"); + sbuffer.append("; (" + features[i].getStatus() + ")"); } + } } - } - this.setToolTipText(sbuffer.toString()); + } + + sbuffer.append(""); + if(sbuffer.length()==13) // + setToolTipText(""); + else + setToolTipText(sbuffer.toString()); + } + else + setToolTipText(""); } } @@ -549,19 +610,6 @@ public class SeqPanel extends JPanel seqCanvas.repaint(); } - /** - * DOCUMENT ME! - * - * @param seqstart DOCUMENT ME! - * @param seqend DOCUMENT ME! - * @param start DOCUMENT ME! - */ - public void drawChars(int seqstart, int seqend, int start) - { - seqCanvas.drawPanel(seqCanvas.gg, start, av.getEndRes(), seqstart, - seqend, av.getStartRes(), av.getStartSeq(), 0); - seqCanvas.repaint(); - } /** * DOCUMENT ME! @@ -959,7 +1007,7 @@ public class SeqPanel extends JPanel try { - Thread.sleep(75); + Thread.sleep(20); } catch (Exception ex) {