ConceptRelationshipComposite: added enabling / disabling of edit / delete buttons...
[cdm-vaadin.git] / src / main / java / eu / etaxonomy / cdm / vaadin / util / CdmSpringContextHelper.java
1 package eu.etaxonomy.cdm.vaadin.util;
2
3 import java.sql.Connection;
4 import java.sql.DatabaseMetaData;
5 import java.sql.SQLException;
6
7 import javax.servlet.ServletContext;
8 import javax.sql.DataSource;
9
10 import org.springframework.context.ApplicationContext;
11 import org.springframework.web.context.support.WebApplicationContextUtils;
12
13 import com.vaadin.data.util.sqlcontainer.connection.J2EEConnectionPool;
14 import com.vaadin.data.util.sqlcontainer.connection.JDBCConnectionPool;
15 import com.vaadin.server.VaadinServlet;
16
17 import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
18 import eu.etaxonomy.cdm.api.service.IClassificationService;
19 import eu.etaxonomy.cdm.api.service.ICommonService;
20 import eu.etaxonomy.cdm.api.service.IDescriptionService;
21 import eu.etaxonomy.cdm.api.service.INameService;
22 import eu.etaxonomy.cdm.api.service.IReferenceService;
23 import eu.etaxonomy.cdm.api.service.IService;
24 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
25 import eu.etaxonomy.cdm.api.service.ITaxonService;
26 import eu.etaxonomy.cdm.api.service.ITermService;
27 import eu.etaxonomy.cdm.api.service.IVocabularyService;
28
29 public class CdmSpringContextHelper {
30
31 private final ApplicationContext context;
32 private final DataSource dataSource;
33
34 private final JDBCConnectionPool connPool;
35 private static CdmSpringContextHelper contextHelper;
36
37 private static DatabaseMetaData databaseMetaData;
38
39 private CdmSpringContextHelper(ServletContext servletContext) throws SQLException {
40 context = WebApplicationContextUtils.
41 getRequiredWebApplicationContext(servletContext);
42 dataSource = (DataSource)getBean("dataSource");
43 connPool = new J2EEConnectionPool(dataSource);
44
45 }
46
47
48 public static CdmSpringContextHelper getCurrent() {
49 if(VaadinServlet.getCurrent() == null || VaadinServlet.getCurrent().getServletContext() == null) {
50 throw new RuntimeException("Vaadin Servlet or Vaadin Servlet Context not initialized");
51 }
52
53 if(contextHelper == null) {
54 ServletContext sc = VaadinServlet.getCurrent().getServletContext();
55 try {
56 contextHelper = new CdmSpringContextHelper(sc);
57 } catch (SQLException e) {
58 // TODO Auto-generated catch block
59 e.printStackTrace();
60 }
61 }
62 return contextHelper;
63
64 }
65
66 public Object getBean(final String beanRef) {
67 return context.getBean(beanRef);
68 }
69
70 public Object getBean(Class clazz) {
71 return context.getBean(clazz);
72 }
73
74 public <T extends IService> T getService(Class<T> clazz) {
75 return context.getBean(clazz);
76 }
77
78 public DataSource getDataSource() {
79 return dataSource;
80 }
81
82 public JDBCConnectionPool getConnectionPool() {
83 return connPool;
84 }
85
86 // public static JDBCConnectionPool createConnectionPool() {
87 // return new J2EEConnectionPool(getCurrent().getDataSource());
88 // }
89
90 // public static JDBCConnectionPool getConnectionPool() {
91 // return new J2EEConnectionPool(getCurrent().getDataSource());
92 // }
93
94
95
96 public static Connection getConnection() throws SQLException {
97 return getCurrent().getDataSource().getConnection();
98 }
99
100 public static DatabaseMetaData getDatabaseMetaData() throws SQLException {
101 if(databaseMetaData == null) {
102 Connection conn = getConnection();
103 databaseMetaData = conn.getMetaData();
104 conn.close();
105 }
106 return databaseMetaData;
107 }
108
109 public static ICdmApplicationConfiguration getApplicationConfiguration() {
110 return (ICdmApplicationConfiguration) getCurrent().getBean("cdmApplicationDefaultConfiguration");
111 }
112 public static ITaxonService getTaxonService() {
113 return (ITaxonService)getCurrent().getBean(ITaxonService.class);
114 }
115
116 public static ITaxonNodeService getTaxonNodeService() {
117 return (ITaxonNodeService)getCurrent().getBean(ITaxonNodeService.class);
118 }
119
120 public static IReferenceService getReferenceService() {
121 return (IReferenceService)getCurrent().getBean(IReferenceService.class);
122 }
123
124 public static INameService getNameService() {
125 return (INameService)getCurrent().getBean(INameService.class);
126 }
127
128 public static ICommonService getCommonService() {
129 return (ICommonService)getCurrent().getBean(ICommonService.class);
130 }
131
132 public static IClassificationService getClassificationService() {
133 return (IClassificationService)getCurrent().getBean(IClassificationService.class);
134 }
135
136 public static IVocabularyService getVocabularyService() {
137 return (IVocabularyService)getCurrent().getBean(IVocabularyService.class);
138 }
139
140 public static ITermService getTermService() {
141 return (ITermService)getCurrent().getBean(ITermService.class);
142 }
143
144 public static IDescriptionService getDescriptionService() {
145 return (IDescriptionService)getCurrent().getBean(IDescriptionService.class);
146 }
147
148
149
150 }