import jalview.commands.*;\r
import jalview.datamodel.*;\r
import jalview.schemes.*;\r
+import jalview.structure.*;\r
\r
/**\r
* DOCUMENT ME!\r
*/\r
public class SeqPanel\r
extends JPanel implements MouseListener,\r
- MouseMotionListener, MouseWheelListener\r
+ MouseMotionListener, MouseWheelListener, SequenceListener\r
\r
{\r
/** DOCUMENT ME!! */\r
\r
EditCommand editCommand;\r
\r
+ StructureSelectionManager ssm;\r
+\r
+\r
/**\r
* Creates a new SeqPanel object.\r
*\r
addMouseMotionListener(this);\r
addMouseListener(this);\r
addMouseWheelListener(this);\r
+ ssm = StructureSelectionManager.getStructureSelectionManager();\r
+ ssm.addStructureViewerListener(this);\r
}\r
}\r
\r
\r
void setCursorRow()\r
{\r
- seqCanvas.cursorY = getKeyboardNo(keyboardNo1) - 1;\r
+ seqCanvas.cursorY = getKeyboardNo1() - 1;\r
scrollToVisible();\r
}\r
\r
void setCursorColumn()\r
{\r
- seqCanvas.cursorX = getKeyboardNo(keyboardNo1) - 1;\r
+ seqCanvas.cursorX = getKeyboardNo1() - 1;\r
scrollToVisible();\r
}\r
\r
}\r
else\r
{\r
- seqCanvas.cursorX = getKeyboardNo(keyboardNo1) - 1;\r
- seqCanvas.cursorY = getKeyboardNo(keyboardNo2) - 1;\r
+ seqCanvas.cursorX = getKeyboardNo1() - 1;\r
+ seqCanvas.cursorY = getKeyboardNo2() - 1;\r
scrollToVisible();\r
}\r
}\r
(Sequence) av.getAlignment().getSequenceAt(seqCanvas.cursorY);\r
\r
seqCanvas.cursorX = sequence.findIndex(\r
- getKeyboardNo(keyboardNo1) - 1\r
+ getKeyboardNo1() - 1\r
);\r
scrollToVisible();\r
}\r
av.setSelectionGroup(sg);\r
}\r
\r
- ap.repaint();\r
+ ap.paintAlignment(false);\r
}\r
\r
void insertGapAtCursor(boolean group)\r
groupEditing = group;\r
startseq = seqCanvas.cursorY;\r
lastres = seqCanvas.cursorX;\r
- editSequence(true, seqCanvas.cursorX + getKeyboardNo(keyboardNo1));\r
+ editSequence(true, seqCanvas.cursorX + getKeyboardNo1());\r
endEditing();\r
}\r
\r
{\r
groupEditing = group;\r
startseq = seqCanvas.cursorY;\r
- lastres = seqCanvas.cursorX + getKeyboardNo(keyboardNo1);\r
+ lastres = seqCanvas.cursorX + getKeyboardNo1();\r
editSequence(false, seqCanvas.cursorX);\r
endEditing();\r
}\r
}\r
}\r
\r
- int getKeyboardNo(StringBuffer kb)\r
+ int getKeyboardNo1()\r
{\r
- if (kb == null)\r
- {\r
+ if (keyboardNo1 == null)\r
return 1;\r
+ else\r
+ {\r
+ int value = Integer.parseInt(keyboardNo1.toString());\r
+ keyboardNo1 = null;\r
+ return value;\r
}\r
+ }\r
+\r
+ int getKeyboardNo2()\r
+ {\r
+ if (keyboardNo2 == null)\r
+ return 1;\r
else\r
{\r
- return Integer.parseInt(kb.toString());\r
+ int value = Integer.parseInt(keyboardNo2.toString());\r
+ keyboardNo2 = null;\r
+ return value;\r
}\r
}\r
\r
\r
endEditing();\r
\r
- ap.repaint();\r
+ ap.paintAlignment(true);\r
}\r
\r
/**\r
return;\r
}\r
\r
+ String lastMessage;\r
+ public void mouseOverSequence(SequenceI sequence, int index)\r
+ {\r
+ String tmp = sequence.hashCode()+index+"";\r
+ if (lastMessage == null || !lastMessage.equals(tmp))\r
+ ssm.mouseOverSequence(sequence, index);\r
+\r
+ lastMessage = tmp;\r
+ }\r
+\r
+\r
+ public void highlightSequence(jalview.datamodel.SequenceI seq, int index)\r
+ {\r
+ if(av.alignment.findIndex(seq)>-1)\r
+ {\r
+ SearchResults highlight = new SearchResults();\r
+ highlight.addResult(seq,index,index);\r
+ seqCanvas.highlightSearchResults(highlight);\r
+ }\r
+ }\r
+\r
+ public void updateColours(SequenceI seq, int index)\r
+ {\r
+ System.out.println("update the seqPanel colours");\r
+ //repaint();\r
+ }\r
+\r
/**\r
* DOCUMENT ME!\r
*\r
return;\r
}\r
\r
- if (seqCanvas.pdbCanvas != null && sequence == seqCanvas.pdbCanvas.sequence)\r
- {\r
- seqCanvas.pdbCanvas.highlightRes(sequence.findPosition(res));\r
- }\r
+ if (ssm != null)\r
+ mouseOverSequence(sequence, sequence.findPosition(res));\r
\r
setStatusMessage(sequence, res, seq);\r
\r
av.charWidth++;\r
}\r
\r
- ap.repaint();\r
+ ap.paintAlignment(false);\r
}\r
\r
FontMetrics fm = getFontMetrics(av.getFont());\r
{\r
scrollThread.setEvent(evt);\r
}\r
-\r
}\r
\r
+\r
+\r
synchronized void editSequence(boolean insertGap, int startres)\r
{\r
int fixedLeft = -1;\r
public void mouseWheelMoved(MouseWheelEvent e)\r
{\r
e.consume();\r
- /* if (mouseWheelPressed)\r
- {\r
- Font font = av.getFont();\r
- int fontSize = font.getSize();\r
- if (e.getWheelRotation() > 0 && fontSize < 51)\r
- fontSize++;\r
- else if (fontSize > 1)\r
- fontSize--;\r
-\r
-\r
-\r
- av.setFont(new Font(font.getName(), font.getStyle(), fontSize));\r
-\r
- ap.fontChanged();\r
- }\r
- else*/\r
- {\r
if (e.getWheelRotation() > 0)\r
{\r
ap.scrollUp(false);\r
{\r
ap.scrollUp(true);\r
}\r
- }\r
-\r
}\r
\r
/**\r
stretchGroup = null;\r
\r
PaintRefresher.Refresh(this, av.getSequenceSetId());\r
+ ap.paintAlignment(true);\r
}\r
\r
/**\r