});\r
\r
\r
- hscroll.setFocusable(false);\r
- vscroll.setFocusable(false);\r
+ // hscroll.setFocusable(false);\r
+ // vscroll.setFocusable(false);\r
setFocusable(true);\r
\r
addKeyListener(new KeyAdapter()\r
switch(evt.getKeyCode())\r
{\r
case 27: // escape key\r
- av.setRubberbandGroup(null);\r
- av.getSelection().clear();\r
+ av.setSelectionGroup(null);\r
RefreshPanels();\r
break;\r
case KeyEvent.VK_X:\r
\r
public void RefreshPanels()\r
{\r
- requestFocus();\r
- invalidate();\r
- idPanelHolder.setPreferredSize( idPanel.idCanvas.getPreferredSize() );\r
- idSpaceFillerPanel1.setPreferredSize(new Dimension(500, av.charHeight/2 +12));\r
- scalePanelHolder.setPreferredSize(new Dimension(500, av.charHeight/2 +12));\r
- if(av.getWrapAlignment())\r
- {\r
- int max = av.alignment.getWidth()/ (seqPanel.seqCanvas.getWidth()/av.charWidth)+1;\r
+ javax.swing.SwingUtilities.invokeLater(new Runnable()\r
+ {\r
+ public void run()\r
+ {\r
+\r
+ requestFocus();\r
+ invalidate();\r
+ idPanelHolder.setPreferredSize(idPanel.idCanvas.getPreferredSize());\r
+ hscrollFillerPanel.setPreferredSize(new Dimension(idPanel.idCanvas.\r
+ getPreferredSize().width, 12));\r
+ idSpaceFillerPanel1.setPreferredSize(new Dimension(500,\r
+ av.charHeight / 2 + 12));\r
+ scalePanelHolder.setPreferredSize(new Dimension(500,\r
+ av.charHeight / 2 + 12));\r
+ if (av.getWrapAlignment())\r
+ {\r
+ int max = av.alignment.getWidth() /\r
+ (seqPanel.seqCanvas.getWidth() / av.charWidth) + 1;\r
+\r
+ int h = (av.alignment.getHeight() + 2) * av.charHeight;\r
+ vextent = seqPanel.seqCanvas.getHeight() / h;\r
+ vscroll.setValues(0, vextent, 0, max);\r
+ }\r
+ else\r
+\r
+ setScrollValues(av.getStartRes(), av.getStartSeq());\r
+ av.getConsensus(true);\r
+ if (overviewPanel != null)\r
+ overviewPanel.updateOverviewImage();\r
+\r
+ }\r
+ });\r
+\r
+ validate();\r
+ repaint();\r
+ }\r
+ int hextent = 0;\r
+ int vextent = 0;\r
+\r
\r
- int h = (av.alignment.getHeight() + 2)*av.charHeight;\r
- vextent = seqPanel.seqCanvas.getHeight()/h;\r
- vscroll.setValues(0,vextent,0,max);\r
+ // return value is true if the scroll is valid\r
+ public boolean scrollUp(boolean up)\r
+ {\r
+ if(up)\r
+ {\r
+ if(vscroll.getValue()<1)\r
+ return false;\r
+ vscroll.setValue(vscroll.getValue() - 1);\r
}\r
else\r
+ {\r
+ if(vextent+vscroll.getValue() >= av.getAlignment().getHeight())\r
+ return false;\r
+ vscroll.setValue(vscroll.getValue() + 1);\r
+ }\r
\r
- setScrollValues(av.getStartRes(), av.getStartSeq());\r
- av.getConsensus(true);\r
- if(overviewPanel!=null)\r
- overviewPanel.updateOverviewImage();\r
+ return true;\r
+ }\r
\r
- validate();\r
- repaint();\r
+ public boolean scrollRight(boolean right)\r
+ {\r
+ if(right)\r
+ {\r
+ if(hscroll.getValue()<1)\r
+ return false;\r
+ hscroll.setValue(hscroll.getValue() - 1);\r
+ }\r
+ else\r
+ {\r
+ if(hextent+hscroll.getValue() >= av.getAlignment().getWidth())\r
+ return false;\r
+ hscroll.setValue(hscroll.getValue() + 1);\r
+ }\r
\r
- }\r
+ return true;\r
+ }\r
\r
- int hextent = 0;\r
- int vextent = 0;\r
\r
public void setScrollValues(int x, int y)\r
{\r
Color currentTextColor=null;\r
for(int i=startSeq; i<endSeq; i++)\r
{\r
- if (av.getSelection().contains(av.getAlignment().getSequenceAt(i)))\r
+ if (av.alignment.findGroup(av.getAlignment().getSequenceAt(i))==null)\r
{\r
currentColor = Color.gray;\r
currentTextColor = Color.black;\r
\r
javax.swing.JFileChooser chooser = new javax.swing.JFileChooser(jalview.bin.Cache.getProperty(\r
"LAST_DIRECTORY"));\r
+ chooser.setFileView(new jalview.io.JalviewFileView());\r
chooser.setDialogTitle("Create JPG image from alignment");\r
chooser.setToolTipText("Save");\r
\r