Added "Save All" button which saves all open taxon editors, commits the current trans...
[taxeditor.git] / eclipseprojects / eu.etaxonomy.taxeditor / src / eu / etaxonomy / taxeditor / TaxEditorPlugin.java
index 2cae5399cd8e6d701256144983b6898a552628ee..4526bf06a8cb24d41d922455419902c16e0be381 100644 (file)
 package eu.etaxonomy.taxeditor;\r
 \r
 import java.net.URL;\r
+import java.util.ArrayList;\r
 import java.util.Collection;\r
 import java.util.HashMap;\r
 import java.util.HashSet;\r
+import java.util.List;\r
 import java.util.Map;\r
 import java.util.ResourceBundle;\r
 import java.util.Set;\r
@@ -46,6 +48,7 @@ import eu.etaxonomy.cdm.api.service.IDescriptionService;
 import eu.etaxonomy.cdm.api.service.INameService;\r
 import eu.etaxonomy.cdm.api.service.ITaxonService;\r
 import eu.etaxonomy.cdm.database.CdmDataSource;\r
+import eu.etaxonomy.cdm.database.CdmPersistentDataSource;\r
 import eu.etaxonomy.cdm.database.DataSourceNotFoundException;\r
 import eu.etaxonomy.cdm.database.DbSchemaValidation;\r
 import eu.etaxonomy.cdm.database.ICdmDataSource;\r
@@ -99,12 +102,12 @@ public class TaxEditorPlugin extends AbstractUIPlugin {
         * The constructor\r
         */\r
        public TaxEditorPlugin() {\r
-               logger.fatal("Fatal");\r
-               logger.error("Error");\r
-               logger.debug("Debug");\r
-               logger.info("Info");\r
-               logger.warn("Warn");\r
-               logger.trace("Trace");\r
+//             logger.fatal("Fatal");\r
+//             logger.error("Error");\r
+//             logger.debug("Debug");\r
+//             logger.info("Info");\r
+//             logger.warn("Warn");\r
+//             logger.trace("Trace");  \r
        }\r
 \r
        /*\r
@@ -115,9 +118,7 @@ public class TaxEditorPlugin extends AbstractUIPlugin {
        public void start(BundleContext context) throws Exception {\r
                super.start(context);\r
                plugin = this;\r
-               \r
-               boolean initDatastore = false;\r
-               \r
+                               \r
                // If the preferences INITIALIZED has not been set, the IF clause\r
                // will return false, i.e. datastore will be initialized first\r
                // time the application is run after being installed.\r
@@ -127,7 +128,7 @@ public class TaxEditorPlugin extends AbstractUIPlugin {
                        initialized = getPreferenceStore().getBoolean(\r
                                        ITaxEditorConstants.INITIALIZED);\r
                }\r
-                               \r
+       \r
                if (!initialized) {\r
                        \r
                        logger.warn("Initializing datastore");\r
@@ -243,18 +244,32 @@ public class TaxEditorPlugin extends AbstractUIPlugin {
        public CdmApplicationController getCdmApp() {\r
                if (cdmApp == null) {\r
                        try {\r
-                                ICdmDataSource ds =\r
-                                        CdmDataSource.NewH2EmbeddedInstance("cdm", "sa", "");\r
-//                                      CdmDataSource.NewMySqlInstance("192.168.2.10", "cdm_editor_test1", "edit", "wp5");\r
-                                \r
-                                cdmApp = CdmApplicationController\r
-                                               .NewInstance(ds, dbSchemaValidation);\r
-                                \r
-//                             cdmApp = CdmApplicationController\r
-//                                             .NewInstance(dbSchemaValidation);\r
+//                             cdmApp.getDatabaseService().getDatabaseEnum();\r
+//                             cdmApp.getDatabaseService().saveDataSource(strDataSourceName, databaseTypeEnum, server, database, username, password)\r
+                               \r
+//                             // Open ds by string\r
+//                             CdmPersistentDataSource ds = CdmPersistentDataSource.NewInstance(dataSourceName)\r
+//                             \r
+//                             // Open default instance\r
+//                             CdmPersistentDataSource ds = CdmPersistentDataSource.NewDefaultInstance();\r
+//                             \r
+//                             CdmPersistentDataSource.getAllDataSources();\r
+//                             \r
+//                             // Open CdmApp w default DB\r
+//                             CdmApplicationController.NewInstance(dbSchemaValidation);\r
+                               \r
+//                             System.exit(-1);\r
+                               \r
+                               cdmDatasource = \r
+                                               CdmDataSource.NewH2EmbeddedInstance("cdm", "sa", "");\r
+////                                           CdmDataSource.NewMySqlInstance("192.168.2.10", "cdm_editor_test1", "edit", "wp5");\r
+////                                           CdmPersistentDataSource.NewLocalHsqlInstance();\r
+                               cdmApp = CdmApplicationController\r
+                                               .NewInstance(cdmDatasource, dbSchemaValidation);\r
+                               \r
+//                             cdmApp = CdmApplicationController.NewInstance(dbSchemaValidation);\r
 \r
                                startTransaction();\r
-//                             Object txStatus = cdmApp.startTransaction();\r
                                \r
                                // cdmApp.commitTransaction((TransactionStatus) txStatus);\r
 \r
@@ -306,8 +321,27 @@ public class TaxEditorPlugin extends AbstractUIPlugin {
                if (descriptionService == null) {\r
                        descriptionService = getCdmApp().getDescriptionService();\r
                }\r
-               return descriptionService;\r
-               \r
+               return descriptionService;      \r
+       }\r
+\r
+       private List<ICdmDataSource> dataSources;\r
+       \r
+       public List<ICdmDataSource> getDataSources() {\r
+               if (dataSources == null) {\r
+                       dataSources = new ArrayList<ICdmDataSource>();\r
+                       dataSources.add(CdmDataSource.\r
+                                       NewH2EmbeddedInstance("cdm", "sa", ""));\r
+                       dataSources.add(CdmDataSource.\r
+                                       NewMySqlInstance("192.168.2.10", "cdm_editor_test1", \r
+                                                       "edit", "wp5"));\r
+               }\r
+               return dataSources;\r
+       }\r
+       \r
+       private ICdmDataSource cdmDatasource;   \r
+       \r
+       public ICdmDataSource getCdmDataSource() {\r
+               return cdmDatasource;\r
        }\r
 \r
        /***************************************************************************\r