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

Modified Files:
        Setting.java 
Log Message:
if no node yet, simply list all possible keys of all components


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.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- Setting.java        4 Jul 2008 16:34:34 -0000       1.8
+++ Setting.java        4 Jul 2008 16:41:48 -0000       1.9
@@ -11,8 +11,7 @@
 import org.mmbase.datatypes.*;
 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.util.*;
 import org.mmbase.bridge.*;
 import org.w3c.dom.Element;
 import java.util.*;
@@ -28,7 +27,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.8 2008/07/04 16:34:34 michiel Exp $
+ * @version $Id: Setting.java,v 1.9 2008/07/04 16:41:48 michiel Exp $
  * @since MMBase-1.9
  */
 public class Setting<C> {
@@ -108,10 +107,18 @@
 
         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));
+            final Iterator<Setting<?>> iterator;
+            if (node != null) {
+                iterator = 
ComponentRepository.getInstance().toMap().get(node.getStringValue(componentField)).getSettings().iterator();
+            } else {
+                ChainedIterator chain = new ChainedIterator<Setting<?>>();
+                for (Component comp : 
ComponentRepository.getInstance().toMap().values()) {
+                    chain.addIterator(comp.getSettings().iterator());
+                }
+                iterator = chain;
+            }
             return new Iterator<Map.Entry<String, String>> () {
-                Iterator<Setting<?>> iterator = 
component.getSettings().iterator();
+
                 public boolean hasNext() {
                     return iterator.hasNext();
                 }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to