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