import jalview.analysis.AnnotationSorter;
import jalview.api.AlignViewportI;
import jalview.api.AlignmentViewPanel;
-import jalview.api.SequenceRenderer;
import jalview.bin.Cache;
import jalview.bin.Jalview;
import jalview.datamodel.AlignmentI;
import java.awt.event.AdjustmentListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
-import java.awt.image.BufferedImage;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import javax.swing.SwingUtilities;
/**
- * The main panel of an AlignFrame, containing holders for the IdPanel,
- * SeqPanel, AnnotationLabels (a JPanel), and AnnotationPanel.
- *
- * Additional holders contain an IdPanelWidthAdjuster space above the idPanel,
- * AnnotationScroller (JScrollPane for AnnotationPanel), and vertical and
- * horizontal scrollbars.
- *
- *
+ * DOCUMENT ME!
*
* @author $author$
* @version $Revision: 1.161 $
*/
public AlignmentPanel(AlignFrame af, final AlignViewport av)
{
- setBackground(Color.white); // BH 2019
- setOpaque(true);
+// setBackground(Color.white); // BH 2019
alignFrame = af;
this.av = av;
setSeqPanel(new SeqPanel(av, this));
annotationScroller.setViewportView(getAnnotationPanel());
annotationSpaceFillerHolder.add(getAlabels(), BorderLayout.CENTER);
- if (!av.isShowAnnotation())
- {
- annotationScroller.setVisible(false);
- annotationSpaceFillerHolder.setVisible(false);
- }
+
scalePanelHolder.add(getScalePanel(), BorderLayout.CENTER);
seqPanelHolder.add(getSeqPanel(), BorderLayout.CENTER);
*/
public void updateLayout()
{
- fontChanged(); // fires repaint
+ fontChanged();
setAnnotationVisible(av.isShowAnnotation());
boolean wrap = av.getWrapAlignment();
ViewportRanges ranges = av.getRanges();
if (overviewPanel != null)
{
- getAlignment().resetColors();
overviewPanel.updateOverviewImage();
}
}
@Override
public void paintComponent(Graphics g)
{
-
invalidate(); // needed so that the id width adjuster works correctly
Dimension d = getIdPanel().getIdCanvas().getPreferredSize();
public int getVisibleIdWidth(boolean onscreen)
{
// see if rendering offscreen - check preferences and calc width accordingly
- if (!onscreen && Cache.getDefault(Preferences.FIGURE_AUTOIDWIDTH, false))
+ if (!onscreen && Cache.getDefault("FIGURE_AUTOIDWIDTH", false))
{
return calculateIdWidth(-1).width + 4;
}
Integer idwidth = null;
if (onscreen || (idwidth = Cache
- .getIntegerProperty(Preferences.FIGURE_FIXEDIDWIDTH)) == null)
+ .getIntegerProperty("FIGURE_FIXEDIDWIDTH")) == null)
{
int w = getIdPanel().getWidth();
return (w > 0 ? w : calculateIdWidth().width + 4);
{
int seqPanelWidth = getSeqPanel().seqCanvas.getWidth();
- if (Jalview.isHeadlessMode())
+ if (System.getProperty("java.awt.headless") != null
+ && System.getProperty("java.awt.headless").equals("true"))
{
seqPanelWidth = alignFrame.getWidth() - getVisibleIdWidth()
- vscroll.getPreferredSize().width
return calculationDialog;
}
- @Override
- public SequenceRenderer getSequenceRenderer()
- {
- return seqPanel.seqCanvas.getSequenceRenderer();
- }
-
- public boolean scrollTo(int ostart, int end, int seqIndex,
- boolean scrollToNearest, boolean redrawOverview)
- {
- int startv, endv, starts, ends;// , width;
-
- int start = -1;
- if (av.hasHiddenColumns())
- {
- AlignmentI al = av.getAlignment();
- start = al.getHiddenColumns().absoluteToVisibleColumn(ostart);
- end = al.getHiddenColumns().absoluteToVisibleColumn(end);
- if (start == end)
- {
- if (!scrollToNearest && !al.getHiddenColumns().isVisible(ostart))
- {
- // don't scroll - position isn't visible
- return false;
- }
- }
- }
- else
- {
- start = ostart;
- }
-
- ViewportRanges ranges = av.getRanges();
- if (!av.getWrapAlignment())
- {
- /*
- * int spos=av.getStartRes(),sqpos=av.getStartSeq(); if ((startv =
- * av.getStartRes()) >= start) { spos=start-1; // seqIn //
- * setScrollValues(start - 1, seqIndex); } else if ((endv =
- * av.getEndRes()) <= end) { // setScrollValues(spos=startv + 1 + end -
- * endv, seqIndex); spos=startv + 1 + end - endv; } else if ((starts =
- * av.getStartSeq()) > seqIndex) { setScrollValues(av.getStartRes(),
- * seqIndex); } else if ((ends = av.getEndSeq()) <= seqIndex) {
- * setScrollValues(av.getStartRes(), starts + seqIndex - ends + 1); }
- */
-
- // below is scrolling logic up to Jalview 2.8.2
- // if ((av.getStartRes() > end)
- // || (av.getEndRes() < start)
- // || ((av.getStartSeq() > seqIndex) || (av.getEndSeq() < seqIndex)))
- // {
- // if (start > av.getAlignment().getWidth() - hextent)
- // {
- // start = av.getAlignment().getWidth() - hextent;
- // if (start < 0)
- // {
- // start = 0;
- // }
- //
- // }
- // if (seqIndex > av.getAlignment().getHeight() - vextent)
- // {
- // seqIndex = av.getAlignment().getHeight() - vextent;
- // if (seqIndex < 0)
- // {
- // seqIndex = 0;
- // }
- // }
- // setScrollValues(start, seqIndex);
- // }
- // logic copied from jalview.gui.AlignmentPanel:
- if ((startv = ranges.getStartRes()) >= start)
- {
- /*
- * Scroll left to make start of search results visible
- */
- setScrollValues(start - 1, seqIndex);
- }
- else if ((endv = ranges.getEndRes()) <= end)
- {
- /*
- * Scroll right to make end of search results visible
- */
- setScrollValues(startv + 1 + end - endv, seqIndex);
- }
- else if ((starts = ranges.getStartSeq()) > seqIndex)
- {
- /*
- * Scroll up to make start of search results visible
- */
- setScrollValues(ranges.getStartRes(), seqIndex);
- }
- else if ((ends = ranges.getEndSeq()) <= seqIndex)
- {
- /*
- * Scroll down to make end of search results visible
- */
- setScrollValues(ranges.getStartRes(), starts + seqIndex - ends + 1);
- }
- /*
- * Else results are already visible - no need to scroll
- */
- }
- else
- {
- ranges.scrollToWrappedVisible(start);
- }
-
- paintAlignment(redrawOverview, false);
- return true;
- }
-
- @Override
- public void overviewDone(BufferedImage miniMe)
- {
- overviewPanel.canvas.finalizeDraw(miniMe);
- }
-
-
- private boolean holdRepaint = false;
-
- public boolean getHoldRepaint()
- {
- return holdRepaint;
- }
-
- public void setHoldRepaint(boolean b)
- {
- if (holdRepaint == b)
- {
- return;
- }
- holdRepaint = b;
- if (!b)
- {
- repaint();
- }
- }
-
- @Override
- public void repaint()
- {
- if (holdRepaint)
- {
- // System.out.println("AP repaint holding");
- // Platform.stackTrace();
- return;
- }
- super.repaint();
- }
-
}