X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/925ee68c025e59210a42f3f6957763c46767b49a..c3ef0593e69bc3e20f094d8d5208c625671d0e71:/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/UseObjectManager.java diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/UseObjectManager.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/UseObjectManager.java index d9940520b..747e0b69e 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/UseObjectManager.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/UseObjectManager.java @@ -1,175 +1,54 @@ /** * Copyright (C) 2011 EDIT -* European Distributed Institute of Taxonomy +* European Distributed Institute of Taxonomy * http://www.e-taxonomy.eu -* +* * The contents of this file are subject to the Mozilla Public License Version 1.1 * See LICENSE.TXT at the top of this package for the full license terms. */ package eu.etaxonomy.taxeditor.editor; -import java.net.URI; -import java.net.URISyntaxException; - import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.ui.IMemento; -import eu.etaxonomy.cdm.api.conversation.ConversationHolder; -import eu.etaxonomy.cdm.api.service.IFeatureTreeService; -import eu.etaxonomy.cdm.api.service.ITermService; -import eu.etaxonomy.cdm.api.service.IVocabularyService; -import eu.etaxonomy.cdm.model.common.MarkerType; -import eu.etaxonomy.cdm.model.common.TermVocabulary; -import eu.etaxonomy.cdm.model.description.Feature; -import eu.etaxonomy.cdm.model.description.FeatureNode; -import eu.etaxonomy.cdm.model.description.FeatureTree; -import eu.etaxonomy.cdm.model.description.Modifier; -import eu.etaxonomy.cdm.model.description.State; +import eu.etaxonomy.taxeditor.editor.l10n.Messages; import eu.etaxonomy.taxeditor.model.ContextListenerAdapter; +import eu.etaxonomy.taxeditor.model.MessagingUtils; import eu.etaxonomy.taxeditor.store.CdmStore; -import eu.etaxonomy.taxeditor.store.StoreUtil; +import eu.etaxonomy.taxeditor.store.UseObjectStore; /** - * The context listener will call this class when the uses view is being loaded. - * It checks if the uses view's necessary terms are present in the database. - * It will persist the terms that aren't present, using the CDMLib's services classes. - * @author a.theys + * The context listener will call this class when a new context is started. + * It will reset the UseObjectStore to guarantee the static + * content of the store will be refreshed each time we load a new context. + * @author a.theys + * @author a.mueller * @created mar 13, 2012 - * @version 1.0 */ public class UseObjectManager extends ContextListenerAdapter{ + + private static final String RESET_USAGE_DATA = Messages.UseObjectManager_RESET_DATA; + + + public UseObjectManager() { + CdmStore.getContextManager().addContextListener(this); + } + + @Override public void contextRefresh(IProgressMonitor monitor) { - monitor.subTask("Refreshing the Uses View"); - StoreUtil.warn(getClass(), "Refreshing Uses View warn"); - setupNecessaryItems(monitor); + monitor.subTask(RESET_USAGE_DATA); + MessagingUtils.warn(getClass(), RESET_USAGE_DATA); + UseObjectStore.reset(); } - - + + @Override public void contextStart(IMemento memento, IProgressMonitor monitor) { - monitor.subTask("Starting the Uses View"); - StoreUtil.warn(getClass(), "Starting Uses View warn"); - setupNecessaryItems(monitor); - } - - private void setupNecessaryItems(IProgressMonitor monitor) { - MarkerType existingMarkertype = (MarkerType) CdmStore.getService(ITermService.class).find(UsageTermCollection.uuidUseMarkerType); - TermVocabulary stateVocabulary = (TermVocabulary) CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidUseCategoryVocabulary); - Feature featureUseRecord = (Feature) CdmStore.getService(ITermService.class).find(UsageTermCollection.uuidUseRecordFeature); - Feature featureUseSummary = (Feature) CdmStore.getService(ITermService.class).find(UsageTermCollection.uuidUseSummaryFeature); - TermVocabulary countryVocabulary = (TermVocabulary) CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidCountryVocabulary); - TermVocabulary plantPartVocabulary = (TermVocabulary) CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidPlantPartVocabulary); - TermVocabulary humanGroupVocabulary = (TermVocabulary) CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidHumanGroupVocabulary); - - ConversationHolder conversation = CdmStore.createConversation(); - if (existingMarkertype == null) { - existingMarkertype = MarkerType.NewInstance(UsageTermCollection.useMakerLabel, UsageTermCollection.useMakerLabel, null); - existingMarkertype.setUuid( UsageTermCollection.uuidUseMarkerType); - TermVocabulary markerTypeVocabulary = (TermVocabulary)CdmStore.getService(IVocabularyService.class).find((UsageTermCollection.uuidMarkersVocabulary)); - markerTypeVocabulary.addTerm(existingMarkertype); - CdmStore.getService(IVocabularyService.class).saveOrUpdate(markerTypeVocabulary); - conversation.commit(true); - } - if (stateVocabulary == null) { - monitor.subTask("stateVocabulary empty"); - URI termSourceUri = null; - try { - termSourceUri = new URI("eu.etaxonomy.cdm.model.description.State"); - } catch (URISyntaxException e) { - e.printStackTrace(); - } - stateVocabulary = TermVocabulary.NewInstance(UsageTermCollection.useCategoryVocabularyLabel, UsageTermCollection.useCategoryVocabularyLabel, null, termSourceUri); - stateVocabulary.setUuid(UsageTermCollection.uuidUseCategoryVocabulary); - State newDummyState = State.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null); - newDummyState.setUuid(UsageTermCollection.uuidUseCategoryDummy); - State newDummySubCat = State.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null); - newDummySubCat.setUuid(UsageTermCollection.uuidUseSubCategoryDummy); - newDummyState.addIncludes(newDummySubCat); - stateVocabulary.addTerm(newDummyState); - CdmStore.getService(IVocabularyService.class).saveOrUpdate(stateVocabulary); - conversation.commit(true); - } - if (countryVocabulary == null) { - monitor.subTask("countryVocabulary empty"); - URI termSourceUri = null; - try { - termSourceUri = new URI("eu.etaxonomy.cdm.model.description.Modifier"); - } catch (URISyntaxException e) { - e.printStackTrace(); - } - countryVocabulary = TermVocabulary.NewInstance(UsageTermCollection.countryLabel, UsageTermCollection.countryLabel, null, termSourceUri); - countryVocabulary.setUuid(UsageTermCollection.uuidCountryVocabulary); - Modifier newDummyModifier = Modifier.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null); - newDummyModifier.setUuid(UsageTermCollection.uuidCountryDummy); - countryVocabulary.addTerm(newDummyModifier); - CdmStore.getService(IVocabularyService.class).saveOrUpdate(countryVocabulary); - conversation.commit(true); - } - if (plantPartVocabulary == null) { - monitor.subTask("plantPartVocabulary empty"); - URI termSourceUri = null; - try { - termSourceUri = new URI("eu.etaxonomy.cdm.model.description.Modifier"); - } catch (URISyntaxException e) { - e.printStackTrace(); - } - plantPartVocabulary = TermVocabulary.NewInstance(UsageTermCollection.plantPartLabel, UsageTermCollection.plantPartLabel, null, termSourceUri); - plantPartVocabulary.setUuid(UsageTermCollection.uuidPlantPartVocabulary); - Modifier newDummyModifier = Modifier.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null); - newDummyModifier.setUuid(UsageTermCollection.uuidPlantPartDummy); - plantPartVocabulary.addTerm(newDummyModifier); - CdmStore.getService(IVocabularyService.class).saveOrUpdate(plantPartVocabulary); - conversation.commit(true); - } - if (humanGroupVocabulary == null) { - monitor.subTask("humanGroupVocabulary empty"); - URI termSourceUri = null; - try { - termSourceUri = new URI("eu.etaxonomy.cdm.model.description.Modifier"); - } catch (URISyntaxException e) { - e.printStackTrace(); - } - humanGroupVocabulary = TermVocabulary.NewInstance(UsageTermCollection.humanGroupLabel, UsageTermCollection.humanGroupLabel, null, termSourceUri); - humanGroupVocabulary.setUuid(UsageTermCollection.uuidHumanGroupVocabulary); - Modifier newDummyModifier = Modifier.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null); - newDummyModifier.setUuid(UsageTermCollection.uuidHumanGroupDummy); - Modifier newSubDummyModifier = Modifier.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null); - newSubDummyModifier.setUuid(UsageTermCollection.uuidEthnicGroupDummy); - newDummyModifier.addIncludes(newSubDummyModifier); - humanGroupVocabulary.addTerm(newDummyModifier); - CdmStore.getService(IVocabularyService.class).saveOrUpdate(humanGroupVocabulary); - conversation.commit(true); - } - - if(featureUseRecord == null|| featureUseSummary == null) { - TermVocabulary featureVocabulary = (TermVocabulary)CdmStore.getService(IVocabularyService.class).find((UsageTermCollection.uuidFeatureVocabulary)); - FeatureTree palmWebFeatureTree = CdmStore.getService(IFeatureTreeService.class).find(UsageTermCollection.uuidPalmWebFeatureTree); - - if (featureUseRecord == null ) { - featureUseRecord = Feature.NewInstance(UsageTermCollection.useRecordFeatureLabel, UsageTermCollection.useRecordFeatureLabel, null); - featureUseRecord.setUuid(UsageTermCollection.uuidUseRecordFeature); - featureUseRecord.isSupportsCategoricalData(); - featureUseRecord.setSupportsCategoricalData(true); - featureVocabulary.addTerm(featureUseRecord); - FeatureNode useRecFeatureNode = FeatureNode.NewInstance(featureUseRecord); - palmWebFeatureTree.getRoot().addChild(useRecFeatureNode); - } - if (featureUseSummary == null) { - featureUseSummary = Feature.NewInstance(UsageTermCollection.useSummaryFeatureLabel, UsageTermCollection.useSummaryFeatureLabel, null); - featureUseSummary.setUuid(UsageTermCollection.uuidUseSummaryFeature); - featureUseSummary.isSupportsTextData(); - featureUseSummary.setSupportsTextData(true); - featureVocabulary.addTerm(featureUseSummary); - FeatureNode useSumFeatureNode = FeatureNode.NewInstance(featureUseSummary); - palmWebFeatureTree.getRoot().addChild(useSumFeatureNode); - } - - CdmStore.getService(IVocabularyService.class).saveOrUpdate(featureVocabulary); - CdmStore.getService(IFeatureTreeService.class).saveOrUpdate(palmWebFeatureTree); - conversation.commit(true); - - } - conversation.close(); +// monitor.subTask("Starting the Uses View"); +// MessagingUtils.warn(getClass(), "Starting Uses View warn"); + UseObjectStore.reset(); } + + }