diff --git a/src/main/java/com/threerings/admin/client/AsStringFieldEditor.java b/src/main/java/com/threerings/admin/client/AsStringFieldEditor.java index 4a720302a..02746b500 100644 --- a/src/main/java/com/threerings/admin/client/AsStringFieldEditor.java +++ b/src/main/java/com/threerings/admin/client/AsStringFieldEditor.java @@ -22,7 +22,6 @@ package com.threerings.admin.client; import java.lang.reflect.Field; - import javax.swing.JTextField; import com.samskivert.util.StringUtil; @@ -110,5 +109,11 @@ public class AsStringFieldEditor extends FieldEditor _value.setText(StringUtil.toString(value, "", "")); } + @Override + protected boolean valueMatches (Object dvalue) + { + return StringUtil.toString(dvalue).equals(StringUtil.toString(getValue())); + } + protected JTextField _value; } diff --git a/src/main/java/com/threerings/admin/client/FieldEditor.java b/src/main/java/com/threerings/admin/client/FieldEditor.java index ea4eaf372..5a0aa3733 100644 --- a/src/main/java/com/threerings/admin/client/FieldEditor.java +++ b/src/main/java/com/threerings/admin/client/FieldEditor.java @@ -22,7 +22,6 @@ package com.threerings.admin.client; import java.lang.reflect.Field; - import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -128,7 +127,7 @@ public abstract class FieldEditor extends JPanel } // submit an attribute changed event with the new value - if (!Objects.equal(value, getValue())) { + if (!valueMatches(value)) { _accessor.set(_field, value); } } @@ -151,7 +150,13 @@ public abstract class FieldEditor extends JPanel log.warning("Failed to parse display value " + e + "."); displayValue(getValue()); } - updateBorder(!Objects.equal(dvalue, getValue())); + + updateBorder(!valueMatches(dvalue)); + } + + protected boolean valueMatches (Object dvalue) + { + return Objects.equal(dvalue, getValue()); } /**