import java.beans.PropertyDescriptor;\r
import java.beans.PropertyEditorManager;\r
import java.beans.PropertyEditorSupport;\r
+import java.text.DecimalFormat;\r
+import java.text.NumberFormat;\r
import java.util.Vector;\r
\r
+import javax.measure.unit.SI;\r
import javax.measure.unit.Unit;\r
import javax.swing.JFrame;\r
+import javax.swing.JLabel;\r
+import javax.swing.JTable;\r
import javax.swing.JTextField;\r
import javax.swing.WindowConstants;\r
+import javax.swing.table.TableCellRenderer;\r
+import javax.swing.text.TableView.TableCell;\r
\r
import org.apache.log4j.Logger;\r
import org.jscience.physics.amount.Amount;\r
\r
+import com.billkuker.rocketry.motorsim.CylindricalChamber;\r
import com.l2fprod.common.propertysheet.PropertySheetPanel;\r
\r
public class Editor extends PropertySheetPanel {\r
private static final long serialVersionUID = 1L;\r
-\r
- private static Logger log = Logger.getLogger(Editor.class);\r
+ private static final NumberFormat nf = new DecimalFormat("##########.###");\r
+ private static final Logger log = Logger.getLogger(Editor.class);\r
\r
private Object obj;\r
\r
\r
PropertyEditorManager.registerEditor(Amount.class,\r
AmountPropertyEditor.class);\r
+ \r
+ getRendererRegistry().registerRenderer(Amount.class, AmountRenderer.class);\r
\r
// Build the list of properties we want it to edit\r
//final PropertySheetPanel ps = new PropertySheetPanel();\r
f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);\r
f.setVisible(true);\r
}\r
+ \r
+ public static void main(String args[]){\r
+ CylindricalChamber o = new CylindricalChamber();\r
+ o.setLength(Amount.valueOf(100.5, SI.MILLIMETER));\r
+ o.setID(Amount.valueOf(30, SI.MILLIMETER));\r
+ Editor e = new Editor(o);\r
+ e.showAsWindow();\r
+ }\r
+ \r
+ public static class AmountRenderer implements TableCellRenderer {\r
+ @Override\r
+ public Component getTableCellRendererComponent(JTable table,\r
+ Object value, boolean isSelected, boolean hasFocus, int row,\r
+ int column) {\r
+ Amount a = (Amount)value;\r
+ return new JLabel(nf.format(a.doubleValue(a.getUnit())) + " " + a.getUnit() );\r
+ }\r
+ \r
+ }\r
\r
public static class AmountPropertyEditor extends PropertyEditorSupport {\r
JTextField editor = new JTextField();\r
if (a.isExact())\r
text = a.getExactValue() + " " + a.getUnit();\r
else\r
- text = a.doubleValue(a.getUnit()) + " " + a.getUnit();\r
+ text = nf.format(a.doubleValue(a.getUnit())) + " " + a.getUnit();\r
\r
setAsText(text);\r
}\r
\r
@Override\r
public void setAsText(String text) throws IllegalArgumentException {\r
+ System.out.println("Setting text " + text);\r
editor.setText(text);\r
};\r
\r