[jboss-cvs] JBossAS SVN: r91387 - projects/mc-tools/grapher/trunk/src/main/java/org/jboss/mctools/grapher/layout.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jul 17 16:22:49 EDT 2009


Author: alesj
Date: 2009-07-17 16:22:49 -0400 (Fri, 17 Jul 2009)
New Revision: 91387

Modified:
   projects/mc-tools/grapher/trunk/src/main/java/org/jboss/mctools/grapher/layout/GraphLayoutMapping.java
   projects/mc-tools/grapher/trunk/src/main/java/org/jboss/mctools/grapher/layout/ReflectionGraphLayout.java
Log:
More reflection choice.

Modified: projects/mc-tools/grapher/trunk/src/main/java/org/jboss/mctools/grapher/layout/GraphLayoutMapping.java
===================================================================
--- projects/mc-tools/grapher/trunk/src/main/java/org/jboss/mctools/grapher/layout/GraphLayoutMapping.java	2009-07-17 20:11:27 UTC (rev 91386)
+++ projects/mc-tools/grapher/trunk/src/main/java/org/jboss/mctools/grapher/layout/GraphLayoutMapping.java	2009-07-17 20:22:49 UTC (rev 91387)
@@ -68,6 +68,9 @@
       if (className == null)
          return GrapherConstants.LAYOUT;
 
-      return new ReflectionGraphLayout(className);
+      if ("simple".equals(key)) // treat simple differently
+         return new ReflectionGraphLayout(className, new Class<?>[]{int.class}, new Object[]{2});
+      else
+         return new ReflectionGraphLayout(className);
    }
 }

Modified: projects/mc-tools/grapher/trunk/src/main/java/org/jboss/mctools/grapher/layout/ReflectionGraphLayout.java
===================================================================
--- projects/mc-tools/grapher/trunk/src/main/java/org/jboss/mctools/grapher/layout/ReflectionGraphLayout.java	2009-07-17 20:11:27 UTC (rev 91386)
+++ projects/mc-tools/grapher/trunk/src/main/java/org/jboss/mctools/grapher/layout/ReflectionGraphLayout.java	2009-07-17 20:22:49 UTC (rev 91387)
@@ -38,6 +38,9 @@
    private Logger log = Logger.getLogger(getClass());
 
    private String jgraphLayoutClass;
+   private Class<?>[] signature;
+   private Object[] parameters;
+
    private boolean alreadyFailed;
 
    public ReflectionGraphLayout(String jgraphLayoutClass)
@@ -45,6 +48,13 @@
       this.jgraphLayoutClass = jgraphLayoutClass;
    }
 
+   public ReflectionGraphLayout(String jgraphLayoutClass, Class<?>[] signature, Object[] parameters)
+   {
+      this(jgraphLayoutClass);
+      this.signature = signature;
+      this.parameters = parameters;
+   }
+
    public void applyLayout(JGraph graph)
    {
       if (alreadyFailed || jgraphLayoutClass == null)
@@ -53,7 +63,17 @@
       try
       {
          ClassLoader loader = Thread.currentThread().getContextClassLoader();
-         Object layout = loader.loadClass(jgraphLayoutClass).newInstance();
+         Class<?> layoutClass = loader.loadClass(jgraphLayoutClass);
+         Object layout;
+         if (signature == null || parameters == null)
+         {
+            layout = layoutClass.newInstance();
+         }
+         else
+         {
+            Constructor layoutCtor = layoutClass.getConstructor(signature);
+            layout = layoutCtor.newInstance(parameters);
+         }
          Class<?> facadeClass = loader.loadClass("com.jgraph.layout.JGraphFacade");
          Constructor facadeCtor = facadeClass.getConstructor(JGraph.class);
          Object facade = facadeCtor.newInstance(graph);




More information about the jboss-cvs-commits mailing list