/*
*
* Copyright 2008,2009 Newcastle University
*
* This file is part of Workcraft.
*
* Workcraft 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, either version 3 of the License, or
* (at your option) any later version.
*
* Workcraft is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Workcraft.  If not, see <http://www.gnu.org/licenses/>.
*
*/

package org.workcraft.gui.propertyeditor;

import java.util.IllegalFormatException;

import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;

public class DoubleProperty implements PropertyClass {

	public TableCellEditor getCellEditor() {
		GenericCellEditor dce = new GenericCellEditor();
		return dce;
	}

	public TableCellRenderer getCellRenderer() {
		return new DefaultCellRenderer();
	}

	public Object fromCellEditorValue(Object editorComponentValue) {
		try {
			return Double.parseDouble((String)editorComponentValue);
		} catch (NumberFormatException e) {
			return 0.0;
		}
	}

	public Object toCellRendererValue(Object value) {
		String result = "";
		if (value != null) {
			try {
				result = String.format("%.2f", value);
			} catch (IllegalFormatException e) {
				result = "#getter did not return a double";
			}
		}
		return result;
	}
}

@@ -1131,24 +1131,26 @@
 erer();%0A%09%7D%0A%0A
+//
 %09public Obje
@@ -1203,24 +1203,26 @@
 alue) %7B%0A
+//
 %09%09try %7B%0A
 %09%09%09retur
@@ -1217,65 +1217,467 @@
 y %7B%0A
+//
 %09%09%09
-return Double.parseDouble((String)editorComponentValue
+String s = (String)editorComponentValue;%0A//%09%09%09Locale locale = Locale.getDefault();%0A//%09%09%09NumberFormat numberFormat = NumberFormat.getInstance(locale);%0A//%09%09%09Number parse = numberFormat.parse(s);%0A//%09%09%09return parse.doubleValue();%0A//%09%09%7D catch (ParseException e) %7B%0A//%09%09%09return 0.0;%0A//%09%09%7D%0A//%09%7D%0A%0A%09public Object fromCellEditorValue(Object editorComponentValue) %7B%0A%09%09try %7B%0A%09%09%09String s = (String)editorComponentValue;%0A%09%09%09return Double.parseDouble(s.replace(%22,%22, %22.%22)
 );%0A%09

Support for comma as a decimal separator is the property editor.