*/
package jalview.gui;
-import jalview.bin.Cache;
-import jalview.jbgui.GFontChooser;
-import jalview.util.MessageManager;
-
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.geom.Rectangle2D;
import javax.swing.JInternalFrame;
import javax.swing.JLayeredPane;
+import jalview.bin.Cache;
+import jalview.jbgui.GFontChooser;
+import jalview.util.MessageManager;
+
/**
* DOCUMENT ME!
*
TreePanel tp;
+ CutAndPasteTransfer cap;
+
/*
* The font on opening the dialog (to be restored on Cancel)
*/
public FontChooser(TreePanel treePanel)
{
this.tp = treePanel;
- ap = treePanel.treeCanvas.ap;
+ ap = treePanel.getTreeCanvas().getAssociatedPanel();
oldFont = treePanel.getTreeFont();
defaultButton.setVisible(false);
smoothFont.setEnabled(false);
init();
}
+ /**
+ * Creates a new FontChooser for a CutAndPasteTransfer
+ *
+ * @param cap
+ */
+ public FontChooser(CutAndPasteTransfer cap)
+ {
+ oldFont = new Font("Monospaced", Font.PLAIN, 12);
+ this.cap = cap;
+ init();
+ }
+
void init()
{
frame = new JInternalFrame();
+ frame.setFrameIcon(null);
frame.setContentPane(this);
- smoothFont.setSelected(ap.av.antiAlias);
-
- /*
- * Enable 'scale protein as cDNA' in a SplitFrame view. The selection is
- * stored in the ViewStyle of both dna and protein Viewport. Also enable
- * checkbox for copy font changes to other half of split frame.
- */
- boolean inSplitFrame = ap.av.getCodingComplement() != null;
- if (inSplitFrame)
+ if (!isCapFont())
{
- oldComplementFont = ((AlignViewport) ap.av.getCodingComplement())
- .getFont();
- oldComplementSmooth = ((AlignViewport) ap.av
- .getCodingComplement()).antiAlias;
- scaleAsCdna.setVisible(true);
- scaleAsCdna.setSelected(ap.av.isScaleProteinAsCdna());
- fontAsCdna.setVisible(true);
- fontAsCdna.setSelected(ap.av.isProteinFontAsCdna());
+ smoothFont.setSelected(ap.av.antiAlias);
+
+ /*
+ * Enable 'scale protein as cDNA' in a SplitFrame view. The selection is
+ * stored in the ViewStyle of both dna and protein Viewport. Also enable
+ * checkbox for copy font changes to other half of split frame.
+ */
+ 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);
+ fontAsCdna.setSelected(ap.av.isProteinFontAsCdna());
+ }
}
- if (tp != null)
+ if (isTreeFont())
{
Desktop.addInternalFrame(frame,
MessageManager.getString("action.change_font_tree_panel"),
@Override
protected void cancel_actionPerformed()
{
- if (ap != null)
+ if (isTreeFont())
+ {
+ tp.setTreeFont(oldFont);
+ }
+ else if (ap != null)
{
ap.av.setFont(oldFont, true);
ap.av.setScaleProteinAsCdna(oldProteinScale);
ap.av.setProteinFontAsCdna(oldMirrorFont);
ap.av.antiAlias = oldSmoothFont;
- ap.paintAlignment(true, false);
+ ap.fontChanged();
if (scaleAsCdna.isVisible() && scaleAsCdna.isEnabled())
{
splitFrame.repaint();
}
}
- else if (tp != null)
- {
- tp.setTreeFont(oldFont);
- }
try
{
}
}
+ private boolean isTreeFont()
+ {
+ return tp != null;
+ }
+
+ private boolean isCapFont()
+ {
+ return cap != null;
+ }
+
/**
* DOCUMENT ME!
*/
}
return;
}
- if (tp != null)
+ if (isTreeFont())
{
tp.setTreeFont(newFont);
}
splitFrame.repaint();
}
}
+ else if (isCapFont())
+ {
+ cap.setFont(newFont);
+ }
monospaced.setSelected(mw == iw);