package eu.etaxonomy.cdm.io.xper;\r
\r
import java.io.File;\r
+import java.util.List;\r
+import java.util.UUID;\r
+\r
+import org.apache.log4j.Logger;\r
\r
import eu.etaxonomy.cdm.api.application.CdmApplicationController;\r
import eu.etaxonomy.cdm.app.common.CdmDestinations;\r
import eu.etaxonomy.cdm.database.DbSchemaValidation;\r
import eu.etaxonomy.cdm.database.ICdmDataSource;\r
-import eu.etaxonomy.cdm.io.xper.AdaptaterCdmXper;\r
-import fr_jussieu_snv_lis.Xper;\r
-import fr_jussieu_snv_lis.edition.XPDisplay;\r
+import eu.etaxonomy.cdm.io.api.application.CdmIoApplicationController;\r
+import eu.etaxonomy.cdm.model.description.WorkingSet;\r
+import fr_jussieu_snv_lis.XPApp;\r
import fr_jussieu_snv_lis.utils.Utils;\r
\r
public class TestAdapterCdmXper {\r
+ private static final Logger logger = Logger.getLogger(TestAdapterCdmXper.class);\r
\r
+ CdmXperAdapter adapterCdmXper;\r
\r
- \r
- public TestAdapterCdmXper(){\r
- \r
+ /**\r
+ * \r
+ */\r
+ private boolean startApplications() {\r
+ boolean result = false;\r
DbSchemaValidation dbSchemaValidation = DbSchemaValidation.VALIDATE;\r
ICdmDataSource datasource = CdmDestinations.cdm_test_local_xper();\r
-\r
- final CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);\r
+ System.out.println("cdm start");\r
+ CdmApplicationController appCtr = CdmIoApplicationController.NewInstance(datasource, dbSchemaValidation);\r
+ System.out.println("cdm started :::");\r
\r
+ List<WorkingSet> workingSets = appCtr.getWorkingSetService().list(null, 1, 0, null, null);\r
+ if (workingSets.isEmpty()){\r
+ logger.warn("There is no working set");\r
+ return false;\r
+ }else{\r
+ UUID uuidWorkingSet = workingSets.iterator().next().getUuid();\r
+ \r
+ adapterCdmXper = (CdmXperAdapter)appCtr.getBean("cdmXperAdapter");\r
+// adapterCdmXper = new CdmXperAdapter(appCtr, uuidWorkingSet);\r
+ result = adapterCdmXper.startXper(uuidWorkingSet);\r
+ }\r
+\r
+ return result;\r
\r
- Thread t = new Thread() {\r
- public void run() {\r
- new Xper(appCtr);\r
- }\r
- };\r
- t.start();\r
}\r
\r
- public static void xperloadDataFromCdm(){\r
+ public void xperloadDataFromCdm(){\r
+ System.out.println("start load data");\r
+ // display a loading gif\r
+ Utils.displayLoadingGif(true);\r
+ \r
+ \r
// create a new empty base and load data from CDM\r
- if(Xper.getCdmApplicationController() != null){\r
+ if(XPApp.cdmAdapter != null){\r
// create a new base\r
- Xper.getMainframe().newBase("baseTest");\r
+ XPApp.getMainframe().newBase("baseTest");\r
// specify that the current base is not new (needed to be able to add images)\r
- Utils.isNewBase = false;\r
- // use the current directory as working directory for Xper2\r
- XPDisplay.getControler().getBase().setPathName(System.getProperty("user.dir") + Utils.sep);\r
- // create a _thumbnail directory to store thumbnails\r
- new File(System.getProperty("user.dir") + Utils.sep + "images" + Utils.sep + "_thumbnails").mkdirs();\r
+ XPApp.isNewBase = false;\r
// delete the variable create by default and update the frame\r
- XPDisplay.getControler().getBase().deleteVariable(XPDisplay.getControler().getBase().getVariableAt(0));\r
- XPDisplay.displayNbVariable();\r
- XPDisplay.getControler().displayJifVarTree();\r
- \r
- AdaptaterCdmXper adapterCdmXper = new AdaptaterCdmXper();\r
- Utils.cdmAdapter = adapterCdmXper;\r
+ XPApp.getCurrentBase().deleteVariable(XPApp.getCurrentBase().getVariableAt(0));\r
+ XPApp.getMainframe().displayNbVariable();\r
+ XPApp.getMainframe().getControler().displayJifVarTree();\r
\r
- if (Utils.currentBase != null) {\r
+ if (XPApp.getCurrentBase() != null) {\r
// adaptaterCdmXper.createWorkingSet();\r
adapterCdmXper.load();\r
\r
- XPDisplay.displayNbVariable();\r
- XPDisplay.getControler().displayJifVarTree();\r
+ XPApp.getMainframe().displayNbVariable();\r
+ XPApp.getMainframe().getControler().displayJifVarTree();\r
}\r
}\r
+ // undisplay a loading gif\r
+ Utils.displayLoadingGif(false);\r
+ System.out.println("data loaded :::");\r
}\r
\r
/**\r
- * @param args\r
+ * \r
*/\r
- public static void main(String[] args) {\r
- System.out.println("cdm start");\r
- new TestAdapterCdmXper();\r
- System.out.println("cdm started :::");\r
- \r
- while(!Utils.xperReady){\r
- //TODO wait\r
- }\r
+ private void createThumbnailDirectory() {\r
+ // create a _thumbnail directory to store thumbnails\r
+ new File(System.getProperty("user.dir") + Utils.sep + "images" + Utils.sep + "_thumbnails").mkdirs();\r
+ }\r
+ \r
+ /**\r
+ * \r
+ */\r
+ private void generateThumbnails() {\r
+ System.out.println("start generate thumbnails");\r
+ // generate all thumbnails (a loading gif is automatically displayed\r
+ XPApp.generateThumbnailsFromURLImage(XPApp.getCurrentBase().getAllResources());\r
+ System.out.println("stop generate thumbnails");\r
+ }\r
+ \r
+\r
+ private void startPartialCdm() {\r
System.out.println("start load data");\r
// display a loading gif\r
- Utils.displayLoadingGif(true);\r
- // load the data from CDM\r
+// Utils.displayLoadingGif(true);\r
+ \r
\r
- xperloadDataFromCdm();\r
+ // create a new empty base and load data from CDM\r
+ if(XPApp.cdmAdapter != null){\r
+ // create a new base\r
+// XPApp.getMainframe().newBase("baseTest");\r
+ // specify that the current base is not new (needed to be able to add images), not really needed\r
+ XPApp.isNewBase = false;\r
+\r
+ XPApp.getMainframe().displayNbVariable();\r
+ XPApp.getMainframe().getControler().displayJifVarTree();\r
+ \r
+// if (XPApp.getCurrentBase() != null) {\r
+//// adaptaterCdmXper.createWorkingSet();\r
+// adapterCdmXper.load();\r
+//\r
+// XPApp.getMainframe().displayNbVariable();\r
+// XPApp.getMainframe().getControler().displayJifVarTree();\r
+// }\r
+ }\r
// undisplay a loading gif\r
Utils.displayLoadingGif(false);\r
- System.out.println("stop load data");\r
- System.out.println("start generate thumbnails");\r
- // generate all thumbnails (a loading gif is automatically displayed\r
- Utils.generateThumbnailsFromURLImage(XPDisplay.getControler().getBase().getAllResources());\r
- System.out.println("stop generate thumbnails");\r
+ System.out.println("data loaded :::");\r
+\r
\r
}\r
\r
+ /**\r
+ * @param args\r
+ */\r
+ public static void main(String[] args) {\r
+ System.out.println("start test adapter");\r
+ //start CDM and Xper\r
+ TestAdapterCdmXper testAdapter = new TestAdapterCdmXper();\r
+ boolean success = testAdapter.startApplications();\r
+ while(!XPApp.xperReady){\r
+ try {\r
+ Thread.sleep(200);\r
+ } catch (InterruptedException e) {\r
+ e.printStackTrace();\r
+ }\r
+ }\r
+ System.out.println("xper2 started :::");\r
+ if (success){\r
+ testAdapter.createThumbnailDirectory();\r
+ if (args.length >= 1 && "-p".equals(args[0]) ){\r
+ testAdapter.startPartialCdm();\r
+ }else{\r
+ // load the data from CDM\r
+ testAdapter.xperloadDataFromCdm();\r
+ // use the current directory as working directory for Xper2\r
+ XPApp.getCurrentBase().setPathName(System.getProperty("user.dir") + Utils.sep);\r
+ \r
+ testAdapter.generateThumbnails();\r
+ }\r
+ }else{\r
+ System.out.println("end test adapter with errors");\r
+ System.exit(-1);\r
+\r
+ }\r
+ System.out.println("end test adapter");\r
+\r
+ \r
+ }\r
+\r
+\r
+\r
+\r
}\r