Browse Source

Adding support for double in NumberTextField

Sam Jaffe 7 years ago
parent
commit
89170151d3

+ 1 - 1
pom.xml

@@ -4,7 +4,7 @@
 
   <groupId>org.leumasjaffe</groupId>
   <artifactId>graphics</artifactId>
-  <version>0.2</version>
+  <version>0.2.1</version>
   <packaging>jar</packaging>
 
   <name>graphics</name>

+ 18 - 4
src/main/lombok/org/leumasjaffe/graphics/NumberTextField.java

@@ -13,22 +13,36 @@ public class NumberTextField extends JFormattedTextField {
 	 */
 	private static final long serialVersionUID = 1L;
 
-	private static final NumberFormatter getNumberFormatInstance(int min, int max) {
+	private static final <T> NumberFormatter getNumberFormatInstance(Class<T> clazz,
+			Comparable<T> min, Comparable<T> max) {
 		NumberFormat format = NumberFormat.getInstance();
 	    NumberFormatter formatter = new NumberFormatter(format);
-	    formatter.setValueClass(Integer.class);
+	    formatter.setValueClass(clazz);
 	    formatter.setMinimum(min);
 	    formatter.setMaximum(max);
 	    formatter.setAllowsInvalid(true);
+	    formatter.setCommitsOnValidEdit(false);
 	    return formatter;
 	}
 
 	public NumberTextField() {
-		super(getNumberFormatInstance(0, Integer.MAX_VALUE));
+		super(getNumberFormatInstance(Integer.class, 0, Integer.MAX_VALUE));
+	}
+	
+	public NumberTextField(int min) {
+		super(getNumberFormatInstance(Integer.class, min, Integer.MAX_VALUE));
 	}
 	
 	public NumberTextField(int min, int max) {
-		super(getNumberFormatInstance(min, max));
+		super(getNumberFormatInstance(Integer.class, min, max));
+	}
+	
+	public NumberTextField(double min) {
+		super(getNumberFormatInstance(Double.class, min, Double.MAX_VALUE));
+	}
+	
+	public NumberTextField(double min, double max) {
+		super(getNumberFormatInstance(Double.class, min, max));
 	}
 	
 	@Override

+ 1 - 0
src/main/lombok/org/leumasjaffe/graphics/RowCollapsingPanel.java

@@ -14,6 +14,7 @@ import javax.swing.JPanel;
 import lombok.AccessLevel;
 import lombok.experimental.FieldDefaults;
 
+@SuppressWarnings("serial")
 @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
 public class RowCollapsingPanel extends JPanel {
 	static String DOWN = "\u25BC";