X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqPanel.java;h=0b9af01ca9a08ee2b0b749eb09f40fe9cec2d190;hb=7e1770e6de8e4cb62329b5d40346c7403e92696c;hp=a20165a78123a2ffbe1ba0d85225a08d37e50f95;hpb=7bc226b58110fa26d9dbd3f0c78095d06909ffc3;p=jalview.git diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index a20165a..0b9af01 100755 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -27,6 +27,7 @@ import javax.swing.*; import jalview.commands.*; import jalview.datamodel.*; import jalview.schemes.*; +import jalview.structure.*; /** * DOCUMENT ME! @@ -36,7 +37,7 @@ import jalview.schemes.*; */ public class SeqPanel extends JPanel implements MouseListener, - MouseMotionListener, MouseWheelListener + MouseMotionListener, MouseWheelListener, SequenceListener { /** DOCUMENT ME!! */ @@ -76,6 +77,9 @@ public class SeqPanel EditCommand editCommand; + StructureSelectionManager ssm; + + /** * Creates a new SeqPanel object. * @@ -102,6 +106,8 @@ public class SeqPanel addMouseMotionListener(this); addMouseListener(this); addMouseWheelListener(this); + ssm = StructureSelectionManager.getStructureSelectionManager(); + ssm.addStructureViewerListener(this); } } @@ -258,13 +264,13 @@ public class SeqPanel void setCursorRow() { - seqCanvas.cursorY = getKeyboardNo(keyboardNo1) - 1; + seqCanvas.cursorY = getKeyboardNo1() - 1; scrollToVisible(); } void setCursorColumn() { - seqCanvas.cursorX = getKeyboardNo(keyboardNo1) - 1; + seqCanvas.cursorX = getKeyboardNo1() - 1; scrollToVisible(); } @@ -276,8 +282,8 @@ public class SeqPanel } else { - seqCanvas.cursorX = getKeyboardNo(keyboardNo1) - 1; - seqCanvas.cursorY = getKeyboardNo(keyboardNo2) - 1; + seqCanvas.cursorX = getKeyboardNo1() - 1; + seqCanvas.cursorY = getKeyboardNo2() - 1; scrollToVisible(); } } @@ -288,7 +294,7 @@ public class SeqPanel (Sequence) av.getAlignment().getSequenceAt(seqCanvas.cursorY); seqCanvas.cursorX = sequence.findIndex( - getKeyboardNo(keyboardNo1) - 1 + getKeyboardNo1() - 1 ); scrollToVisible(); } @@ -449,7 +455,7 @@ public class SeqPanel av.setSelectionGroup(sg); } - ap.repaint(); + ap.paintAlignment(false); } void insertGapAtCursor(boolean group) @@ -457,7 +463,7 @@ public class SeqPanel groupEditing = group; startseq = seqCanvas.cursorY; lastres = seqCanvas.cursorX; - editSequence(true, seqCanvas.cursorX + getKeyboardNo(keyboardNo1)); + editSequence(true, seqCanvas.cursorX + getKeyboardNo1()); endEditing(); } @@ -465,7 +471,7 @@ public class SeqPanel { groupEditing = group; startseq = seqCanvas.cursorY; - lastres = seqCanvas.cursorX + getKeyboardNo(keyboardNo1); + lastres = seqCanvas.cursorX + getKeyboardNo1(); editSequence(false, seqCanvas.cursorX); endEditing(); } @@ -487,15 +493,27 @@ public class SeqPanel } } - int getKeyboardNo(StringBuffer kb) + int getKeyboardNo1() { - if (kb == null) - { + if (keyboardNo1 == null) return 1; + else + { + int value = Integer.parseInt(keyboardNo1.toString()); + keyboardNo1 = null; + return value; } + } + + int getKeyboardNo2() + { + if (keyboardNo2 == null) + return 1; else { - return Integer.parseInt(kb.toString()); + int value = Integer.parseInt(keyboardNo2.toString()); + keyboardNo2 = null; + return value; } } @@ -517,7 +535,7 @@ public class SeqPanel endEditing(); - ap.repaint(); + ap.paintAlignment(true); } /** @@ -573,6 +591,33 @@ public class SeqPanel return; } + String lastMessage; + public void mouseOverSequence(SequenceI sequence, int index) + { + String tmp = sequence.hashCode()+index+""; + if (lastMessage == null || !lastMessage.equals(tmp)) + ssm.mouseOverSequence(sequence, index); + + lastMessage = tmp; + } + + + public void highlightSequence(jalview.datamodel.SequenceI seq, int index) + { + if(av.alignment.findIndex(seq)>-1) + { + SearchResults highlight = new SearchResults(); + highlight.addResult(seq,index,index); + seqCanvas.highlightSearchResults(highlight); + } + } + + public void updateColours(SequenceI seq, int index) + { + System.out.println("update the seqPanel colours"); + //repaint(); + } + /** * DOCUMENT ME! * @@ -602,10 +647,8 @@ public class SeqPanel return; } - if (seqCanvas.pdbCanvas != null && sequence == seqCanvas.pdbCanvas.sequence) - { - seqCanvas.pdbCanvas.highlightRes(sequence.findPosition(res)); - } + if (ssm != null) + mouseOverSequence(sequence, sequence.findPosition(res)); setStatusMessage(sequence, res, seq); @@ -837,7 +880,7 @@ public class SeqPanel av.charWidth++; } - ap.repaint(); + ap.paintAlignment(false); } FontMetrics fm = getFontMetrics(av.getFont()); @@ -881,9 +924,10 @@ public class SeqPanel { scrollThread.setEvent(evt); } - } + + synchronized void editSequence(boolean insertGap, int startres) { int fixedLeft = -1; @@ -1355,23 +1399,6 @@ public class SeqPanel public void mouseWheelMoved(MouseWheelEvent e) { e.consume(); - /* if (mouseWheelPressed) - { - Font font = av.getFont(); - int fontSize = font.getSize(); - if (e.getWheelRotation() > 0 && fontSize < 51) - fontSize++; - else if (fontSize > 1) - fontSize--; - - - - av.setFont(new Font(font.getName(), font.getStyle(), fontSize)); - - ap.fontChanged(); - } - else*/ - { if (e.getWheelRotation() > 0) { ap.scrollUp(false); @@ -1380,8 +1407,6 @@ public class SeqPanel { ap.scrollUp(true); } - } - } /** @@ -1575,6 +1600,7 @@ public class SeqPanel stretchGroup = null; PaintRefresher.Refresh(this, av.getSequenceSetId()); + ap.paintAlignment(true); } /**