-public class SeqPanel extends JPanel\r
-{\r
- /** DOCUMENT ME!! */\r
- public SeqCanvas seqCanvas;\r
-\r
- /** DOCUMENT ME!! */\r
- public AlignmentPanel ap;\r
- protected int lastres;\r
- protected int startseq;\r
- int startEdit = -1;\r
- int endEdit = -1;\r
- protected AlignViewport av;\r
-\r
- // if character is inserted or deleted, we will need to recalculate the conservation\r
- int seqEditOccurred = -1;\r
- ScrollThread scrollThread = null;\r
- boolean mouseDragging = false;\r
- boolean editingSeqs = false;\r
- boolean groupEditing = false;\r
-\r
- //////////////////////////////////////////\r
- /////Everything below this is for defining the boundary of the rubberband\r
- //////////////////////////////////////////\r
- int oldSeq = -1;\r
- boolean changeEndSeq = false;\r
- boolean changeStartSeq = false;\r
- boolean changeEndRes = false;\r
- boolean changeStartRes = false;\r
- SequenceGroup stretchGroup = null;\r
- boolean remove = false;\r
-\r
- boolean mouseWheelPressed = false;\r
-\r
- /**\r
- * Creates a new SeqPanel object.\r
- *\r
- * @param avp DOCUMENT ME!\r
- * @param p DOCUMENT ME!\r
- */\r
- public SeqPanel(AlignViewport avp, AlignmentPanel p)\r
- {\r
- ToolTipManager.sharedInstance().registerComponent(this);\r
- ToolTipManager.sharedInstance().setInitialDelay(0);\r
- ToolTipManager.sharedInstance().setDismissDelay(10000);\r
- this.av = avp;\r
- setBackground(Color.white);\r
-\r
- seqCanvas = new SeqCanvas(avp);\r
- setLayout(new BorderLayout());\r
- add(seqCanvas, BorderLayout.CENTER);\r
-\r
- ap = p;\r
-\r
- addMouseMotionListener(new MouseMotionAdapter()\r
- {\r
- public void mouseMoved(MouseEvent evt)\r
- {\r
- doMouseMoved(evt);\r
- }\r
-\r
- public void mouseDragged(MouseEvent evt)\r
- {\r
- if (editingSeqs)\r
- {\r
- doMouseDragged(evt);\r
- }\r
- else\r
- {\r
- doMouseDraggedDefineMode(evt);\r
- }\r
- }\r
- });\r
-\r
- addMouseWheelListener(new MouseWheelListener()\r
- {\r
- public void mouseWheelMoved(MouseWheelEvent e)\r
- {\r
-\r
- if (mouseWheelPressed)\r
- {\r
- Font font = av.getFont();\r
- int fontSize = font.getSize();\r
- if (e.getWheelRotation() > 0 && fontSize < 30)\r
- fontSize++;\r
- else if (fontSize > 1)\r
- fontSize--;\r
-\r
- av.setFont(new Font(font.getName(), font.getStyle(), fontSize));\r
- ap.fontChanged();\r
- }\r
- else\r
- {\r
- if (e.getWheelRotation() > 0)\r
- ap.scrollUp(false);\r
- else\r
- ap.scrollUp(true);\r
- }\r
-\r
- }\r
- });\r
-\r
-\r
- addMouseListener(new MouseAdapter()\r
- {\r
- public void mouseReleased(MouseEvent evt)\r
- {\r
- mouseWheelPressed = false;\r
-\r
- if (editingSeqs)\r
- {\r
- doMouseReleased(evt);\r
- }\r
- else\r
- {\r
- doMouseReleasedDefineMode(evt);\r
- }\r
- }\r
-\r
- public void mousePressed(MouseEvent evt)\r
- {\r
- if( javax.swing.SwingUtilities.isMiddleMouseButton(evt))\r
- {\r
- mouseWheelPressed = true;\r
- return;\r
- }\r
-\r
- if (evt.isShiftDown() || evt.isAltDown() ||\r
- evt.isControlDown())\r
- {\r
- if (evt.isAltDown() || evt.isControlDown())\r
- {\r
- groupEditing = true;\r
- }\r
-\r
- editingSeqs = true;\r
- doMousePressed(evt);\r
- }\r
- else\r
- {\r
- doMousePressedDefineMode(evt);\r
- }\r
- }\r
-\r
- public void mouseExited(MouseEvent evt)\r
- {\r
- if (editingSeqs)\r
- {\r
- return;\r
- }\r
-\r
- doMouseExitedDefineMode(evt);\r
- }\r
-\r
- public void mouseEntered(MouseEvent evt)\r
- {\r
- if (editingSeqs)\r
- {\r
- return;\r
- }\r