Font oldFont;
/*
+ * The font on opening the dialog (to be restored on Cancel)
+ * on the other half of a split frame (if applicable)
+ */
+ Font oldComplementFont;
+
+ /*
* the state of 'scale protein as cDNA' on opening the dialog
*/
boolean oldProteinScale;
private boolean lastSelMono = false;
+ private boolean oldSmoothFont;
+
+ private boolean oldComplementSmooth;
+
/**
* Creates a new FontChooser for a tree panel
*
oldFont = alignPanel.av.getFont();
oldProteinScale = alignPanel.av.isScaleProteinAsCdna();
oldMirrorFont = alignPanel.av.isProteinFontAsCdna();
-
+ oldSmoothFont = alignPanel.av.antiAlias;
this.ap = alignPanel;
init();
}
boolean inSplitFrame = ap.av.getCodingComplement() != null;
if (inSplitFrame)
{
+ oldComplementFont = ((AlignViewport) ap.av.getCodingComplement())
+ .getFont();
+ oldComplementSmooth = ((AlignViewport) ap.av.getCodingComplement()).antiAlias;
scaleAsCdna.setVisible(true);
scaleAsCdna.setSelected(ap.av.isScaleProteinAsCdna());
fontAsCdna.setVisible(true);
ap.av.antiAlias = smoothFont.isSelected();
ap.getAnnotationPanel().image = null;
ap.paintAlignment(true);
+ if (ap.av.getCodingComplement() != null && ap.av.isProteinFontAsCdna())
+ {
+ ((AlignViewport) ap.av.getCodingComplement()).antiAlias = ap.av.antiAlias;
+ SplitFrame sv = (SplitFrame) ap.alignFrame.getSplitViewContainer();
+ sv.adjustLayout();
+ sv.repaint();
+ }
+
}
/**
ap.av.setFont(oldFont, true);
ap.av.setScaleProteinAsCdna(oldProteinScale);
ap.av.setProteinFontAsCdna(oldMirrorFont);
+ ap.av.antiAlias = oldSmoothFont;
ap.paintAlignment(true);
if (scaleAsCdna.isVisible() && scaleAsCdna.isEnabled())
{
ap.av.getCodingComplement().setScaleProteinAsCdna(oldProteinScale);
ap.av.getCodingComplement().setProteinFontAsCdna(oldMirrorFont);
- ap.av.getCodingComplement().setFont(oldFont, true);
+ ((AlignViewport) ap.av.getCodingComplement()).antiAlias = oldComplementSmooth;
+ ap.av.getCodingComplement().setFont(oldComplementFont, true);
+ SplitFrame splitFrame = (SplitFrame) ap.alignFrame
+ .getSplitViewContainer();
+ splitFrame.adjustLayout();
+ splitFrame.repaint();
}
}
else if (tp != null)
*/
ap.av.getCodingComplement().setFont(newFont, true);
}
- if (fontAsCdna.isSelected() || scaleAsCdna.isSelected())
- {
- /*
- * adjust layout for font change and/or sizing
- */
- SplitFrame splitFrame = (SplitFrame) ap.alignFrame
- .getSplitViewContainer();
- splitFrame.repaint();
- }
+
+ /*
+ * adjust layout for font change / reset / sizing
+ */
+ SplitFrame splitFrame = (SplitFrame) ap.alignFrame
+ .getSplitViewContainer();
+ splitFrame.adjustLayout();
+ splitFrame.repaint();
}
}
/**
* Turn on/off mirroring of font across split frame. If turning on, also
- * copies the current font across the split frame. If turning off, does not
- * change fonts.
+ * copies the current font across the split frame. If turning off, restores
+ * the other half of the split frame to its initial font.
*/
@Override
protected void mirrorFonts_actionPerformed()
ap.av.setProteinFontAsCdna(selected);
ap.av.getCodingComplement().setProteinFontAsCdna(selected);
- if (selected)
+ /*
+ * reset other half of split frame if turning option off
+ */
+ if (!selected)
{
- changeFont();
+ ap.av.getCodingComplement().setFont(oldComplementFont, true);
}
+
+ changeFont();
}
}