diff --git a/src/META-INF/visualizations-beans-injection.xml b/src/META-INF/visualizations-beans-injection.xml
new file mode 100644
index 00000000..23de8763
--- /dev/null
+++ b/src/META-INF/visualizations-beans-injection.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationController.java b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationController.java
index 67fa3f32..eacbec6e 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationController.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationController.java
@@ -31,6 +31,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import java.io.IOException;
+import java.util.Map;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
@@ -40,6 +41,9 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.hp.hpl.jena.query.DataSource;
import com.hp.hpl.jena.query.DatasetFactory;
@@ -67,6 +71,8 @@ import edu.cornell.mannlib.vitro.webapp.visualization.visutils.VisualizationRequ
*/
public class VisualizationController extends BaseEditController {
+ private Map visualizationIDsToClass;
+
private static final String VIS_TYPE_URL_HANDLE = "vis";
public static final String URL_ENCODING_SCHEME = "UTF-8";
@@ -96,7 +102,20 @@ public class VisualizationController extends BaseEditController {
public static final String UTILITIES_URL_VALUE
= "utilities";
+ public VisualizationController() {
+ super();
+
+ ApplicationContext context = new ClassPathXmlApplicationContext(
+ "META-INF/visualizations-beans-injection.xml");
+ BeanFactory factory = context;
+ VisualizationInjector visualizationInjector = (VisualizationInjector) factory
+ .getBean("visualizationInjector");
+
+ visualizationIDsToClass = visualizationInjector.getVisualizationIDToClass();
+
+ }
+
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
@@ -114,128 +133,35 @@ public class VisualizationController extends BaseEditController {
String visTypeURLHandle = vreq.getParameter(VIS_TYPE_URL_HANDLE);
+ VisualizationRequestHandler visRequestHandler = null;
+
if (PERSON_PUBLICATION_COUNT_VIS_URL_VALUE.equalsIgnoreCase(visTypeURLHandle)) {
- VisualizationRequestHandler visRequestHandler =
+ visRequestHandler =
new PersonPublicationCountRequestHandler(vreq, request, response, log);
- String rdfResultFormatParam = "RDF/XML-ABBREV";
-
- DataSource dataSource = setupJENADataSource(request,
- response,
- vreq,
- rdfResultFormatParam);
-
- if (dataSource != null) {
-
- /*
- * This is side-effecting because the visualization content is added
- * to the request object.
- * */
- visRequestHandler.generateVisualization(dataSource);
-
- } else {
-
- log.error("ERROR! Data Model Empty");
- }
-
} else if (COLLEGE_PUBLICATION_COUNT_VIS_URL_VALUE.equalsIgnoreCase(visTypeURLHandle)) {
- VisualizationRequestHandler visRequestHandler =
+ visRequestHandler =
new CollegePublicationCountRequestHandler(vreq, request, response, log);
- String rdfResultFormatParam = "RDF/XML-ABBREV";
-
- DataSource dataSource = setupJENADataSource(request,
- response,
- vreq,
- rdfResultFormatParam);
-
- if (dataSource != null) {
-
- /*
- * This is side-effecting because the visualization content is added
- * to the request object.
- * */
- visRequestHandler.generateVisualization(dataSource);
-
- } else {
- log.error("ERROR! data model empoty");
- }
-
} else if (COAUTHORSHIP_VIS_URL_VALUE.equalsIgnoreCase(visTypeURLHandle)) {
- VisualizationRequestHandler visRequestHandler =
+ visRequestHandler =
new CoAuthorshipRequestHandler(vreq, request, response, log);
- String rdfResultFormatParam = "RDF/XML-ABBREV";
-
- DataSource dataSource = setupJENADataSource(request,
- response,
- vreq,
- rdfResultFormatParam);
-
- if (dataSource != null) {
-
- /*
- * This is side-effecting because the visualization content is added
- * to the request object.
- * */
- visRequestHandler.generateVisualization(dataSource);
-
- } else {
- log.error("ERROR! data model empoty");
- }
} else if (PERSON_LEVEL_VIS_URL_VALUE.equalsIgnoreCase(visTypeURLHandle)) {
- VisualizationRequestHandler visRequestHandler =
+ visRequestHandler =
new PersonLevelRequestHandler(vreq, request, response, log);
- String rdfResultFormatParam = "RDF/XML-ABBREV";
-
- DataSource dataSource = setupJENADataSource(request,
- response,
- vreq,
- rdfResultFormatParam);
-
- if (dataSource != null) {
-
- /*
- * This is side-effecting because the visualization content is added
- * to the request object.
- * */
- visRequestHandler.generateVisualization(dataSource);
-
- } else {
- log.error("ERROR! data model empoty");
- }
-
} else if (UTILITIES_URL_VALUE
.equalsIgnoreCase(visTypeURLHandle)) {
- VisualizationRequestHandler visRequestHandler =
+ visRequestHandler =
new UtilitiesRequestHandler(vreq, request, response, log);
- String rdfResultFormatParam = "RDF/XML-ABBREV";
-
- DataSource dataSource = setupJENADataSource(request,
- response,
- vreq,
- rdfResultFormatParam);
-
- if (dataSource != null) {
-
- /*
- * This is side-effecting because the visualization content is added
- * to the request object.
- * */
- visRequestHandler.generateVisualization(dataSource);
-
- } else {
- log.error("ERROR! data model empoty");
- }
-
} else {
log.debug("vis uqery parameter value -> " + vreq.getParameter("vis"));
@@ -251,6 +177,28 @@ public class VisualizationController extends BaseEditController {
request,
response);
}
+
+ String rdfResultFormatParam = "RDF/XML-ABBREV";
+
+ DataSource dataSource = setupJENADataSource(request,
+ response,
+ vreq,
+ rdfResultFormatParam);
+
+ if (dataSource != null && visRequestHandler != null) {
+
+ /*
+ * This is side-effecting because the visualization content is added
+ * to the request object.
+ * */
+ visRequestHandler.generateVisualization(dataSource);
+
+ System.out.println(" VIS ID TO CLASS " + visualizationIDsToClass);
+
+ } else {
+
+ log.error("ERROR! Data Model Empty &/or inapproppriate vis request made");
+ }
return;
}
diff --git a/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationInjector.java b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationInjector.java
new file mode 100644
index 00000000..b9ecc8bd
--- /dev/null
+++ b/src/edu/cornell/mannlib/vitro/webapp/controller/visualization/VisualizationInjector.java
@@ -0,0 +1,19 @@
+/* $This file is distributed under the terms of the license in /doc/license.txt$ */
+package edu.cornell.mannlib.vitro.webapp.controller.visualization;
+
+import java.util.Map;
+
+import edu.cornell.mannlib.vitro.webapp.visualization.visutils.VisualizationRequestHandler;
+
+public class VisualizationInjector {
+ private Map visualizationIDToClass;
+
+ public Map getVisualizationIDToClass() {
+ return visualizationIDToClass;
+ }
+
+ public void setVisualizations(Map visualizationIDToClass) {
+ this.visualizationIDToClass = visualizationIDToClass;
+ }
+
+}