package org.geogebra.desktop.export.pstricks;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JComboBox;
import org.geogebra.common.export.pstricks.GeoGebraToAsymptote;
import org.geogebra.common.util.FileExtensions;
/**
* @author Andy Zhu
*/
public class AsymptoteFrame extends ExportFrame {
private static final long serialVersionUID = 1L;
protected JComboBox comboFontSizeMore;
final String[] format = { "LaTeX (article class)", "LaTeX (beamer class)" },
fontsizelist = { "7", "8", "9", "10", "11", "12" };
/**
* Initializes GUI.
*
* @param ggb2asy
*/
public AsymptoteFrame(final GeoGebraToAsymptote ggb2asy) {
super(ggb2asy,
ggb2asy.getApp().getLocalization().getMenu("GenerateCode"));
fileExtension = FileExtensions.ASYMTOTE;
fileExtensionMsg = "Asymptote ";
initGui();
}
/**
* Opens GUI frame.
*
*/
protected void initGui() {
comboFormat = new JComboBox(format); // prevent break with extended
// class
comboFontSizeMore = new JComboBox(fontsizelist);
comboFontSizeMore
.setSelectedIndex(10 - Integer.parseInt(fontsizelist[0]));
setTitle(loc.getMenu("GeogebraToAsymptoteExport"));
js.getViewport().add(textarea);
panel.setLayout(new GridBagLayout());
panel.add(labelXUnit,
new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(textXUnit, new GridBagConstraints(1, 0, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(labelwidth,
new GridBagConstraints(2, 0, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(textwidth, new GridBagConstraints(3, 0, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(labelYUnit,
new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(textYUnit, new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(labelheight,
new GridBagConstraints(2, 1, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(textheight, new GridBagConstraints(3, 1, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(labelXmin,
new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(textXmin, new GridBagConstraints(1, 2, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(labelXmax,
new GridBagConstraints(2, 2, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(textXmax, new GridBagConstraints(3, 2, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(labelYmin,
new GridBagConstraints(0, 3, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(textYmin, new GridBagConstraints(1, 3, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(labelYmax,
new GridBagConstraints(2, 3, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(textYmax, new GridBagConstraints(3, 3, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(labelFontSize,
new GridBagConstraints(0, 4, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(comboFontSizeMore,
new GridBagConstraints(1, 4, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(labelFill,
new GridBagConstraints(2, 4, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(comboFill,
new GridBagConstraints(3, 4, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.NONE,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(jcbAsyCompact, new GridBagConstraints(0, 5, 2, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(jcbAsyCse5, new GridBagConstraints(2, 5, 2, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(jcbShowAxes, new GridBagConstraints(2, 6, 2, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(jcbGrayscale, new GridBagConstraints(0, 6, 2, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(jcbDotColors, new GridBagConstraints(0, 7, 2, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(jcbPairName, new GridBagConstraints(2, 7, 2, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(button, new GridBagConstraints(0, 8, 2, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(buttonSave, new GridBagConstraints(2, 8, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(button_copy, new GridBagConstraints(3, 8, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(5, 5, 5, 5), 0, 0));
panel.add(js,
new GridBagConstraints(0, 9, 4, 5, 1.0, 20.0,
GridBagConstraints.CENTER, GridBagConstraints.BOTH,
new Insets(5, 5, 5, 5), 0, 0));
textXUnit.setPreferredSize(
new Dimension(110, textXUnit.getFont().getSize() + 6));
textYUnit.setPreferredSize(
new Dimension(110, textYUnit.getFont().getSize() + 6));
js.setPreferredSize(new Dimension(400, 400));
getContentPane().add(panel);
centerOnScreen();
setVisible(true);
}
// end changes.
@Override
protected boolean isBeamer() {
// if (comboFormat.getSelectedIndex()==1) return true;
return false;
}
@Override
protected boolean isLaTeX() {
return true;
}
@Override
protected boolean isPlainTeX() {
return false;
}
@Override
protected boolean isConTeXt() {
return false;
}
@Override
public int getFontSize() {
// overwrite to start at a minimum font of 7
return comboFontSizeMore.getSelectedIndex()
+ Integer.parseInt(fontsizelist[0]);
}
}