Author: michiel
Date: 2009-11-18 22:44:32 +0100 (Wed, 18 Nov 2009)
New Revision: 39795

Modified:
   mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockField.java
   mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockNode.java
   mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockNodeManager.java
Log:


Modified: mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockField.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockField.java       
2009-11-18 21:43:52 UTC (rev 39794)
+++ mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockField.java       
2009-11-18 21:44:32 UTC (rev 39795)
@@ -65,6 +65,14 @@
     public int getStoragePosition() {
         return storagePosition;
     }
+    @Override
+    public boolean isReadOnly() {
+        if (field == null) {
+            return storagePosition < 0;
+        } else {
+            return super.isReadOnly();
+        }
+    }
 
 
 

Modified: mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockNode.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockNode.java        
2009-11-18 21:43:52 UTC (rev 39794)
+++ mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockNode.java        
2009-11-18 21:44:32 UTC (rev 39795)
@@ -69,6 +69,16 @@
     }
 
     @Override
+    public StringList getPossibleContexts() {
+        StringList sl = cloudContext.createStringList();
+        sl.add(context);
+        if (!sl.contains("default")) {
+            sl.add("default");
+        }
+        return sl;
+    }
+
+    @Override
     public String toString() {
         return getNodeManager().toString() + values;
     }

Modified: 
mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockNodeManager.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockNodeManager.java 
2009-11-18 21:43:52 UTC (rev 39794)
+++ mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockNodeManager.java 
2009-11-18 21:44:32 UTC (rev 39795)
@@ -12,6 +12,7 @@
 
 import static org.mmbase.datatypes.Constants.*;
 import org.mmbase.bridge.util.*;
+import org.mmbase.datatypes.DataType;
 import java.util.*;
 import org.mmbase.bridge.*;
 import org.mmbase.util.functions.*;
@@ -32,6 +33,7 @@
     protected final MockCloud vcloud;
     protected final int oType;
     protected final List<Function<?>> functions = new ArrayList<Function<?>>();
+    protected String context = "default";
 
     public MockNodeManager(MockCloud cloud, NodeManagerDescription desc) {
         super(cloud);
@@ -40,8 +42,8 @@
         for (Map.Entry<String, Field> entry : desc.fields.entrySet()) {
             map.put(entry.getKey(), new MockField(this, entry.getValue()));
         }
-        map.put("_number", new DataTypeField("_number", this, 
DATATYPE_INTEGER));
-        map.put("_exists", new DataTypeField("_exists", this, 
DATATYPE_STRING));
+        map.put("_number", new SystemField("_number", this, DATATYPE_INTEGER));
+        map.put("_exists", new SystemField("_exists", this, DATATYPE_STRING));
         this.oType = desc.oType;
         String e = desc.reader != null ? desc.reader.getExtends() : null;
         if (e != null && e.length() == 0) e = null;
@@ -61,7 +63,9 @@
                     return 0;
                 }
             });
-        functions.add(new NodeFunction<String>("gui", GuiFunction.PARAMETERS, 
ReturnType.STRING) {
+        functions.add(new NodeFunction<String>("gui",
+                                               GuiFunction.PARAMETERS, // 
TODO, that would introduce MMObjectNode dependency
+                                               ReturnType.STRING) {
                 @Override
                 public String getFunctionValue(Node n, Parameters params) {
                     return n.getStringValue("number");
@@ -111,12 +115,31 @@
 
     @Override
     public String getContext() {
-        return "default";
+        return context;
     }
     @Override
+    public void setContext(String c) {
+        context = c;
+    }
+
+    @Override
     public boolean mayCreateNode() {
         return true;
     }
 
+    protected class SystemField extends DataTypeField {
+        public SystemField(String name, NodeManager nm, DataType dt) {
+            super(name, nm, dt);
+        }
+        @Override
+        public boolean isReadOnly() {
+            return true;
+        }
+        @Override
+        public int getEditPosition() {
+            return -1;
+        }
+    }
 
+
 }

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to