Author: michiel
Date: 2010-03-01 15:27:29 +0100 (Mon, 01 Mar 2010)
New Revision: 41210
Added:
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.dot.jsp
Modified:
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.svg.jsp
Log:
for easier debugging, provided also '.dot.jsp'
Added:
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.dot.jsp
===================================================================
---
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.dot.jsp
(rev 0)
+++
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.dot.jsp
2010-03-01 14:27:29 UTC (rev 41210)
@@ -0,0 +1,100 @@
+<%@ taglib uri="http://www.mmbase.org/mmbase-taglib-2.0" prefix="mm"
+%><%...@page import="org.mmbase.bridge.*,java.util.*"
+%><mm:content type="text/plain" postprocessor="none">
+<mm:import externid="nodemanager" jspvar="nodemanager" vartype="list"
+/><mm:import externid="maxdistance" jspvar="maxdistance" vartype="integer"
+>2</mm:import
+><mm:import id="baseurl" jspvar="url"><mm:url page="model.svg.jsp"
/></mm:import
+><mm:cloud jspvar="cloud">
+Digraph "MMBase<%= nodemanager == null ? "" : " " + nodemanager %>" {
+ edge [fontsize=8.0];
+ node [fontsize=14.0,shape=box];
+ nodesep=0.7;
+ rankdir=LR;
+ <%
+ Map<String, Integer> set = new TreeMap<String, Integer>();
+ Set<RelationManager> rmset = new HashSet<RelationManager>();
+ for (Object nm : nodemanager) {
+ set.put((String) nm, new Integer(0));
+ }
+ //out.println("root=" + nodemanager + ";");
+ int size = -1;
+ int distance = 1;
+ while (size < set.size()) {
+ size = set.size();
+ Set<String> add = new HashSet<String>();
+ for (RelationManager rm : cloud.getRelationManagers()) {
+ try {
+ if (distance > maxdistance) {
+ if (set.containsKey(rm.getSourceManager().getName()) &&
set.containsKey(rm.getDestinationManager().getName()) || nodemanager.size() ==
0) {
+ rmset.add(rm);
+ }
+ } else {
+ if (set.containsKey(rm.getSourceManager().getName()) ||
set.containsKey(rm.getDestinationManager().getName()) || nodemanager.size() ==
0) {
+ rmset.add(rm);
+ add.add(rm.getSourceManager().getName());
+ add.add(rm.getDestinationManager().getName());
+
+ }
+ }
+ } catch (NotFoundException nfe) {
+ }
+ }
+ for (String a : add) {
+ if (! set.containsKey(a)) {
+ set.put(a, distance);
+ }
+ }
+ distance++;
+ }
+ for (Map.Entry<String, Integer> entry : set.entrySet()) {
+ String nm = entry.getKey();
+ int dist = entry.getValue();
+ String color ;
+ if (dist == 0) {
+ color = ",color=green,fontcolor=green";
+ } else if (dist == maxdistance) {
+ color = ",color=lightgray,fontcolor=gray";
+ } else {
+ color = "";
+ }
+ Set<String> newNodeManagers = new TreeSet<String>();
+ newNodeManagers.addAll(nodemanager);
+ if (newNodeManagers.contains(nm)) {
+ newNodeManagers.remove(nm);
+ } else {
+ newNodeManagers.add(nm);
+ }
+ StringBuilder nms = new StringBuilder();
+ for (String n : newNodeManagers) {
+ if (nms.length() > 0) {
+ nms.append(",");
+ }
+ nms.append(n);
+ }
+ String u = url + "?nodemanager=" + nms + "&maxdistance=" +
maxdistance;
+ out.println(nm + " [label=<" + nm + ">" + color + ",URL=\"" + u +
"\"];");
+ }
+ %>
+
+ splines=true;
+ edge [style=dashed];
+
+ <jsp:scriptlet>
+ for (RelationManager rm : rmset) {
+ try {
+ if (set.containsKey(rm.getSourceManager().getName()) ||
set.containsKey(rm.getDestinationManager().getName())) {
+ out.print(rm.getSourceManager().getName() + "->" +
rm.getDestinationManager().getName());
+ String role = rm.getForwardRole();
+ if (! "related".equals(role)) {
+ out.print(" [label=" + role + "]");
+ }
+ out.println(";");
+ }
+ } catch (NotFoundException nfe) {
+ }
+ }
+ </jsp:scriptlet>
+}
+ </mm:cloud>
+</mm:content>
Modified:
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.svg.jsp
===================================================================
---
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.svg.jsp
2010-03-01 14:05:41 UTC (rev 41209)
+++
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.svg.jsp
2010-03-01 14:27:29 UTC (rev 41210)
@@ -4,101 +4,5 @@
<mm:param name="command">dot</mm:param>
</mm:escaper
><mm:content type="image/svg+xml" postprocessor="svg">
-<mm:import externid="nodemanager" jspvar="nodemanager" vartype="list" />
-<mm:import externid="maxdistance" jspvar="maxdistance"
vartype="integer">2</mm:import>
-<mm:import id="baseurl" jspvar="url"><mm:url page="model.svg.jsp"
/></mm:import>
-<mm:cloud jspvar="cloud">
-
-Digraph "MMBase<%= nodemanager == null ? "" : " " + nodemanager %>" {
- edge [fontsize=8.0];
- node [fontsize=14.0,shape=box];
- nodesep=0.7;
- rankdir=LR;
-
- <%
- Map<String, Integer> set = new TreeMap<String, Integer>();
- Set<RelationManager> rmset = new HashSet<RelationManager>();
- for (Object nm : nodemanager) {
- set.put((String) nm, new Integer(0));
- }
- //out.println("root=" + nodemanager + ";");
- int size = -1;
- int distance = 1;
- while (size < set.size()) {
- size = set.size();
- Set<String> add = new HashSet<String>();
- for (RelationManager rm : cloud.getRelationManagers()) {
- try {
- if (distance > maxdistance) {
- if (set.containsKey(rm.getSourceManager().getName()) &&
set.containsKey(rm.getDestinationManager().getName()) || nodemanager.size() ==
0) {
- rmset.add(rm);
- }
- } else {
- if (set.containsKey(rm.getSourceManager().getName()) ||
set.containsKey(rm.getDestinationManager().getName()) || nodemanager.size() ==
0) {
- rmset.add(rm);
- add.add(rm.getSourceManager().getName());
- add.add(rm.getDestinationManager().getName());
-
- }
- }
- } catch (NotFoundException nfe) {
- }
- }
- for (String a : add) {
- if (! set.containsKey(a)) {
- set.put(a, distance);
- }
- }
- distance++;
- }
- for (Map.Entry<String, Integer> entry : set.entrySet()) {
- String nm = entry.getKey();
- int dist = entry.getValue();
- String color ;
- if (dist == 0) {
- color = ",color=green,fontcolor=green";
- } else if (dist == maxdistance) {
- color = ",color=lightgray,fontcolor=gray";
- } else {
- color = "";
- }
- Set<String> newNodeManagers = new TreeSet<String>();
- newNodeManagers.addAll(nodemanager);
- if (newNodeManagers.contains(nm)) {
- newNodeManagers.remove(nm);
- } else {
- newNodeManagers.add(nm);
- }
- StringBuilder nms = new StringBuilder();
- for (String n : newNodeManagers) {
- if (nms.length() > 0) {
- nms.append(",");
- }
- nms.append(n);
- }
- String u = url + "?nodemanager=" + nms + "&maxdistance=" +
maxdistance;
- out.println(nm + " [label=<" + nm + ">" + color + ",URL=\"" + u +
"\"];");
- }
- %>
-
- splines=true;
- edge [style=dashed];
-
- <jsp:scriptlet>
- for (RelationManager rm : rmset) {
- try {
- if (set.containsKey(rm.getSourceManager().getName()) ||
set.containsKey(rm.getDestinationManager().getName())) {
- out.print(rm.getSourceManager().getName() + "->" +
rm.getDestinationManager().getName());
- String role = rm.getForwardRole();
- if (! "related".equals(role)) {
- out.print(" [label=" + role + "]");
- }
- out.println(";");
- }
- } catch (NotFoundException nfe) {
- }
- }
- </jsp:scriptlet>
-}
- </mm:cloud>
+ <mm:include page="model.dot.jsp" />
</mm:content>
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs