float scalew = 1f;\r
float scaleh = 1f;\r
\r
- int sequencesWidth=400, sequencesHeight=150;\r
+ int sequencesWidth, sequencesHeight;\r
int graphHeight=30;\r
int boxX=-1, boxY=-1, boxWidth=-1, boxHeight=-1;\r
\r
{\r
this.av = av;\r
this.ap = ap;\r
+\r
+ // scale the initial size of overviewpanel to shape of alignment\r
+\r
+ float initialScale = (float)av.getAlignment().getWidth()/(float)av.getAlignment().getHeight();\r
+ if(av.getAlignment().getWidth() > av.getAlignment().getHeight())\r
+ {\r
+ // wider\r
+ sequencesWidth = 400;\r
+ sequencesHeight = (int)(400f/initialScale);\r
+ }\r
+ else\r
+ {\r
+ // taller\r
+ sequencesWidth = (int)(400f*initialScale);\r
+ sequencesHeight = 300;\r
+ }\r
+\r
+\r
+\r
setSize(sequencesWidth, sequencesHeight+graphHeight);\r
setLayout(null);\r
\r
\r
public void updateOverviewImage()\r
{\r
+\r
+ boolean oldRenderGaps = av.renderGaps;\r
+ av.setRenderGaps(false);\r
miniMe = null;\r
setPreferredSize (new Dimension(sequencesWidth, sequencesHeight+graphHeight));\r
sequencesWidth=getWidth();\r
sequencesHeight=this.getHeight()-graphHeight;\r
\r
\r
- int fullsizeWidth = (int)(av.getAlignment().getWidth()*av.getCharWidth());\r
- int fullsizeHeight = av.getAlignment().getHeight()*av.getCharHeight();\r
+ int fullsizeWidth = av.getAlignment().getWidth() * av.getCharWidth();\r
+ int fullsizeHeight = av.getAlignment().getHeight()* av.getCharHeight();\r
\r
\r
BufferedImage fullSize = new BufferedImage(fullsizeWidth,\r
miniMe = null;\r
}\r
\r
+ av.setRenderGaps(oldRenderGaps);\r
+\r
}\r
\r
public void setBoxPosition()\r
\r
public void paintComponent(Graphics g)\r
{\r
+ g.setColor(Color.white);\r
+ g.fillRect(0,0,getWidth(),getHeight());\r
if(miniMe!=null)\r
g.drawImage(miniMe, 0,0,this);\r
\r