Author: michiel
Date: 2009-11-12 00:15:22 +0100 (Thu, 12 Nov 2009)
New Revision: 39654
Added:
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/inheritance.svg.jsp
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.jspx
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.svg.jsp
Log:
a few simple jsps to show the current object model
Added:
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/inheritance.svg.jsp
===================================================================
---
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/inheritance.svg.jsp
(rev 0)
+++
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/inheritance.svg.jsp
2009-11-11 23:15:22 UTC (rev 39654)
@@ -0,0 +1,50 @@
+<%@ taglib uri="http://www.mmbase.org/mmbase-taglib-2.0" prefix="mm"
+%><%...@page import="org.mmbase.bridge.*,java.util.*"
+%><mm:escaper id="svg" type="graphviz">
+ <mm:param name="command">dot</mm:param>
+ </mm:escaper
+><mm:content type="image/svg+xml" postprocessor="svg">
+<mm:import externid="nodemanager" jspvar="nodemanager" />
+<mm:import id="baseurl" jspvar="url"><mm:url page="inheritance.svg.jsp"
/></mm:import>
+<mm:cloud jspvar="cloud">
+
+Digraph MMBase {
+ edge [fontsize=2,labelfontsize=2];
+ node [fontsize=2];
+ nodesep=0.2;
+
+ <%
+ Set<String> set = new HashSet<String>();
+ if (nodemanager != null) {
+ set.add(nodemanager);
+ NodeManager nm = cloud.getNodeManager(nodemanager);
+ while(true) {
+ try {
+ NodeManager p = nm.getParent();
+ out.println(p.getName() + " [URL=\"" + url + "?nodemanager=" +
p.getName() + "\"];");
+ out.println(nm.getName() + "->" + p.getName() + ";");
+ nm = p;
+ } catch (NotFoundException nfe) {
+ break;
+ }
+ }
+ }
+ int size = -1;
+ while (size < set.size()) {
+ size = set.size();
+ for (NodeManager nm : cloud.getNodeManagers()) {
+ try {
+ NodeManager parent = nm.getParent();
+ if (!set.contains(nm.getName()) && (set.contains(parent.getName())
|| nodemanager == null)) {
+ out.println(nm.getName() + " [URL=\"" + url + "?nodemanager="
+ nm.getName() + "\"];");
+ out.println(nm.getName() + "->" + parent.getName() + ";");
+ set.add(nm.getName());
+ }
+ } catch(NotFoundException nfe) {
+ }
+ }
+ }
+ %>
+}
+ </mm:cloud>
+</mm:content>
Added:
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.jspx
===================================================================
--- mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.jspx
(rev 0)
+++ mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.jspx
2009-11-11 23:15:22 UTC (rev 39654)
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<div
+ class="mm_c c_core b_model
${requestScope['org.mmbase.componentClassName']}"
+ id="${requestScope['org.mmbase.componentId']}"
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:c="http://java.sun.com/jsp/jstl/core"
+ xmlns:fn="http://java.sun.com/jsp/jstl/functions"
+ xmlns:jsp="http://java.sun.com/JSP/Page"
+ xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0">
+ <jsp:output omit-xml-declaration="true" />
+ <mm:import externid="nodemanager" />
+ <h2>Object model</h2>
+ <p>This page needs <a href="http://www.graphviz.org">graphviz</a> on the
server and <a
href="http://en.wikipedia.org/wiki/Scalable_Vector_Graphics">SVG</a> in the
browser</p>
+
+ <h3>Possible relations</h3>
+ <mm:link page="/mmbase/components/core/model.svg.jsp"
referids="nodemanager?">
+ <object data="${_}" type="image/svg+xml" width="100%" />
+ </mm:link>
+
+ <h3>Inheritance</h3>
+ <mm:link page="/mmbase/components/core/inheritance.svg.jsp"
referids="nodemanager?">
+ <object data="${_}" type="image/svg+xml" width="100%" />
+ </mm:link>
+</div>
Added:
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
(rev 0)
+++
mmbase/trunk/base-webapp/src/main/webapp/mmbase/components/core/model.svg.jsp
2009-11-11 23:15:22 UTC (rev 39654)
@@ -0,0 +1,59 @@
+<%@ taglib uri="http://www.mmbase.org/mmbase-taglib-2.0" prefix="mm"
+%><%...@page import="org.mmbase.bridge.*,java.util.*"
+%><mm:escaper id="svg" type="graphviz">
+ <mm:param name="command">dot</mm:param>
+ </mm:escaper
+><mm:content type="image/svg+xml" postprocessor="svg">
+<mm:import externid="nodemanager" jspvar="nodemanager" />
+<mm:import id="baseurl" jspvar="url"><mm:url page="model.svg.jsp"
/></mm:import>
+<mm:cloud jspvar="cloud">
+
+Digraph MMBase {
+ edge [fontsize=2,labelfontsize=2];
+ node [fontsize=2];
+ nodesep=0.2;
+
+ <%
+ Set<String> set = new HashSet<String>();
+ if (nodemanager != null) {
+ set.add(nodemanager);
+ }
+ int size = -1;
+ while (size < set.size()) {
+ size = set.size();
+ for (RelationManager rm : cloud.getRelationManagers()) {
+ if (set.contains(rm.getSourceManager().getName()) ||
set.contains(rm.getDestinationManager().getName()) || nodemanager == null) {
+ set.add(rm.getSourceManager().getName());
+ set.add(rm.getDestinationManager().getName());
+ }
+ }
+ }
+ if (nodemanager != null) {
+ for (String nm : set) {
+ out.println(nm + " [URL=\"" + url + "?nodemanager=" + nm +
"\"];");
+ }
+ } else {
+ for (NodeManager nm : cloud.getNodeManagers()) {
+ out.println(nm.getName() + " [URL=\"" + url + "?nodemanager=" +
nm.getName() + "\"];");
+ }
+ }
+ %>
+
+ splines=true;
+ edge [style=dashed];
+
+ <jsp:scriptlet>
+ for (RelationManager rm : cloud.getRelationManagers()) {
+ if (set.contains(rm.getSourceManager().getName()) ||
set.contains(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(";");
+ }
+ }
+ </jsp:scriptlet>
+}
+ </mm:cloud>
+</mm:content>
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs