[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