Index: lams_tool_mindmap/.classpath
===================================================================
diff -u -r9e2dc03fe28e3c80540446ea36654baeb862a888 -rbab196560d074209c0fedcb1342387ded6e966ad
--- lams_tool_mindmap/.classpath (.../.classpath) (revision 9e2dc03fe28e3c80540446ea36654baeb862a888)
+++ lams_tool_mindmap/.classpath (.../.classpath) (revision bab196560d074209c0fedcb1342387ded6e966ad)
@@ -14,8 +14,10 @@
-
+
+
+
-
+
Index: lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/service/MindmapService.java
===================================================================
diff -u -r40eb54374e84591563d8b6a679ac719dbc85c8f7 -rbab196560d074209c0fedcb1342387ded6e966ad
--- lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/service/MindmapService.java (.../MindmapService.java) (revision 40eb54374e84591563d8b6a679ac719dbc85c8f7)
+++ lams_tool_mindmap/src/java/org/lamsfoundation/lams/tool/mindmap/service/MindmapService.java (.../MindmapService.java) (revision bab196560d074209c0fedcb1342387ded6e966ad)
@@ -34,13 +34,17 @@
import java.util.SortedMap;
import org.apache.log4j.Logger;
+import org.apache.tomcat.util.json.JSONException;
+import org.apache.tomcat.util.json.JSONObject;
import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler;
import org.lamsfoundation.lams.learning.service.ILearnerService;
import org.lamsfoundation.lams.learningdesign.service.ExportToolContentException;
import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService;
import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException;
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
import org.lamsfoundation.lams.notebook.service.ICoreNotebookService;
+import org.lamsfoundation.lams.rest.RestTags;
+import org.lamsfoundation.lams.rest.ToolRestManager;
import org.lamsfoundation.lams.tool.ToolContentImport102Manager;
import org.lamsfoundation.lams.tool.ToolContentManager;
import org.lamsfoundation.lams.tool.ToolOutput;
@@ -66,6 +70,7 @@
import org.lamsfoundation.lams.tool.mindmap.util.xmlmodel.NodeModel;
import org.lamsfoundation.lams.tool.service.ILamsToolService;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
+import org.lamsfoundation.lams.util.JsonUtil;
import org.lamsfoundation.lams.util.MessageService;
import org.lamsfoundation.lams.util.WebUtil;
import org.lamsfoundation.lams.util.audit.IAuditService;
@@ -77,7 +82,7 @@
* ToolContentManager and ToolSessionManager.
*/
public class MindmapService implements ToolSessionManager, ToolContentManager, IMindmapService,
- ToolContentImport102Manager {
+ ToolContentImport102Manager, ToolRestManager {
static Logger logger = Logger.getLogger(MindmapService.class.getName());
@@ -923,4 +928,45 @@
public Class[] getSupportedToolOutputDefinitionClasses(int definitionType) {
return getMindmapOutputFactory().getSupportedDefinitionClasses(definitionType);
}
+
+ // ****************** REST methods *************************
+
+ /** Used by the Rest calls to create content. Creates default nodes as seen when first opening authoring.
+ * Mandatory fields in toolContentJSON: title, instructions
+ * Optional fields: multiUserMode (default false), lockWhenFinished (default false), reflectOnActivity (default false), reflectInstructions
+ */
+ @Override
+ public void createRestToolContent(Integer userID, Long toolContentID, JSONObject toolContentJSON) throws JSONException {
+
+ Mindmap content = new Mindmap();
+ Date updateDate = new Date();
+ content.setToolContentId(toolContentID);
+ content.setCreateDate(updateDate);
+ content.setUpdateDate(updateDate);
+ content.setTitle(toolContentJSON.getString(RestTags.TITLE));
+ content.setInstructions(toolContentJSON.getString(RestTags.INSTRUCTIONS));
+ content.setContentInUse(false);
+ content.setDefineLater(false);
+ content.setReflectInstructions((String) JsonUtil.opt(toolContentJSON, RestTags.REFLECT_INSTRUCTIONS, null));
+ content.setReflectOnActivity(JsonUtil.opt(toolContentJSON, RestTags.REFLECT_ON_ACTIVITY, Boolean.FALSE));
+ content.setLockOnFinished(JsonUtil.opt(toolContentJSON, RestTags.LOCK_WHEN_FINISHED, Boolean.FALSE));
+ content.setMultiUserMode(JsonUtil.opt(toolContentJSON, "multiUserMode", Boolean.FALSE));
+
+ // createdBy and submissionDeadline are null in the database using the standard authoring module
+ // submissionDeadline is set in monitoring
+ // content.setSubmissionDeadline((Date) JsonUtil.opt(toolContentJSON, RestTags.SUBMISSION_DEADLINE, null));
+ // content.setCreatedBy(user);
+ // content.setMindmapExportContent(exportContent) only set by export, not by authoring
+ saveOrUpdateMindmap(content);
+
+ // creating default nodes for current mindmap
+ String rootNodeName = getMindmapMessageService().getMessage("node.root.defaultName");
+ String childNodeName1 = getMindmapMessageService().getMessage("node.child1.defaultName");
+ String childNodeName2 = getMindmapMessageService().getMessage("node.child2.defaultName");
+
+ MindmapNode rootMindmapNode = saveMindmapNode(null, null, 1l, rootNodeName, "ffffff", null, content, null);
+ saveOrUpdateMindmapNode(rootMindmapNode);
+ saveMindmapNode(null, rootMindmapNode, 2l, childNodeName1, "ffffff", null, content, null);
+ saveMindmapNode(null, rootMindmapNode, 3l, childNodeName2, "ffffff", null, content, null);
+ }
}