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