add bin config from spaces.
authorymh <ymh.work@gmail.com>
Thu, 14 Mar 2013 00:29:09 +0100
changeset 77 4f2511a70880
parent 76 523f0647513e
child 78 af9e716b01bc
add bin config from spaces. Add size to nodes.
server/src/main/java/org/iri_research/renkan/controller/RenkanController.java
server/src/main/java/org/iri_research/renkan/coweb/event/NodeSyncEventManager.java
server/src/main/java/org/iri_research/renkan/models/Node.java
server/src/main/java/org/iri_research/renkan/models/Project.java
server/src/main/webapp/WEB-INF/templates/renkanProjectEdit.html
--- a/server/src/main/java/org/iri_research/renkan/controller/RenkanController.java	Wed Mar 13 15:47:08 2013 +0100
+++ b/server/src/main/java/org/iri_research/renkan/controller/RenkanController.java	Thu Mar 14 00:29:09 2013 +0100
@@ -6,6 +6,7 @@
 import org.iri_research.renkan.RenkanException;
 import org.iri_research.renkan.models.Project;
 import org.iri_research.renkan.repositories.ProjectsRepository;
+import org.iri_research.renkan.repositories.SpacesRepository;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,7 +30,10 @@
 	private final Logger logger = LoggerFactory.getLogger(RenkanController.class);
 		
 	@Autowired
-	private ProjectsRepository projectRepository;
+	private ProjectsRepository projectsRepository;
+	
+	@Autowired
+	private SpacesRepository spacesRepository;
 	
 	private void checkCowebkey(String cowebkey, Project project) {
 		if(cowebkey == null || cowebkey.isEmpty()) {
@@ -62,7 +66,7 @@
 			throw new IllegalArgumentException("RenkanContoller.renkanProject: Project id is null or empty.");
 		}
 		
-		Project project = this.projectRepository.findOne(project_id);
+		Project project = this.projectsRepository.findOne(project_id);
 		
 		if(project == null) {
 			throw new HttpClientErrorException(HttpStatus.NOT_FOUND, "Project " + project_id + " not found.");
@@ -72,6 +76,7 @@
 		
 		Map<String, Object> model = new HashMap<String, Object>();
 		model.put("project", project);
+		model.put("space", spacesRepository.findOne(project.getSpaceId()));
 		
 		return new ModelAndView("renkanProjectEdit", model);
 	}
--- a/server/src/main/java/org/iri_research/renkan/coweb/event/NodeSyncEventManager.java	Wed Mar 13 15:47:08 2013 +0100
+++ b/server/src/main/java/org/iri_research/renkan/coweb/event/NodeSyncEventManager.java	Thu Mar 14 00:29:09 2013 +0100
@@ -69,7 +69,9 @@
 		
 		String node_id = (String)values.get("id");
 		
-		Node node = new Node(node_id, (String)values.get("title"), (String)values.get("description"), (String)values.get("uri"), (String)values.get("color"), creator_id, nodePosition, image, project_id);
+		Integer size = (Integer)values.get("size");
+		
+		Node node = new Node(node_id, (String)values.get("title"), (String)values.get("description"), (String)values.get("uri"), (String)values.get("color"), creator_id, nodePosition, image, size, project_id);
 		
 		Integer position = (Integer)data.get("position");
 		
--- a/server/src/main/java/org/iri_research/renkan/models/Node.java	Wed Mar 13 15:47:08 2013 +0100
+++ b/server/src/main/java/org/iri_research/renkan/models/Node.java	Thu Mar 14 00:29:09 2013 +0100
@@ -10,13 +10,14 @@
 public class Node extends AbstractRenkanModel<String> {
 
 
-	public Node(String id, String title, String description, String uri, String color, String createdBy, Point position, String image, String projectId) {
+	public Node(String id, String title, String description, String uri, String color, String createdBy, Point position, String image, Integer size, String projectId) {
 		super(id, title, description, uri, color);
 		
 		this.projectId = projectId;
 		this.createdBy = createdBy;
 		this.position = position;
 		this.image = image;
+		this.size = (size == null) ? 0 : size.intValue();
 	}	
 
 	@Field("project_id")
@@ -29,12 +30,14 @@
 	
 	private Point position = null;
 
+	private String image;
+	
+	private int size;
+	
 	public Point getPosition() {
 		return position;
 	}
 
-	private String image;
-
 	public String getImage() {
 		return image;
 	}
@@ -49,4 +52,9 @@
 		return createdBy;
 	}
 
+	public int getSize() {
+		return size;
+	}
+	
+
 }
--- a/server/src/main/java/org/iri_research/renkan/models/Project.java	Wed Mar 13 15:47:08 2013 +0100
+++ b/server/src/main/java/org/iri_research/renkan/models/Project.java	Thu Mar 14 00:29:09 2013 +0100
@@ -91,7 +91,12 @@
 		this.created = date;
 		
 	}
-		
+	
+	@JsonProperty("space_id")
+	public String getSpaceId() {
+		return spaceId;
+	}
+
 	private String getRawKey(String prefix) {		
 		StringBuffer key = new StringBuffer(prefix!=null?prefix+"|":"");
 		key.append(Constants.KEYHEX);
--- a/server/src/main/webapp/WEB-INF/templates/renkanProjectEdit.html	Wed Mar 13 15:47:08 2013 +0100
+++ b/server/src/main/webapp/WEB-INF/templates/renkanProjectEdit.html	Thu Mar 14 00:29:09 2013 +0100
@@ -20,12 +20,13 @@
         <script src="js/twitter-bin.js" th:src="@{/static/js/twitter-bin.js}"></script>
         <script src="js/wikipedia-bin.js" th:src="@{/static/js/wikipedia-bin.js}"></script>
         <script src="js/ldtjson-bin.js" th:src="@{/static/js/ldtjson-bin.js}"></script>
+        <script src="js/list-bin.js" th:src="@{/static/js/list-bin.js}"></script>
         <script src="js/paper-renderer.js" th:src="@{/static/js/paper-renderer.js}"></script>
         <script type="text/javascript" src="js/config.js" th:src="@{/static/js/config.js}"></script>
         <script type="text/javascript" src="lib/dojo/dojo.js" data-dojo-config="isDebug: true, parseOnLoad: true" th:src="@{/static/lib/dojo/dojo.js}"></script>                
         <script type="text/javascript" th:inline="javascript">
             $(function() {
-                var _renkan = new Rkns.Renkan({
+            	var renkan_config = {
                     url: /*[[@{/rest/projects/}+${project.id}]]*/ "data/simple-persist.php",
                     static_url : /*[[@{/static/}]]*/ "",
                     bins: [
@@ -67,7 +68,18 @@
                             type: Rkns.Twitter.Search
                         }
                     ],
-                });
+                };
+            	var space_config = /*[[${space.binConfig}?${space.binConfig}:'{}']]*/"{}";
+            	space_config = JSON.parse(space_config);
+            	for ( var i in (('bins' in space_config)?space_config.bins:[])) {
+					var bin_def = space_config.bins[i];
+            		bin_def.bin = eval(bin_def.bin);
+				}
+                for ( var i in (('search' in space_config)?space_config.search:[])) {
+                    var search_def = space_config.search[i];
+                	search_def.type = eval(bin_def.type);
+                }
+                var _renkan = new Rkns.Renkan($.extend({}, renkan_config, space_config));
                 var corenkanConfig = {
         	        projectId: /*[[${project.id}]]*/"new_project",
         	        renkan : _renkan
@@ -76,7 +88,7 @@
                 require({corenkanConfig: corenkanConfig}, ["corenkan"], function(corenkan) {            
                     corenkan.app.onStatusChange = function(status) {
                     	if(status == "ready") {
-                    		_renkan.renderer.autoScale();
+                    	    _renkan.renderer.autoScale();
                     	}
                     };
                 });