]> source.dussan.org Git - vaadin-framework.git/commitdiff
#6860 Moved much of the read-only logic to AbstractProperty
authorHenri Sara <henri.sara@itmill.com>
Tue, 19 Apr 2011 11:59:35 +0000 (11:59 +0000)
committerHenri Sara <henri.sara@itmill.com>
Tue, 19 Apr 2011 11:59:35 +0000 (11:59 +0000)
svn changeset:18380/svn branch:6.6

src/com/vaadin/data/util/AbstractProperty.java
src/com/vaadin/data/util/ObjectProperty.java
src/com/vaadin/data/util/TextFileProperty.java

index 9db9013d70f2d58d89277be7cf332589fef8a2d5..2b3fcf2c93c39e3f35cc4b73765d0b1956908505 100644 (file)
@@ -26,6 +26,29 @@ public abstract class AbstractProperty implements Property,
      */
     private LinkedList<ValueChangeListener> valueChangeListeners = null;
 
+    /**
+     * Is the Property read-only?
+     */
+    private boolean readOnly;
+
+    /**
+     * {@inheritDoc}
+     * 
+     * Override for additional restrictions on what is considered a read-only
+     * property.
+     */
+    public boolean isReadOnly() {
+        return readOnly;
+    }
+
+    public void setReadOnly(boolean newStatus) {
+        boolean oldStatus = isReadOnly();
+        readOnly = newStatus;
+        if (oldStatus != isReadOnly()) {
+            fireReadOnlyStatusChange();
+        }
+    }
+
     /**
      * Returns the value of the <code>Property</code> in human readable textual
      * format. The return value should be assignable to the
index ee38bc07974fff20d510891ecbf6dbfa5b7f8dca..8286e3c6db54deebb1b98e24911cf44960e495bc 100644 (file)
@@ -21,11 +21,6 @@ import com.vaadin.data.Property;
 @SuppressWarnings("serial")
 public class ObjectProperty<T> extends AbstractProperty {
 
-    /**
-     * A boolean value storing the Property's read-only status information.
-     */
-    private boolean readOnly = false;
-
     /**
      * The value contained by the Property.
      */
@@ -112,32 +107,6 @@ public class ObjectProperty<T> extends AbstractProperty {
         return value;
     }
 
-    /**
-     * Tests if the Property is in read-only mode. In read-only mode calls to
-     * the method <code>setValue</code> will throw
-     * <code>ReadOnlyException</code>s and will not modify the value of the
-     * Property.
-     * 
-     * @return <code>true</code> if the Property is in read-only mode,
-     *         <code>false</code> if it's not
-     */
-    public boolean isReadOnly() {
-        return readOnly;
-    }
-
-    /**
-     * Sets the Property's read-only mode to the specified status.
-     * 
-     * @param newStatus
-     *            the new read-only status of the Property.
-     */
-    public void setReadOnly(boolean newStatus) {
-        if (newStatus != readOnly) {
-            readOnly = newStatus;
-            fireReadOnlyStatusChange();
-        }
-    }
-
     /**
      * Sets the value of the property. This method supports setting from
      * <code>String</code> if either <code>String</code> is directly assignable
index 5915ddd664d57ea4e47f9dfe18c30f42bfa151ca..dba5aa49f01651f5aa19f5fbaa55b0cdfee59917 100644 (file)
@@ -29,7 +29,6 @@ import java.nio.charset.Charset;
 public class TextFileProperty extends AbstractProperty {\r
 \r
     private File file;\r
-    private boolean readonly;\r
     private Charset charset = null;\r
 \r
     /**\r
@@ -105,21 +104,9 @@ public class TextFileProperty extends AbstractProperty {
      * \r
      * @see com.vaadin.data.Property#isReadOnly()\r
      */\r
+    @Override\r
     public boolean isReadOnly() {\r
-        return file == null || readonly || !file.canWrite();\r
-    }\r
-\r
-    /*\r
-     * (non-Javadoc)\r
-     * \r
-     * @see com.vaadin.data.Property#setReadOnly(boolean)\r
-     */\r
-    public void setReadOnly(boolean newStatus) {\r
-        boolean oldStatus = isReadOnly();\r
-        readonly = newStatus;\r
-        if (isReadOnly() != oldStatus) {\r
-            fireReadOnlyStatusChange();\r
-        }\r
+        return file == null || super.isReadOnly() || !file.canWrite();\r
     }\r
 \r
     /*\r