X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FOverviewPanel.java;h=fd3c334ccb62b91e5a2e6004e275b3f6d05a5f58;hb=ec012cb44879af718f1f9d88d669ebdc763712f2;hp=a4127bd86fee6b1fc41b67e2f4831f7c9d36a321;hpb=cb5acd3e551c2f9e67f8db366a93828f110c15fa;p=jalview.git diff --git a/src/jalview/gui/OverviewPanel.java b/src/jalview/gui/OverviewPanel.java index a4127bd..fd3c334 100755 --- a/src/jalview/gui/OverviewPanel.java +++ b/src/jalview/gui/OverviewPanel.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -64,11 +64,9 @@ public class OverviewPanel extends JPanel implements Runnable setLayout(null); sr = new SequenceRenderer(av); - sr.renderGaps( false ); + sr.renderGaps = false; sr.forOverview = true; fr = new FeatureRenderer(av); - fr.overview = true; - // scale the initial size of overviewpanel to shape of alignment float initialScale = (float) av.alignment.getWidth() / (float) av.alignment.getHeight(); @@ -113,8 +111,12 @@ public class OverviewPanel extends JPanel implements Runnable { public void mouseDragged(MouseEvent evt) { - if(!av.wrapAlignment) - doMouseDragged(evt); + if (!av.wrapAlignment) + { + boxX = evt.getX(); + boxY = evt.getY(); + checkValid(); + } } }); @@ -123,91 +125,17 @@ public class OverviewPanel extends JPanel implements Runnable public void mousePressed(MouseEvent evt) { if(!av.wrapAlignment) - doMousePressed(evt); - } - - public void mouseReleased(MouseEvent evt) - { - if(!av.wrapAlignment) - doMouseReleased(evt); + { + boxX = evt.getX(); + boxY = evt.getY(); + checkValid(); + } } }); updateOverviewImage(); } - /** - * DOCUMENT ME! - * - * @param evt DOCUMENT ME! - */ - public void doMousePressed(MouseEvent evt) - { - boxX = evt.getX(); - boxY = evt.getY(); - - checkValid(); - repaint(); - } - - /** - * DOCUMENT ME! - * - * @param evt DOCUMENT ME! - */ - public void doMouseReleased(MouseEvent evt) - { - boxX = evt.getX(); - boxY = evt.getY(); - checkValid(); - - if(av.hasHiddenColumns) - { - int col = (int) ( boxX / scalew / av.getCharWidth()); - - if(av.getColumnSelection().isVisible(col)) - { - ap.setScrollValues( - av.getColumnSelection().findColumnPosition(col), - (int) (boxY / scaleh / av.getCharHeight())); - } - else - System.out.println(col +" not visible"); - } - else - ap.setScrollValues( (int) (boxX / scalew / av.getCharWidth()), - (int) (boxY / scaleh / av.getCharHeight())); - } - - /** - * DOCUMENT ME! - * - * @param evt DOCUMENT ME! - */ - public void doMouseDragged(MouseEvent evt) - { - boxX = evt.getX(); - boxY = evt.getY(); - checkValid(); - - if(av.hasHiddenColumns) - { - int col = (int) ( boxX / scalew / av.getCharWidth()); - - if(!av.getColumnSelection().isVisible(col)) - { - return; - } - - ap.setScrollValues( - av.getColumnSelection().findColumnPosition( col ), - (int) (boxY / scaleh / av.getCharHeight())); - } - else - ap.setScrollValues( (int) (boxX / scalew / av.getCharWidth()), - (int) (boxY / scaleh / av.getCharHeight())); - repaint(); - } /** * DOCUMENT ME! @@ -237,9 +165,29 @@ public class OverviewPanel extends JPanel implements Runnable boxWidth = (int) ( (av.endRes - av.startRes + 1) * av.getCharWidth() * scalew); } - boxX = width - boxWidth; } + + int col = (int) (boxX / scalew / av.getCharWidth()); + int row = (int) (boxY / scaleh / av.getCharHeight()); + + if (av.hasHiddenColumns) + { + if (!av.getColumnSelection().isVisible(col)) + { + return; + } + + col = av.getColumnSelection().findColumnPosition(col); + } + + if( av.hasHiddenRows ) + { + row = av.alignment.getHiddenSequences().findIndexWithoutHiddenSeqs(row); + } + + ap.setScrollValues( col, row ); + } /** @@ -262,7 +210,6 @@ public class OverviewPanel extends JPanel implements Runnable } setPreferredSize(new Dimension(width, sequencesHeight + graphHeight)); - // setBoxPosition(); Thread thread = new Thread(this); thread.start(); @@ -282,10 +229,7 @@ public class OverviewPanel extends JPanel implements Runnable if (av.showSequenceFeatures) { - fr.featureGroups = ap.seqPanel.seqCanvas.getFeatureRenderer().featureGroups; - fr.featureColours = ap.seqPanel.seqCanvas.getFeatureRenderer().featureColours; - fr.transparency = ap.seqPanel.seqCanvas.getFeatureRenderer().transparency; - fr.sequenceFeatures = ap.seqPanel.seqCanvas.getFeatureRenderer().sequenceFeatures; + fr.transferSettings( ap.seqPanel.seqCanvas.getFeatureRenderer() ); } int alwidth = av.alignment.getWidth(); @@ -337,11 +281,9 @@ public class OverviewPanel extends JPanel implements Runnable seq = av.alignment.getHiddenSequences().getHiddenSequence(lastrow); if (seq == null) { - int index = av.alignment.getHiddenSequences().findIndexWithoutHiddenSeqs(lastrow); - seq = av.alignment.getSequenceAt(index); } else @@ -375,7 +317,7 @@ public class OverviewPanel extends JPanel implements Runnable seq, lastcol).getRGB(); if (av.showSequenceFeatures) - color = fr.findFeatureColour(color, lastrow, lastcol); + color = fr.findFeatureColour(color, seq, lastcol); } else { @@ -442,20 +384,37 @@ public class OverviewPanel extends JPanel implements Runnable endRes = av.getColumnSelection().adjustForHiddenColumns(endRes); } + int startSeq = av.startSeq; + int endSeq = av.endSeq; + + if (av.hasHiddenRows) + { + startSeq = + av.alignment.getHiddenSequences().adjustForHiddenSeqs(startSeq); + + endSeq = + av.alignment.getHiddenSequences().adjustForHiddenSeqs(endSeq); + + } + scalew = (float) width / (float) fullsizeWidth; scaleh = (float) sequencesHeight / (float) fullsizeHeight; boxX = (int) (startRes * av.getCharWidth() * scalew); - boxY = (int) (av.getStartSeq() * av.getCharHeight() * scaleh); + boxY = (int) (startSeq * av.getCharHeight() * scaleh); + + if(av.hasHiddenColumns) boxWidth = (int) ((endRes - startRes + 1) * av.getCharWidth() * scalew); else boxWidth = (int) ((endRes - startRes + 1) * av.getCharWidth() * scalew); - boxHeight = (int) (av.getEndSeq() * av.getCharHeight() * scaleh) - - boxY; + + boxHeight = (int) ((endSeq - startSeq) * av.getCharHeight() * scaleh); + + repaint(); }