/*
GeoGebra - Dynamic Mathematics for Everyone
http://www.geogebra.org
This file is part of GeoGebra.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation.
*/
package org.geogebra.desktop.gui;
import java.awt.Dimension;
import javax.swing.JComboBox;
import org.geogebra.common.factories.FormatFactory;
import org.geogebra.common.kernel.Kernel;
import org.geogebra.common.kernel.StringTemplate;
import org.geogebra.common.util.NumberFormatAdapter;
import org.geogebra.common.util.lang.Unicode;
import org.geogebra.desktop.main.AppD;
public class NumberComboBox extends JComboBox {
private static final long serialVersionUID = 1L;
private static final int MAX_FRAC_DIGITS = 5;
private NumberFormatAdapter nf;
private Kernel kernel;
public NumberComboBox(final AppD app) {
kernel = app.getKernel();
addItem("1"); // pi
addItem(Unicode.PI_STRING); // pi
addItem(Unicode.PI_STRING + "/2"); // pi/2
setEditable(true);
setSelectedItem(null);
nf = FormatFactory.getPrototype().getNumberFormat(MAX_FRAC_DIGITS);
// nf.setGroupingUsed(false);
// nf.setMaximumFractionDigits(MAX_FRAC_DIGITS);
final Dimension dim = getPreferredSize();
dim.width = app.getPlainFont().getSize() * (MAX_FRAC_DIGITS + 3);
setPreferredSize(dim);
}
public void setValue(final double val) {
setSelectedItem(
kernel.formatPiE(val, nf, StringTemplate.defaultTemplate));
}
public String getValue() {
final Object ob = getSelectedItem();
if (ob == null) {
return "";
}
return ob.toString().trim();
}
}