*/
package jalview.appletgui;
+import jalview.datamodel.SequenceI;
import jalview.viewmodel.OverviewDimensions;
import java.awt.Color;
private Frame nullFrame;
- public OverviewPanel(AlignmentPanel ap)
+ public OverviewPanel(AlignmentPanel alPanel)
{
- this.av = ap.av;
- this.ap = ap;
+ this.av = alPanel.av;
+ this.ap = alPanel;
setLayout(null);
nullFrame = new Frame();
nullFrame.addNotify();
sr.forOverview = true;
fr = new FeatureRenderer(av);
- od = new OverviewDimensions(av);
+ od = new OverviewDimensions(av.getPosProps(), av.isShowAnnotation());
setSize(new Dimension(od.getWidth(), od.getHeight()));
addComponentListener(new ComponentAdapter()
@Override
public void mousePressed(MouseEvent evt)
{
- od.setBoxPositionByMouse(evt.getX(), evt.getY());
- ap.setScrollValues(od.getScrollCol(), od.getScrollRow());
- ap.paintAlignment(false);
+ mouseAction(evt);
}
@Override
public void mouseReleased(MouseEvent evt)
{
- od.setBoxPositionByMouse(evt.getX(), evt.getY());
- ap.setScrollValues(od.getScrollCol(), od.getScrollRow());
- ap.paintAlignment(false);
+ mouseAction(evt);
}
@Override
public void mouseDragged(MouseEvent evt)
{
- od.setBoxPositionByMouse(evt.getX(), evt.getY());
+ mouseAction(evt);
+ }
+
+ private void mouseAction(MouseEvent evt)
+ {
+ od.updateViewportFromMouse(evt.getX(), evt.getY(), av.getAlignment()
+ .getHiddenSequences(), av.getColumnSelection(), av
+ .getPosProps());
ap.setScrollValues(od.getScrollCol(), od.getScrollRow());
ap.paintAlignment(false);
}
/**
- * DOCUMENT ME!
+ * Updates the overview image when the related alignment panel is updated
*/
public void updateOverviewImage()
{
if ((getWidth() > 0) && (getHeight() > 0))
{
- od.setWidth(getWidth()); // width = getWidth();
- od.setHeight(getHeight()); // sequencesHeight = getHeight() - graphHeight;
+ od.setWidth(getWidth());
+ od.setHeight(getHeight());
}
setSize(new Dimension(od.getWidth(), od.getHeight()));
Graphics mg = miniMe.getGraphics();
- od.updateScales();
-
int alwidth = av.getAlignment().getWidth();
- int alheight = av.getAlignment().getHeight()
- + av.getAlignment().getHiddenSequences().getSize();
+ int alheight = av.getAlignment().getAbsoluteHeight();
float sampleCol = alwidth / (float) od.getWidth();
float sampleRow = alheight / (float) od.getSequencesHeight();
buildImage(sampleRow, sampleCol, mg);
- if (av.getAlignmentConservationAnnotation() != null)
+ if (av.isShowAnnotation())
{
for (int col = 0; col < od.getWidth() && !resizeAgain; col++)
{
}
}
+ /*
+ * Build the overview panel image
+ */
private void buildImage(float sampleRow, float sampleCol, Graphics mg)
{
int lastcol = 0;
int sameRow = 0;
int sameCol = 0;
- jalview.datamodel.SequenceI seq = null;
- final boolean hasHiddenRows = av.hasHiddenRows();
+ SequenceI seq = null;
+
final boolean hasHiddenCols = av.hasHiddenColumns();
boolean hiddenRow = false;
}
else
{
- // this should largely be a method in Alignment
- hiddenRow = false;
- if (hasHiddenRows)
- {
- // look for sequence in hidden rows
- seq = av.getAlignment().getHiddenSequences()
- .getHiddenSequence(lastrow);
- if (seq == null)
- {
- // didn't find in hidden rows, adjust the index and retrieve from
- // full row set
- int index = av.getAlignment().getHiddenSequences()
- .findIndexWithoutHiddenSeqs(lastrow);
-
- seq = av.getAlignment().getSequenceAt(index);
- }
- else
- {
- // found in hidden rows, ergo this row is hidden
- hiddenRow = true;
- }
- }
- else
- {
- seq = av.getAlignment().getSequenceAt(lastrow);
- }
- // end of Alignment method
+ // get the sequence which would be at alignment index 'lastrow' if no
+ // columns were hidden, and determine whether it is hidden or not
+ hiddenRow = av.getAlignment().isHidden(lastrow);
+ seq = av.getAlignment().getSequenceAtAbsoluteIndex(lastrow);
for (int col = 0; col < od.getWidth(); col++)
{
sameRow = 1;
}
}
-
}
/*
}
else
{
- color = Color.white; // White
+ color = Color.white;
}
if (hiddenRow
*/
public void setBoxPosition()
{
- od.setBoxPosition();
+ od.setBoxPosition(av.getAlignment()
+ .getHiddenSequences(), av.getColumnSelection(), av.getPosProps());
repaint();
}