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
- AdaptaterCdmXper adapterCdmXper;\r
+ CdmXperAdapter adapterCdmXper;\r
\r
/**\r
* \r
*/\r
- private void startApplications() {\r
+ private boolean startApplications() {\r
+ boolean result = false;\r
DbSchemaValidation dbSchemaValidation = DbSchemaValidation.VALIDATE;\r
ICdmDataSource datasource = CdmDestinations.cdm_test_local_xper();\r
System.out.println("cdm start");\r
- CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);\r
+ CdmApplicationController appCtr = CdmIoApplicationController.NewInstance(datasource, dbSchemaValidation);\r
System.out.println("cdm started :::");\r
\r
- adapterCdmXper = new AdaptaterCdmXper(appCtr);\r
- \r
- Thread t = new Thread() {\r
- public void run() {\r
- new Xper(adapterCdmXper);\r
- }\r
- };\r
- System.out.println("xper2 start");\r
- t.start();\r
- while(!Utils.xperReady){\r
- //TODO wait\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
- System.out.println("xper2 started :::");\r
+\r
+ return result;\r
+ \r
}\r
\r
public void xperloadDataFromCdm(){\r
\r
\r
// create a new empty base and load data from CDM\r
- if(Utils.cdmAdapter != 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
+ XPApp.isNewBase = false;\r
// delete the variable create by default and update the frame\r
- Xper.getMainframe().getControler().getBase().deleteVariable(Xper.getMainframe().getControler().getBase().getVariableAt(0));\r
- Xper.getMainframe().displayNbVariable();\r
- Xper.getMainframe().getControler().displayJifVarTree();\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
- Xper.getMainframe().displayNbVariable();\r
- Xper.getMainframe().getControler().displayJifVarTree();\r
+ XPApp.getMainframe().displayNbVariable();\r
+ XPApp.getMainframe().getControler().displayJifVarTree();\r
}\r
}\r
// undisplay a loading gif\r
private void generateThumbnails() {\r
System.out.println("start generate thumbnails");\r
// generate all thumbnails (a loading gif is automatically displayed\r
- Utils.generateThumbnailsFromURLImage(Xper.getMainframe().getControler().getBase().getAllResources());\r
+ XPApp.generateThumbnailsFromURLImage(XPApp.getCurrentBase().getAllResources());\r
System.out.println("stop generate thumbnails");\r
}\r
\r
\r
private void startPartialCdm() {\r
- // TODO Auto-generated method stub\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(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("data loaded :::");\r
+\r
\r
}\r
\r
* @param args\r
*/\r
public static void main(String[] args) {\r
- System.out.println("start test");\r
+ System.out.println("start test adapter");\r
//start CDM and Xper\r
TestAdapterCdmXper testAdapter = new TestAdapterCdmXper();\r
- testAdapter.startApplications();\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
- Xper.getMainframe().getControler().getBase().setPathName(System.getProperty("user.dir") + Utils.sep);\r
- \r
- testAdapter.generateThumbnails();\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