Update of /var/cvs/src/org/mmbase/framework
In directory james.mmbase.org:/tmp/cvs-serv18106

Modified Files:
        Setting.java 
Log Message:
implemented Setting, which can be used in systemproperties#key field


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/framework


Index: Setting.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/Setting.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- Setting.java        25 Apr 2008 14:31:39 -0000      1.7
+++ Setting.java        4 Jul 2008 16:34:34 -0000       1.8
@@ -12,7 +12,10 @@
 import org.mmbase.datatypes.util.xml.DataTypeReader;
 import org.mmbase.datatypes.util.xml.DependencyException;
 import org.mmbase.util.LocalizedString;
+import org.mmbase.util.Entry;
+import org.mmbase.bridge.*;
 import org.w3c.dom.Element;
+import java.util.*;
 
 import org.mmbase.util.logging.Logger;
 import org.mmbase.util.logging.Logging;
@@ -25,7 +28,7 @@
  * xml. There must be some way to persistify them. There should also be a 
editor in the admin pages.
  *
  * @author Michiel Meeuwissen
- * @version $Id: Setting.java,v 1.7 2008/04/25 14:31:39 andre Exp $
+ * @version $Id: Setting.java,v 1.8 2008/07/04 16:34:34 michiel Exp $
  * @since MMBase-1.9
  */
 public class Setting<C> {
@@ -36,7 +39,7 @@
     private final String name;
     private final LocalizedString description;
     private final Component parent;
-    private final DataType<C> dataType;
+    private final org.mmbase.datatypes.DataType<C> dataType;
 
 
     public Setting(Component component, Element element) {
@@ -70,7 +73,7 @@
     /**
      *
      */
-    public DataType<C> getDataType() {
+    public org.mmbase.datatypes.DataType<C> getDataType() {
         return dataType;
     }
 
@@ -90,4 +93,39 @@
         }
     }
 
+    public static class DataType extends org.mmbase.datatypes.StringDataType {
+
+        private static final long serialVersionUID = 1L; // increase this if 
object serialization changes (which we shouldn't do!)
+
+        private final String componentField  = "component";
+        /**
+         * Constructor for string data type.
+         * @param name the name of the data type
+         */
+        public DataType(String name) {
+            super(name);
+        }
+
+        public Iterator<Map.Entry<String, String>> getEnumerationValues(final 
Locale locale, final Cloud cloud, final Node node, final Field field) {
+
+            final Component component = 
ComponentRepository.getInstance().toMap().get(node == null ? 
field.getNodeManager().getField(componentField).getDataType().getDefaultValue()
+                                                                               
       : node.getStringValue(componentField));
+            return new Iterator<Map.Entry<String, String>> () {
+                Iterator<Setting<?>> iterator = 
component.getSettings().iterator();
+                public boolean hasNext() {
+                    return iterator.hasNext();
+                }
+                public Map.Entry<String, String> next() {
+                    String val = iterator.next().getName();
+                    return new Entry<String, String>(val, val);
+                }
+                public void remove() {
+                    throw new UnsupportedOperationException();
+                }
+            };
+        }
+
+    }
+
+
 }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to