merge from trunk
authorCherian Mathew <c.mathew@bgbm.org>
Thu, 11 Dec 2014 16:01:06 +0000 (16:01 +0000)
committerCherian Mathew <c.mathew@bgbm.org>
Thu, 11 Dec 2014 16:01:06 +0000 (16:01 +0000)
41 files changed:
.gitattributes
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/ApplicationWorkbenchWindowAdvisor.java
eu.etaxonomy.taxeditor.bulkeditor/plugin.xml
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorQuery.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/edit/DistributionEditingSupport.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientDescriptionService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/CdmDataSourceRepository.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationCloningWizardPage.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationGelPhotoWizardPage.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationGeneralWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewAmplificationWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewDerivedUnitBaseWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/PresenceAbsenceMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/TermStore.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AmplificationSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SelectionDialogFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MultilanguageTextElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/DistributionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureDistributionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaMetaElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/AuthorshipDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationCloningDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationCloningDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGelPhotoCollectionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGelPhotoDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSampleGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/PrimerGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/TissueSampleGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EditFromSelectionWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TranslationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java

index 2e75280140ea06c22c06d0b30752062a07279f38..a551a04e00d17bdeadf2ad4b8f9390a1f94586ff 100644 (file)
@@ -1322,8 +1322,6 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonTra
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/TextHelper.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/TimeHelper.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AbstractNewEntityWizard.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationCloningWizardPage.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationGelPhotoWizardPage.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationGeneralWizardPage.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/ExternalReferenceServiceWizardPage.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewAmplificationWizard.java -text
index 5e597395afce03c467d8f912fc5c1d0419fa6869..a4d2e6816dc5452ab1f36ae1b54eeadeb5d4852f 100644 (file)
@@ -7,6 +7,7 @@ import org.eclipse.ui.application.IActionBarConfigurer;
 import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
 import org.eclipse.ui.application.WorkbenchWindowAdvisor;
 
+import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.dialog.LoginDialog;
@@ -48,6 +49,8 @@ public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
                configurer.setShowPerspectiveBar(true);
                configurer.setTitle("EDIT Taxonomic Editor " + ApplicationUtil.getVersion());
                configurer.setShowProgressIndicator(true);
+
+               CdmDataSourceRepository.createDefaultH2DataSource();
        }
 
        /**
@@ -57,6 +60,8 @@ public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
     public void postWindowOpen() {
                PreferencesUtil.checkNomenclaturalCode();
 
+
+
                if(PreferencesUtil.shouldConnectAtStartUp()) {
             CdmStore.connect();
         }
index 4da979c0167b55bc9c1a085b492f3b0b26bd3c84..b92d3e139e14589c0fd46011ad5389caabf87d97 100644 (file)
                style="push">\r
          </command>\r
       </menuContribution>\r
-      <menuContribution\r
-            allPopups="false"\r
-            locationURI="popup:#DataImportEditorContext">\r
-         <command\r
-               commandId="eu.etaxonomy.taxeditor.bulkeditor.saveSpecimen"\r
-               label="Save Specimen"\r
-               style="push">\r
-         </command>\r
-      </menuContribution>\r
    </extension>\r
    <extension\r
          point="org.eclipse.ui.commands">\r
index b32f182c54fcd21831987ed1ae04bd728b8e81c7..96b0cbed6fcb4ac6c33077779f453099abea96ce 100644 (file)
@@ -10,7 +10,9 @@
 
 package eu.etaxonomy.taxeditor.bulkeditor;
 
+import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.List;
 
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.config.IdentifiableServiceConfiguratorFactory;
@@ -30,10 +32,12 @@ public class BulkEditorQuery {
        public BulkEditorQuery (String searchString, Comparator comparator) {
                this.searchString = searchString;
                this.comparator = comparator;
-               
+               List<String> propertyPath = new ArrayList<String>();
+               propertyPath.add("markers");
                searchConfigurator = IdentifiableServiceConfiguratorFactory.getConfigurator(IdentifiableEntity.class);
                searchConfigurator.setTitleSearchString(searchString);
                searchConfigurator.setMatchMode(null);
+               searchConfigurator.setPropertyPaths(propertyPath);
                
                if(searchString != null && searchString.trim().equals("*")){
                        searchConfigurator.setPageSize(1000);
index 11b8173dbf3d7526c3f71eb6fb4100da0484abf7..4f0f7f5f2e7f1bc20f15ab4c5308c8db0cbc63bb 100644 (file)
@@ -21,7 +21,7 @@ import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Distribution;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -80,9 +80,9 @@ public final class DistributionEditingSupport extends EditingSupport {
 
     @Override
     protected void setValue(Object element, Object value) {
-       if (element instanceof Taxon && value instanceof PresenceAbsenceTermBase) {
+       if (element instanceof Taxon && value instanceof PresenceAbsenceTerm) {
             Taxon taxon = (Taxon) element;
-            PresenceAbsenceTermBase occurenceStatus = (PresenceAbsenceTermBase) value;
+            PresenceAbsenceTerm occurenceStatus = (PresenceAbsenceTerm) value;
             Distribution distribution = getDistributionForColumn(taxon);
             if (distribution != null) {
                 // change status for already exsiting distribution
@@ -124,7 +124,7 @@ public final class DistributionEditingSupport extends EditingSupport {
         return null;
     }
 
-    private void createDistributionForColumn(Taxon taxon, PresenceAbsenceTermBase occurenceStatus) {
+    private void createDistributionForColumn(Taxon taxon, PresenceAbsenceTerm occurenceStatus) {
         TableColumn column = viewer.getTable().getColumn(columnIndex);
 
         ChecklistLabelProvider labelProvider = new ChecklistLabelProvider();
index 28d143ab711454bdf347cded8e4ab026be6ff580..f80c4cb8aaad702f9f2387f5b4125d2004dd9a19 100644 (file)
@@ -41,7 +41,7 @@ import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
 import eu.etaxonomy.cdm.model.location.NamedArea;
@@ -67,7 +67,7 @@ import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
  */
 public class TransientDescriptionService implements IDescriptionService {
 
-    private IDescriptionService defaultDescriptionService;
+    private final IDescriptionService defaultDescriptionService;
 
     /**
      * @param defaultDescriptionService
@@ -964,7 +964,7 @@ public class TransientDescriptionService implements IDescriptionService {
      * @see eu.etaxonomy.cdm.api.service.IDescriptionService#searchDescriptionByDistribution(java.util.Set, eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
      */
     @Override
-    public Pager<TaxonDescription> searchDescriptionByDistribution(Set<NamedArea> namedAreas, PresenceAbsenceTermBase presence, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
+    public Pager<TaxonDescription> searchDescriptionByDistribution(Set<NamedArea> namedAreas, PresenceAbsenceTerm presence, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
         return defaultDescriptionService.searchDescriptionByDistribution(namedAreas, presence, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
index 28bce02f5683ee6152b8e4d29ae3417ce7e0fb1e..477d713dd67cec81090f493c35ee6676c4321853 100644 (file)
@@ -56,7 +56,7 @@ import eu.etaxonomy.cdm.model.common.RelationshipBase.Direction;
 import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.media.MediaRepresentation;
@@ -83,7 +83,6 @@ import eu.etaxonomy.cdm.persistence.query.OrderHint;
 import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
 import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
 import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
-import eu.etaxonomy.taxeditor.ui.section.supplemental.IdentifiableSourceElement;
 
 /**
  * @author pplitzner
@@ -1064,45 +1063,28 @@ public class TransientTaxonService implements ITaxonService {
         return defaultTaxonService.findByFullText(clazz, queryString, classification, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
-    /**
-     * @param areaFilter
-     * @param statusFilter
-     * @param classification
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @throws IOException
-     * @throws ParseException
+
+    /* (non-Javadoc)
      * @see eu.etaxonomy.cdm.api.service.ITaxonService#findByDistribution(java.util.List, java.util.List, eu.etaxonomy.cdm.model.taxon.Classification, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
      */
     @Override
-    public Pager<SearchResult<TaxonBase>> findByDistribution(List<NamedArea> areaFilter, List<PresenceAbsenceTermBase<?>> statusFilter, Classification classification, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws IOException, ParseException {
+    public Pager<SearchResult<TaxonBase>> findByDistribution(List<NamedArea> areaFilter,
+            List<PresenceAbsenceTerm> statusFilter, Classification classification, Integer pageSize,
+            Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws IOException,
+            ParseException {
         return defaultTaxonService.findByDistribution(areaFilter, statusFilter, classification, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
-    /**
-     * @param searchModes
-     * @param queryString
-     * @param classification
-     * @param namedAreas
-     * @param distributionStatus
-     * @param languages
-     * @param highlightFragments
-     * @param pageSize
-     * @param pageNumber
-     * @param orderHints
-     * @param propertyPaths
-     * @return
-     * @throws CorruptIndexException
-     * @throws IOException
-     * @throws ParseException
-     * @throws LuceneMultiSearchException
+
+    /* (non-Javadoc)
      * @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaAndNamesByFullText(java.util.EnumSet, java.lang.String, eu.etaxonomy.cdm.model.taxon.Classification, java.util.Set, java.util.Set, java.util.List, boolean, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)
      */
     @Override
-    public Pager<SearchResult<TaxonBase>> findTaxaAndNamesByFullText(EnumSet<TaxaAndNamesSearchMode> searchModes, String queryString, Classification classification, Set<NamedArea> namedAreas, Set<PresenceAbsenceTermBase<?>> distributionStatus, List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException, LuceneMultiSearchException {
+    public Pager<SearchResult<TaxonBase>> findTaxaAndNamesByFullText(EnumSet<TaxaAndNamesSearchMode> searchModes,
+            String queryString, Classification classification, Set<NamedArea> namedAreas,
+            Set<PresenceAbsenceTerm> distributionStatus, List<Language> languages, boolean highlightFragments,
+            Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths)
+            throws CorruptIndexException, IOException, ParseException, LuceneMultiSearchException {
         return defaultTaxonService.findTaxaAndNamesByFullText(searchModes, queryString, classification, namedAreas, distributionStatus, languages, highlightFragments, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
index f509144b805281cc8c5a80eafafe9452b559bc03..0275cc47100a772f81bd429b74d96f82ddc37257 100644 (file)
@@ -46,18 +46,18 @@ public class CdmDataSourceRepository{
        private static final String CURRENT_DATASOURCE = "currentDataSource";
        private static final String CURRENT_DATASOURCE_POSTFIX = "currentDataSourcePostFix";
        private static final String DEFAULT_DATASOURCE_STATE_FILENAME = "datasource.xml";
-       
+
        private static final String DEFAULT_DATASOURCE_NAME = "cdm";
        private static final String DEFAULT_DATASOURCE_POSTFIX = CdmPersistentDataSource.DATASOURCE_BEAN_POSTFIX;
-       
+
        private static ICdmSource currentCdmSource;
        private static IMemento memento;
-       
+
        private static String lastUsedCdmSourceName;
        private static String lastUsedCdmSourcePostFix;
-       
-       
-       
+
+
+
        /**
         * <p>Getter for the field <code>lastUsedDataSourceName</code>.</p>
         *
@@ -65,12 +65,12 @@ public class CdmDataSourceRepository{
         */
        public static void updateLastUsedDataSource(){
                if(lastUsedCdmSourceName == null){
-                       memento = readMemento();                
+                       memento = readMemento();
                        lastUsedCdmSourceName = memento != null ? memento.getString(CURRENT_DATASOURCE) : DEFAULT_DATASOURCE_NAME;
                        lastUsedCdmSourcePostFix = memento != null ? memento.getString(CURRENT_DATASOURCE_POSTFIX) : DEFAULT_DATASOURCE_POSTFIX;
-                       
+
                }
-               
+
        }
 
        /**
@@ -84,7 +84,7 @@ public class CdmDataSourceRepository{
                return true;
        }
 
-       
+
        /**
         * <p>getAll</p>
         *
@@ -92,7 +92,7 @@ public class CdmDataSourceRepository{
         */
        public static List<ICdmSource> getAll() {
                List<ICdmSource> remoteSources = new ArrayList<ICdmSource>();
-               
+
                for(ICdmDataSource dataSource : CdmPersistentDataSource.getAllDataSources()){
                        try {
                                remoteSources.add(CdmPersistentDataSource.NewInstance(dataSource.getName()));
@@ -100,20 +100,20 @@ public class CdmDataSourceRepository{
                                MessagingUtils.error(CdmDataSourceRepository.class, "Could not find dataSource", e);
                        }
                }
-               
+
                try {
-                       for(ICdmRemoteSource remoteSource : CdmPersistentRemoteSource.getAllRemoteSources()){                   
+                       for(ICdmRemoteSource remoteSource : CdmPersistentRemoteSource.getAllRemoteSources()){
                                remoteSources.add(remoteSource);
                        }
                } catch (CdmRemoteSourceException e) {
                        MessagingUtils.error(CdmDataSourceRepository.class, "Error retrieving remote sources", e);
                }
-               
+
                // TODO sort by database name
-               
+
                return remoteSources;
        }
-       
+
        /**
         * <p>getDataSource</p>
         *
@@ -121,7 +121,7 @@ public class CdmDataSourceRepository{
         * @return a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
         */
        public static ICdmDataSource getDataSource(String name){
-               
+
                for(ICdmDataSource dataSource : CdmPersistentDataSource.getAllDataSources()){
                        try {
                                if(dataSource.getName().equals(name)){
@@ -131,22 +131,22 @@ public class CdmDataSourceRepository{
                                MessagingUtils.error(CdmDataSourceRepository.class, "Could not find dataSource", e);
                        }
                }
-               
+
                return null;
        }
-       
-               
+
+
        /**
         * <p>Getter for the field <code>currentDataSource</code>.</p>
         *
         * @return a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
-        * @throws CdmRemoteSourceException 
+        * @throws CdmRemoteSourceException
         */
        public static ICdmSource getCurrentCdmSource() throws CdmRemoteSourceException {
-               
+
                if (currentCdmSource == null) {
                        updateLastUsedDataSource();
-                       
+
                        if(lastUsedCdmSourceName == null) {
                                return null;
                        }
@@ -156,12 +156,9 @@ public class CdmDataSourceRepository{
                                        currentCdmSource = CdmPersistentDataSource.NewInstance(lastUsedCdmSourceName);
                                } catch (DataSourceNotFoundException e) {
                                        // fallback creates a new default
-                                       ICdmDataSource h2DataSource = CdmDataSource.NewH2EmbeddedInstance(
-                                                       DEFAULT_DATASOURCE_NAME, "sa", "", PreferencesUtil.getPreferredNomenclaturalCode());
-                                       save(h2DataSource.getName(), h2DataSource);
-                                       setCurrentCdmSource(h2DataSource);
+                                       setCurrentCdmSource(createDefaultH2DataSource());
                                }
-                       } else if (lastUsedCdmSourcePostFix.equals(CdmPersistentRemoteSource.REMOTESOURCE_BEAN_POSTFIX)) {                              
+                       } else if (lastUsedCdmSourcePostFix.equals(CdmPersistentRemoteSource.REMOTESOURCE_BEAN_POSTFIX)) {
                                currentCdmSource = CdmPersistentRemoteSource.NewInstance(lastUsedCdmSourceName);
                        } else {
                                throw new CdmRemoteSourceException("Unkown Cdm Source Type");
@@ -169,7 +166,19 @@ public class CdmDataSourceRepository{
                }
                return currentCdmSource;
        }
-       
+
+       /**
+        * Creates a default H2 CDM Data Source
+        *
+        * @return the newly created data source
+        */
+       public static ICdmDataSource createDefaultH2DataSource() {
+           ICdmDataSource h2DataSource = CdmDataSource.NewH2EmbeddedInstance(
+                DEFAULT_DATASOURCE_NAME, "sa", "", PreferencesUtil.getPreferredNomenclaturalCode());
+        save(h2DataSource.getName(), h2DataSource);
+        return h2DataSource;
+       }
+
        /**
         * <p>Setter for the field <code>currentDataSource</code>.</p>
         *
@@ -180,7 +189,7 @@ public class CdmDataSourceRepository{
                currentCdmSource = cdmSource;
                NomenclaturalCode dataSourceNomenclaturalCode = cdmSource.getNomenclaturalCode();
                NomenclaturalCode applicationNomenclaturalCode = PreferencesUtil.getPreferredNomenclaturalCode();
-               
+
                if( dataSourceNomenclaturalCode != null && ! dataSourceNomenclaturalCode.equals(applicationNomenclaturalCode)){
                        PreferencesUtil.setPreferredNomenclaturalCode(dataSourceNomenclaturalCode);
                        MessagingUtils.informationDialog("Nomenclatural Code Change", "The Datasource that was just " +
@@ -188,8 +197,8 @@ public class CdmDataSourceRepository{
                                        "The nomenclatural code was changed in the application.");
                }
                return true;
-       }       
-               
+       }
+
        /**
         * <p>changeDataSource</p>
         *
@@ -197,9 +206,9 @@ public class CdmDataSourceRepository{
         * @return a boolean.
         */
        public static boolean changeDataSource(final ICdmSource cdmSource) {
-               saveAsCurrentDatabaseToMemento(cdmSource);              
+               saveAsCurrentDatabaseToMemento(cdmSource);
                CdmStore.connect(cdmSource);
-               
+
                return true;
        }
 
@@ -209,24 +218,24 @@ public class CdmDataSourceRepository{
         * @param dataSource a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
         * @param strDataSourceName a {@link java.lang.String} object.
         * @return a {@link eu.etaxonomy.cdm.database.CdmPersistentDataSource} object.
-        * @throws CdmRemoteSourceException 
+        * @throws CdmRemoteSourceException
         */
        public static ICdmPersistentSource save(String strCdmSourceName, ICdmRemoteSource cdmSource) throws CdmRemoteSourceException {
-               return CdmPersistentRemoteSource.save(strCdmSourceName, cdmSource);             
+               return CdmPersistentRemoteSource.save(strCdmSourceName, cdmSource);
        }
-       
+
        /**
         * <p>save</p>
         *
         * @param dataSource a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
         * @param strDataSourceName a {@link java.lang.String} object.
         * @return a {@link eu.etaxonomy.cdm.database.CdmPersistentDataSource} object.
-        * @throws CdmRemoteSourceException 
+        * @throws CdmRemoteSourceException
         */
-       public static ICdmPersistentSource save(String strCdmSourceName, ICdmDataSource cdmSource)  {           
-               return CdmPersistentDataSource.save(strCdmSourceName, cdmSource);                               
+       public static ICdmPersistentSource save(String strCdmSourceName, ICdmDataSource cdmSource)  {
+               return CdmPersistentDataSource.save(strCdmSourceName, cdmSource);
        }
-       
+
        /**
         * <p>update</p>
         *
@@ -242,7 +251,7 @@ public class CdmDataSourceRepository{
                }
                return null;
        }
-       
+
        public static ICdmPersistentSource replace(String strCdmSourceName, ICdmDataSource cdmSource){
                try {
                        return CdmPersistentDataSource.replace(strCdmSourceName, cdmSource);
@@ -251,7 +260,7 @@ public class CdmDataSourceRepository{
                }
                return null;
        }
-       
+
        /**
         * <p>update</p>
         *
@@ -261,35 +270,35 @@ public class CdmDataSourceRepository{
         */
        public static ICdmPersistentSource update(String strCdmSourceName, ICdmRemoteSource cdmSource){
                try {
-                       return CdmPersistentRemoteSource.update(strCdmSourceName, cdmSource);   
+                       return CdmPersistentRemoteSource.update(strCdmSourceName, cdmSource);
                } catch (Exception e) {
                        MessagingUtils.error(CdmDataSourceRepository.class, "Error updating CDM Source", e);
-                       
+
                }
                return null;
        }
-       
+
        /*********************************************************
         * Memento Handling                                                                              *
         *********************************************************/
-       
+
        private static void saveAsCurrentDatabaseToMemento(ICdmSource cdmSource){
                if(memento == null) {
                        memento = readMemento();
                }
                memento.putString(CURRENT_DATASOURCE, cdmSource.getName());
-               
+
                // Set postfix to distinguish between data and remote sources
                if(cdmSource instanceof CdmPersistentRemoteSource) {
                        memento.putString(CURRENT_DATASOURCE_POSTFIX, CdmPersistentRemoteSource.REMOTESOURCE_BEAN_POSTFIX);
                } else {
                        memento.putString(CURRENT_DATASOURCE_POSTFIX, CdmPersistentDataSource.DATASOURCE_BEAN_POSTFIX);
                }
-               
-               
+
+
                saveMementoToFile(memento);
        }
-       
+
        /*
         * Answer the workbench state file.
         */
@@ -301,7 +310,7 @@ public class CdmDataSourceRepository{
                path = path.append(DEFAULT_DATASOURCE_STATE_FILENAME);
                return path.toFile();
        }
-       
+
        private static IMemento readMemento(){
                try {
                        return MementoHelper.readMementoFromFile(getCdmSourceStateFile());
@@ -309,14 +318,14 @@ public class CdmDataSourceRepository{
                        return initializeMemento();
                }
        }
-       
+
 
        private static IMemento initializeMemento() {
-               
+
                XMLMemento memento = XMLMemento.createWriteRoot(TAG_DATASOURCE);
                memento.putString(CURRENT_DATASOURCE, DEFAULT_DATASOURCE_NAME);
                saveMementoToFile(memento);
-               
+
                return readMemento();
        }
 
@@ -325,5 +334,5 @@ public class CdmDataSourceRepository{
         */
        private static IMemento saveMementoToFile(IMemento memento) {
                return MementoHelper.saveMementoToFile(memento, getCdmSourceStateFile());
-       }       
+       }
 }
index af6a0674be5f4dca96509a0a23a387abec4381a8..8b913c614db9f42905532f0758fc2d40c0a459de 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 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.
 */
@@ -36,7 +36,7 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.description.Distribution;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.description.QuantitativeData;
 import eu.etaxonomy.cdm.model.description.TaxonInteraction;
 import eu.etaxonomy.cdm.model.description.TextData;
@@ -55,7 +55,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class DescriptionHelper {
-       
+
        /**
         * Returns whatever the element's title cache equivalent is,
         * depending on its class.
@@ -64,7 +64,7 @@ public class DescriptionHelper {
         * @param language a {@link eu.etaxonomy.cdm.model.common.Language} object.
         * @return a {@link java.lang.String} object.
         */
-       public static String getCache(DescriptionElementBase element, 
+       public static String getCache(DescriptionElementBase element,
                        Language language) {
                String cache = null;
                if (element instanceof TextData) {
@@ -80,16 +80,16 @@ public class DescriptionHelper {
                        }else{
                                cache = "No taxon chosen";
                        }
-                       
+
                }
                if (element instanceof Distribution) {
                        Distribution distribution = (Distribution) element;
-                       
+
                        NamedArea area = distribution.getArea();
                        if(area != null){
                                cache =  area.getLabel();
-                               
-                               PresenceAbsenceTermBase<?> status = distribution.getStatus();
+
+                               PresenceAbsenceTerm status = distribution.getStatus();
                                if (status == null){
                                        cache += ", no status";
                                }else {
@@ -110,7 +110,7 @@ public class DescriptionHelper {
        public static String getCache(DescriptionElementBase element) {
                return getCache(element, CdmStore.getDefaultLanguage());
        }
-       
+
        /**
         * Set whatever the element's title cache equivalent is,
         * depending on its class.
@@ -130,7 +130,7 @@ public class DescriptionHelper {
                        return;
                }
                if (element instanceof TaxonInteraction) {
-                       
+
                }
                if(element instanceof Distribution){
                        MessagingUtils.warn(DescriptionHelper.class, "trying to set cache on distribution, don't know what to do at the moment.");
@@ -138,7 +138,7 @@ public class DescriptionHelper {
                }
                MessagingUtils.warn(DescriptionHelper.class, "No matching subclass found for DescriptionElementBase object, 'cache' not set.");
        }
-       
+
        /**
         * Set whatever the element's title cache equivalent is,
         * depending on its class, using the default language.
@@ -150,7 +150,7 @@ public class DescriptionHelper {
                        String value) {
                setCache(element, value, CdmStore.getDefaultLanguage());
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.referencingobjects.IReferencingObjectsService#getObjectDescription(java.lang.Object)
         */
@@ -182,7 +182,7 @@ public class DescriptionHelper {
                                }else{
                                        throw new IllegalStateException("Unknown ISourceable object for given OriginalSourceBase");
                                }
-                               
+
                                return CdmUtils.concat("; ", new String[]{originalSource.getIdNamespace(), originalSource.getIdInSource(), sourceObjectTitle});
                        }catch(LazyInitializationException e){
                                String result = "Error initializing title cache for ISourceable of an OriginalSourceBase";
@@ -194,7 +194,7 @@ public class DescriptionHelper {
                        return ((LanguageStringBase) element).getText();
                }
                if (element instanceof DescriptionElementBase) {
-                       return getCache((DescriptionElementBase) element);              
+                       return getCache((DescriptionElementBase) element);
                }
                if (element instanceof Marker) {
                        Marker marker = (Marker) element;
@@ -214,7 +214,7 @@ public class DescriptionHelper {
        public static String getObjectClassname(Object element) {
                return element.getClass().getSimpleName();
        }
-       
+
        /**
         * <p>getFeatureNodeContainerText</p>
         *
@@ -242,7 +242,7 @@ public class DescriptionHelper {
         */
        public static String getQuantitativeDataText(QuantitativeData element) {
                TextData textData = quantitativeDescriptionBuilder.build(element, getLanguageList());
-               
+
                return textData.getText(CdmStore.getDefaultLanguage());
        }
 
@@ -254,17 +254,17 @@ public class DescriptionHelper {
         */
        public static String getCategoricalDataText(CategoricalData element) {
                TextData textData = categoricalDescriptionBuilder.build(element, getLanguageList());
-               
+
                return textData.getText(CdmStore.getDefaultLanguage());
        }
-       
+
        private static List<Language> getLanguageList(){
                return Arrays.asList(new Language[]{CdmStore.getDefaultLanguage()});
        }
-       
+
        private static DescriptionBuilder<QuantitativeData> quantitativeDescriptionBuilder = new DefaultQuantitativeDescriptionBuilder();
        private static DescriptionBuilder<CategoricalData> categoricalDescriptionBuilder = new DefaultCategoricalDescriptionBuilder();
-       
+
 
        /**
         * <p>getDistributionText</p>
@@ -273,18 +273,18 @@ public class DescriptionHelper {
         * @return a {@link java.lang.String} object.
         */
        public static String getDistributionText(Distribution element) {
-               
+
                String text = "EMPTY";
-               
-               Distribution distribution = (Distribution) element;
-               
+
+               Distribution distribution = element;
+
                NamedArea area = distribution.getArea();
                if(area != null){
-                       
+
                        text = NamedArea.labelWithLevel(area, CdmStore.getDefaultLanguage());
-                       
-                       PresenceAbsenceTermBase<?> status = distribution.getStatus();
-                       
+
+                       PresenceAbsenceTerm status = distribution.getStatus();
+
                        if (status != null) {
                                text += ", " + status.getLabel();
                        }else{
@@ -308,15 +308,15 @@ public class DescriptionHelper {
                return "No title.";
        }
 
-       
-       
+
+
        /**
         * <p>getElementText</p>
         *
         * @param element a {@link eu.etaxonomy.cdm.model.description.TextData} object.
         * @return a {@link java.lang.String} object.
         */
-       public static  String getElementText(TextData element) {        
+       public static  String getElementText(TextData element) {
                String text = null;
                if(element.getFeature().equals(Feature.CITATION())){
                        text = "";
@@ -338,7 +338,7 @@ public class DescriptionHelper {
                }
                return CdmUtils.isEmpty(text) ? "No text provided" : text;
        }
-       
+
        /**
         * <p>getTaxonInteractionText</p>
         *
@@ -347,13 +347,13 @@ public class DescriptionHelper {
         */
        public static  String getTaxonInteractionText(TaxonInteraction element) {
                String text = "";
-               Taxon taxon2 = ((TaxonInteraction) element).getTaxon2();
+               Taxon taxon2 = element.getTaxon2();
                if(taxon2 != null && taxon2.getName() != null){
                        text = taxon2.getName().getTitleCache();
                }else{
                        text = "No taxon chosen";
                }
-               
+
                return text;
        }
 
@@ -388,10 +388,10 @@ public class DescriptionHelper {
                if (text == null || text.length() == 0) {
                        text = "No label provided";
                }
-               
+
                return "Description: " + text;
        }
-       
+
        /**
         * <p>getIndividualsAssociationText</p>
         *
@@ -423,11 +423,11 @@ public class DescriptionHelper {
                        return getCategoricalDataText((CategoricalData) element);
                }
                else if (element instanceof CommonTaxonName) {
-                       return getCommonNameText((CommonTaxonName) element);                    
+                       return getCommonNameText((CommonTaxonName) element);
                }
                else if (element instanceof Distribution) {
-                       return getDistributionText((Distribution) element);                     
-               }       
+                       return getDistributionText((Distribution) element);
+               }
                else if (element instanceof IndividualsAssociation) {
                        return getIndividualsAssociationText((IndividualsAssociation) element);
                }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationCloningWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationCloningWizardPage.java
deleted file mode 100644 (file)
index 02c1d12..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-// $Id$
-/**
- * Copyright (C) 2014 EDIT
- * 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.newWizard;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.molecular.Amplification;
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationCloningDetailElement;
-
-/**
- * @author pplitzner
- * @date 11.03.2014
- *
- */
-public class AmplificationCloningWizardPage extends AbstractCdmEntityWizardPage<Amplification> {
-
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param entity
-     */
-    public AmplificationCloningWizardPage(CdmFormFactory formFactory,
-            ConversationHolder conversation, Amplification entity) {
-        super(formFactory, conversation, entity);
-        setTitle("Amplification Cloning Data");
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.forms.AbstractCdmEntityWizardPage#checkComplete()
-     */
-    @Override
-    protected void checkComplete() {
-        setPageComplete(true);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
-     */
-    @Override
-    public AbstractCdmDetailElement<Amplification> createElement(ICdmFormElement rootElement) {
-        AmplificationCloningDetailElement detailElement = formFactory.createAmplificationCloningDetailElement(rootElement);
-        detailElement.setEntity(getEntity());
-        checkComplete();
-        return detailElement;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationGelPhotoWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationGelPhotoWizardPage.java
deleted file mode 100644 (file)
index 1fc4ecd..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-// $Id$
-/**
- * Copyright (C) 2014 EDIT
- * 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.newWizard;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.molecular.Amplification;
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGelPhotoDetailElement;
-
-/**
- * @author pplitzner
- * @date 11.03.2014
- *
- */
-public class AmplificationGelPhotoWizardPage extends AbstractCdmEntityWizardPage<Amplification> {
-
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param entity
-     */
-    public AmplificationGelPhotoWizardPage(CdmFormFactory formFactory,
-            ConversationHolder conversation, Amplification entity) {
-        super(formFactory, conversation, entity);
-        setTitle("Amplification Gel Photo");
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.forms.AbstractCdmEntityWizardPage#checkComplete()
-     */
-    @Override
-    protected void checkComplete() {
-        setPageComplete(true);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
-     */
-    @Override
-    public AbstractCdmDetailElement<Amplification> createElement(ICdmFormElement rootElement) {
-        AmplificationGelPhotoDetailElement detailElement = formFactory.createAmplificationGelPhotoDetailElement(rootElement);
-        detailElement.setEntity(getEntity());
-        checkComplete();
-        return detailElement;
-    }
-
-}
index df056f0470effa320303c8f0381eb188303e53a9..7457bb76d8172a2c1f3a4e7645ac5785186a0913 100644 (file)
@@ -11,13 +11,11 @@ package eu.etaxonomy.taxeditor.newWizard;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.molecular.Amplification;
-import eu.etaxonomy.cdm.model.molecular.Primer;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGeneralDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.PrimerGeneralDetailElement;
 
 /**
  * @author pplitzner
@@ -42,6 +40,8 @@ public class AmplificationGeneralWizardPage extends AbstractCdmEntityWizardPage<
      */
     @Override
     protected void checkComplete() {
+        //TODO: check for institution, staff and date
+        //one of them has to be set otherwise setPageComplete(false);
         setPageComplete(true);
     }
 
index fddcbbdc210d8ae245bbf8ba78a6bff3cc2ca1b1..e9f2eef6a52108b91be1330c83c9d92e2de35e4a 100644 (file)
@@ -21,18 +21,12 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class NewAmplificationWizard  extends AbstractNewEntityWizard<Amplification> {
 
     private AmplificationGeneralWizardPage amplificationGeneralPage;
-    private AmplificationCloningWizardPage amplificationCloningPage;
-    private AmplificationGelPhotoWizardPage amplificationGelPhotoWizardPage;
 
     /** {@inheritDoc} */
     @Override
     public void addPages() {
         amplificationGeneralPage = new AmplificationGeneralWizardPage(formFactory, getConversationHolder(), getEntity());
         addPage(amplificationGeneralPage);
-        amplificationCloningPage = new AmplificationCloningWizardPage(formFactory, getConversationHolder(), getEntity());
-        addPage(amplificationCloningPage);
-        amplificationGelPhotoWizardPage = new AmplificationGelPhotoWizardPage(formFactory, getConversationHolder(), getEntity());
-        addPage(amplificationGelPhotoWizardPage);
     }
 
     /** {@inheritDoc} */
@@ -52,8 +46,6 @@ public class NewAmplificationWizard  extends AbstractNewEntityWizard<Amplificati
     public void setEntity(Amplification entity) {
         super.setEntity(entity);
         amplificationGeneralPage.getDetailElement().setEntity(entity);
-        amplificationCloningPage.getDetailElement().setEntity(entity);
-        amplificationGelPhotoWizardPage.getDetailElement().setEntity(entity);
     }
 
     @Override
index e9967a006000d04c56ac0cb3ee379710d48b2d7d..6849014316f3ee9d65d1590c5769ca6c7eacdb61 100644 (file)
@@ -13,6 +13,7 @@ package eu.etaxonomy.taxeditor.newWizard;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
@@ -83,7 +84,10 @@ public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<SpecimenOr
         } else {
             if (SpecimenOrObservationType.Media.equals(specOrObsType)
                     || ((specOrObsType.getKindOf() != null) && specOrObsType.getKindOf().equals(SpecimenOrObservationType.Media))) {
-                   return MediaSpecimen.NewInstance(specOrObsType);
+                   MediaSpecimen mediaSpecimen = MediaSpecimen.NewInstance(specOrObsType);
+                   //a MediaSpecimen with no media attached does not make sense. Hence, we add one
+                mediaSpecimen.setMediaSpecimen(Media.NewInstance());
+                return mediaSpecimen;
             } else if (specOrObsType.equals(SpecimenOrObservationType.FieldUnit)) {
                 return FieldUnit.NewInstance();
             } else {
index 7493ff0b911d77a987b196cfa5b22ebe9aadfd3b..7e2c95d4d9af211c924667b207f1bdc2ba262a5f 100644 (file)
@@ -28,6 +28,7 @@ import java.util.UUID;
 import org.apache.commons.lang.StringUtils;
 import org.eclipse.equinox.internal.p2.ui.model.MetadataRepositoryElement;
 import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.window.Window;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.PlatformUI;
 
@@ -50,10 +51,10 @@ import eu.etaxonomy.cdm.strategy.match.DefaultMatchStrategy;
 import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
 import eu.etaxonomy.cdm.strategy.match.MatchException;
 import eu.etaxonomy.cdm.strategy.match.MatchMode;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.model.NomenclaturalCodeHelper;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 import eu.etaxonomy.taxeditor.ui.dialog.DefaultLanguageDialog;
 
@@ -426,15 +427,15 @@ public class PreferencesUtil implements IPreferenceKeys {
                                                        "The following has been set as your preferred nomenclatural code:\n\n\t"
                                                                        + NomenclaturalCodeHelper
                                                                                        .getDescription(code)
-                                                                       + "\n\nYou iour is not consistent throughout the application. For DescriptionElemts and also PolytomousKeyNode.Question and PolytomousKeyNode.Statement it shows only the languages where text is available whereas for PolytomousKeyNode.modyfingText it shows a strange list of about 10-20 (different for different nodes) most of them starting with can change the nomenclatural code at any time in the \"Preferences\" menu.");*/
+                                                                       + "\n\nYou can change the nomenclatural code at any time in the \"Preferences\" menu.");*/
                }
        }
 
        public static void checkDefaultLanguage(){
            if(PreferencesUtil.getPreferredDefaultLangugae() == null){
-              Shell shell = StoreUtil.getShell();
+              Shell shell = AbstractUtility.getShell();
               int open = new DefaultLanguageDialog(shell).open();
-              if(open == 0){//FIXME:window performed ok. Find variable for it
+              if(open == Window.OK){
                   PlatformUI.getWorkbench().restart();
               }
            }else{
index d71ae560b7b652cb2b530914da241c97ce31c930..5008036f04c896db47f806006f7cebef6e489440 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 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.
 */
@@ -12,7 +12,7 @@ package eu.etaxonomy.taxeditor.preference.menu;
 
 import org.eclipse.ui.IWorkbenchPreferencePage;
 
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 
 /**
  * <p>PresenceAbsenceMenuPreferences class.</p>
@@ -21,14 +21,14 @@ import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
  * @created 25.06.2009
  * @version 1.0
  */
-public class PresenceAbsenceMenuPreferences extends AbstractMenuPreferences<PresenceAbsenceTermBase> implements
+public class PresenceAbsenceMenuPreferences extends AbstractMenuPreferences<PresenceAbsenceTerm> implements
                IWorkbenchPreferencePage {
 
        /**
         * <p>Constructor for PresenceAbsenceMenuPreferences.</p>
         */
        public PresenceAbsenceMenuPreferences() {
-               super("Distribution Status Preferences", 
+               super("Distribution Status Preferences",
                                "Choose which distribution states should be shown.",
                                false);
        }
@@ -38,8 +38,8 @@ public class PresenceAbsenceMenuPreferences extends AbstractMenuPreferences<Pres
         */
        /** {@inheritDoc} */
        @Override
-       protected Class<PresenceAbsenceTermBase> getTermClass() {
-               return PresenceAbsenceTermBase.class;
+       protected Class<PresenceAbsenceTerm> getTermClass() {
+               return PresenceAbsenceTerm.class;
        }
-       
+
 }
index fe8016fc1f7a565f868798730d0b4db3e26cd607..5896718b8b4f260715c4d45729ded9fdb301784a 100644 (file)
@@ -24,10 +24,8 @@ import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.common.TermVocabulary;
-import eu.etaxonomy.cdm.model.description.AbsenceTerm;
 import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
-import eu.etaxonomy.cdm.model.description.PresenceTerm;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
@@ -227,17 +225,16 @@ public class TermStore {
                        }
 
                });
-               termStoreEdgeCases.add(new ITermStoreEdgeCase<PresenceAbsenceTermBase>() {
+               termStoreEdgeCases.add(new ITermStoreEdgeCase<PresenceAbsenceTerm>() {
 
                        @Override
-                       public Class<PresenceAbsenceTermBase> getTermClass() {
-                               return PresenceAbsenceTermBase.class;
+                       public Class<PresenceAbsenceTerm> getTermClass() {
+                               return PresenceAbsenceTerm.class;
                        }
 
                        @Override
-                       public List<PresenceAbsenceTermBase> getTerms() {
-                               List presenceAbsenceTerms = TermStore.getTermsFromService(PresenceTerm.class, null);
-                               presenceAbsenceTerms.addAll(TermStore.getTermsFromService(AbsenceTerm.class, null));
+                       public List<PresenceAbsenceTerm> getTerms() {
+                               List<PresenceAbsenceTerm> presenceAbsenceTerms = TermStore.getTermsFromService(PresenceAbsenceTerm.class, null);
 
                                return presenceAbsenceTerms;
                        }
index f2e1cd211d05ddd31629b5080c7d124d83d71416..8f8af98791929443405592973c49f9abf6f608d0 100644 (file)
@@ -70,7 +70,7 @@ AbstractFilteredCdmResourceSelectionDialog<Amplification> {
     @Override
     protected String getTitle(Amplification cdmObject) {
         if(cdmObject!=null){
-            return cdmObject.getDescription();
+            return cdmObject.getLabelCache();
         }
         return super.getTitle(cdmObject);
     }
index e728ad0c1563e9b7b0fe0ac599e9c575386b39e7..54a28eb90e8da393a1672ef28cd52aa29d2a9c58 100644 (file)
@@ -16,6 +16,7 @@ import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.Institution;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
 import eu.etaxonomy.cdm.model.common.Group;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
@@ -72,6 +73,10 @@ public class SelectionDialogFactory {
                if(clazz.equals(Team.class)){
                        return (T) TeamSelectionDialog.select(shell, conversation, (Team) currentSelection);
                }
+               if(clazz.equals(TeamOrPersonBase.class)){
+                   //TODO: add TeamOrPersonBaseSelectionDialog (see ticket #4545)
+                   return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection);
+               }
                if(clazz.equals(AgentBase.class)){
                        return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection);
                }
index bc2fe8be8386bdf016fac18990643e582f7e7a52..be80e262f9e9745bf89ddb62e4e573a9064fac3a 100644 (file)
@@ -16,8 +16,8 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
-import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.jface.window.Window;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -73,7 +73,7 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                        WizardDialog dialog = new WizardDialog(getLayoutComposite()
                                        .getShell(), wizard);
 
-                       if (dialog.open() == IStatus.OK) {
+                       if (dialog.open() == Window.OK) {
                                combo_language.setTerms(getLanguages());
                                updateControls();
                        }
index 33bf05da6975c95a5c611b880d7b16d0095b5a86..676990fa70defdd0db934fe445adaef93b39f8a6 100644 (file)
@@ -11,7 +11,7 @@
 package eu.etaxonomy.taxeditor.ui.section.description.detail;
 
 import eu.etaxonomy.cdm.model.description.Distribution;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -29,7 +29,7 @@ public class DistributionDetailElement extends
                AbstractDetailedDescriptionDetailElement<Distribution> {
 
        private EntitySelectionElement<NamedArea> selection_namedArea;
-       private TermComboElement<PresenceAbsenceTermBase> combo_presenceAbsence;
+       private TermComboElement<PresenceAbsenceTerm> combo_presenceAbsence;
 
 
        /**
@@ -52,7 +52,7 @@ public class DistributionDetailElement extends
                selection_namedArea = formFactory.createSelectionElement(NamedArea.class, getConversationHolder(),
                                formElement, "Area",
                                entity.getArea(), EntitySelectionElement.NOTHING, style);
-        combo_presenceAbsence = formFactory.createTermComboElement(PresenceAbsenceTermBase.class, this, "Distribution Status", entity.getStatus(), style);
+        combo_presenceAbsence = formFactory.createTermComboElement(PresenceAbsenceTerm.class, this, "Distribution Status", entity.getStatus(), style);
 
        }
 
index b8f75fddae0aaf913a180604cef7622ca426fddf..30aa76de0429418b90d227a7a009f92036a9f705 100644 (file)
@@ -21,7 +21,7 @@ import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.cdm.common.UriUtils;
 import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
@@ -102,7 +102,7 @@ public class FeatureDistributionDetailElement extends AbstractCdmDetailElement<F
         */
        private String getMapUriString(FeatureNodeContainer container){
                String accessPoint = PreferencesUtil.getMapServiceAccessPoint();
-               Map<PresenceAbsenceTermBase<?>, java.awt.Color> presenceAbsenceTermColors = null;
+               Map<PresenceAbsenceTerm, java.awt.Color> presenceAbsenceTermColors = null;
                // FIXME due to a bug in the rest map service we have to ensure that width will always be an even number
                // image.calculateWidth() % 2 == 1 ? image.calculateWidth() + 1 :
                int width = image.calculateWidth();
index eca547b688d4c9bd6e72f16641ef13adaf5cadfd..a61bfdc818e02f8b83353f1b8d75faf4b25efee9 100644 (file)
@@ -7,7 +7,6 @@ import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
-import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -81,7 +80,7 @@ public class MediaMetaElement extends AbstractEntityCollectionElement<Media> {
         this.entity = element;
         mediaDetailElement.setEntity(element);
 
-        selection_artist.setEntity((TeamOrPersonBase<?>) HibernateProxyHelper
+        selection_artist.setEntity((AgentBase<?>) HibernateProxyHelper
                 .deproxy(element.getArtist()));
 
         text_description.setLanguageString(element.getDescription(CdmStore
index 17d1f305b37dbebd38d43aa7131d7d02844a3e98..e6c9d61042f3506e8c5dc40a54652b6638260f70 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
  * Copyright (C) 2007 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.
  */
@@ -12,41 +12,37 @@ package eu.etaxonomy.taxeditor.ui.section.name;
 
 import java.util.Arrays;
 
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.name.NonViralName;
-import eu.etaxonomy.taxeditor.model.AuthorHelper;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
-import eu.etaxonomy.taxeditor.ui.selection.NomenclaturalAuthorTeamSelectionElement;
-import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
  * <p>
  * AuthorshipDetailElement class.
  * </p>
- * 
+ *
  * @author n.hoffmann
  * @created Mar 4, 2010
  * @version 1.0
  */
 public class AuthorshipDetailElement extends
-       AbstractIdentifiableEntityDetailElement<NonViralName> implements
-               IEnableableFormElement {
-
-       private NomenclaturalAuthorTeamSelectionElement selection_exBasionymAuthorTeam;
-       private NomenclaturalAuthorTeamSelectionElement selection_basionymAuthorTeam;
-       private NomenclaturalAuthorTeamSelectionElement selection_exCombinationAuthorTeam;
-       private NomenclaturalAuthorTeamSelectionElement selection_combinationAuthorTeam;
+       AbstractIdentifiableEntityDetailElement<NonViralName> {
 
+    private EntitySelectionElement<TeamOrPersonBase> selectionExBasionymAuthor;
+    private EntitySelectionElement<TeamOrPersonBase> selectionBasionymAuthor;
+    private EntitySelectionElement<TeamOrPersonBase> selectionExCombinationAuthor;
+    private EntitySelectionElement<TeamOrPersonBase> selectionCombinationAuthor;
        /**
         * <p>
         * Constructor for AuthorshipDetailElement.
         * </p>
-        * 
+        *
         * @param cdmFormFactory
         *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
         *            object.
@@ -68,35 +64,32 @@ public class AuthorshipDetailElement extends
                toggleable_cache = formFactory.createToggleableTextField(this,
                                "Authorship Cache", entity.getAuthorshipCache(),
                                entity.isProtectedAuthorshipCache(), style);
-               
+
                //TODO RL
                if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){
                        toggleable_cache.setVisible(false);
                }
-               selection_combinationAuthorTeam = formFactory.createNomenclaturalAuthorTeamSelectionElement(
+               selectionCombinationAuthor = formFactory.createSelectionElement(TeamOrPersonBase.class,
                                getConversationHolder(),
                                formElement, "Author",
-                               AuthorHelper.getAuthor(entity.getCombinationAuthorTeam()),
+                               entity.getCombinationAuthorTeam(),
                                EntitySelectionElement.ALL, style);
-               addElement(selection_combinationAuthorTeam);
-               selection_exCombinationAuthorTeam = formFactory.createNomenclaturalAuthorTeamSelectionElement(
+               addElement(selectionCombinationAuthor);
+               selectionExCombinationAuthor = formFactory.createSelectionElement(TeamOrPersonBase.class,
                                getConversationHolder(),
                                formElement, "Ex Author",
-                               AuthorHelper.getAuthor(entity.getExCombinationAuthorTeam()),
+                               entity.getExCombinationAuthorTeam(),
                                EntitySelectionElement.ALL, style);
-               addElement(selection_exCombinationAuthorTeam);
-               selection_basionymAuthorTeam = formFactory.createNomenclaturalAuthorTeamSelectionElement(
-                               getConversationHolder(),
-                               formElement, "Basionym Author",
-                               AuthorHelper.getAuthor(entity.getBasionymAuthorTeam()),
-                               EntitySelectionElement.ALL, style);
-               addElement(selection_basionymAuthorTeam);
-               selection_exBasionymAuthorTeam = formFactory.createNomenclaturalAuthorTeamSelectionElement(
-                               getConversationHolder(),
-                               formElement, "Ex Basionym Author",
-                               AuthorHelper.getAuthor(entity.getExBasionymAuthorTeam()),
-                               EntitySelectionElement.ALL, style);
-               addElement(selection_exBasionymAuthorTeam);
+               addElement(selectionExCombinationAuthor);
+               selectionBasionymAuthor = formFactory.createSelectionElement(TeamOrPersonBase.class, getConversationHolder(),
+                formElement, "Basionym Author", entity.getBasionymAuthorTeam(),
+                EntitySelectionElement.ALL, style);
+               addElement(selectionBasionymAuthor);
+               selectionExBasionymAuthor = formFactory.createSelectionElement(TeamOrPersonBase.class, getConversationHolder(),
+                       formElement, "Ex Basionym Author", entity.getExBasionymAuthorTeam(),
+                       EntitySelectionElement.ALL, style);
+
+               addElement(selectionExBasionymAuthor);
        }
 
        /** {@inheritDoc} */
@@ -105,7 +98,7 @@ public class AuthorshipDetailElement extends
                if (getEntity() == null) {
                        setEntity(NonViralName.NewInstance(null));
                }
-               
+
                super.updateContent();
                toggleable_cache.setEnabled(getEntity().isProtectedAuthorshipCache());
 
@@ -127,18 +120,21 @@ public class AuthorshipDetailElement extends
                                setIrrelevant(toggleable_cache.getState(),
                                                Arrays.asList(new Object[] { toggleable_cache }));
                        }
-               } else if (eventSource == selection_combinationAuthorTeam) {
+               } else if (eventSource == selectionExBasionymAuthor) {
+                   getEntity().setCombinationAuthorTeam(
+                           selectionExBasionymAuthor.getSelection());
+               } else if (eventSource == selectionCombinationAuthor) {
                        getEntity().setCombinationAuthorTeam(
-                                       selection_combinationAuthorTeam.getSelection());
-               } else if (eventSource == selection_exCombinationAuthorTeam) {
+                                       selectionCombinationAuthor.getSelection());
+               } else if (eventSource == selectionExCombinationAuthor) {
                        getEntity().setExCombinationAuthorTeam(
-                                       selection_exCombinationAuthorTeam.getSelection());
-               } else if (eventSource == selection_basionymAuthorTeam) {
+                                       selectionExCombinationAuthor.getSelection());
+               } else if (eventSource == selectionBasionymAuthor) {
                        getEntity().setBasionymAuthorTeam(
-                                       selection_basionymAuthorTeam.getSelection());
-               } else if (eventSource == selection_exBasionymAuthorTeam) {
+                                       selectionBasionymAuthor.getSelection());
+               } else if (eventSource == selectionExBasionymAuthor) {
                        getEntity().setExBasionymAuthorTeam(
-                                       selection_exBasionymAuthorTeam.getSelection());
+                                       selectionExBasionymAuthor.getSelection());
                }
 
 //             if (eventSource != toggleable_cache) {
@@ -152,7 +148,7 @@ public class AuthorshipDetailElement extends
                        firePropertyChangeEvent(new CdmPropertyChangeEvent(
                                        getParentElement(), null));
        }
-       
+
        @Override
        public void updateToggleableCacheField() {
                if(! getEntity().isProtectedAuthorshipCache()){
index 665e6e12a781223e90751f6134799ac6928522d7..25f24e317b0e0687c21b88028e628462531e0f70 100644 (file)
@@ -16,10 +16,9 @@ import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
 import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.GatheringEventUnitElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
@@ -54,6 +53,7 @@ public class DerivedUnitGeneralDetailElement extends
        private EntitySelectionElement<Collection> selection_collection;
        private TextWithLabelElement text_accessionNumber;
        private GatheringEventUnitElement element_elevation;
+       private CheckboxElement checkIsPublish;
 
 
        /**
@@ -78,7 +78,7 @@ public class DerivedUnitGeneralDetailElement extends
                toggleableText_titleCache = formFactory.createToggleableTextField(
                                formElement, "Title Cache", entity.getTitleCache(),
                                entity.isProtectedTitleCache(), style);
-        //TODO for DerivateEditor do not use facade anyore to avoid this special case handling #4539
+        //TODO for DerivateEditor do not use facade anymore to avoid this special case handling #4539
                if(showOnlyDerivedUnitData){
                    toggleableText_titleCache.setEnabled(false);
                }
@@ -114,6 +114,7 @@ public class DerivedUnitGeneralDetailElement extends
                text_accessionNumber = formFactory.createTextWithLabelElement(
                                formElement, "Accession Number", entity.getAccessionNumber(),
                                style);
+        checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
 
        }
 
@@ -151,13 +152,15 @@ public class DerivedUnitGeneralDetailElement extends
                        getEntity().setAccessionNumber(text_accessionNumber.getText());
                } else if (eventSource == combo_specorobstype) {
                        getEntity().setType(combo_specorobstype.getSelection());
+               } else if (eventSource == checkIsPublish) {
+                   getEntity().innerDerivedUnit().setPublish(checkIsPublish.getSelection());
                }
 
                if (eventSource != toggleableText_titleCache) {
                        toggleableText_titleCache.setText(getEntity().getTitleCache());
                }
        }
-       
+
     public void setShowOnlyDerivedUnitData(boolean showOnlyDerivedUnitData) {
         this.showOnlyDerivedUnitData = showOnlyDerivedUnitData;
     }
index e127f9dd8b9aad7111a113a9a9627383ad8bf05f..e511bf6eb6af14dead8e3e255d3fbf3685a16c34 100644 (file)
@@ -20,6 +20,7 @@ import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.GatheringEventUnitElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
@@ -51,6 +52,7 @@ public class FieldUnitGeneralDetailElement extends AbstractCdmDetailElement<Deri
     private EntitySelectionElement<AgentBase> selection_collector;
     private TextWithLabelElement text_collectingNumber;
     private GatheringEventUnitElement element_elevation;
+    private CheckboxElement checkIsPublish;
 
     /**
      * @param formFactory
@@ -93,6 +95,7 @@ public class FieldUnitGeneralDetailElement extends AbstractCdmDetailElement<Deri
                 "Collector", entity.getCollector(), EntitySelectionElement.ALL, style);
         text_collectingNumber = formFactory.createTextWithLabelElement(formElement, "Collecting number",
                 entity.getFieldNumber(), style);
+        checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
     }
 
     /*
@@ -123,6 +126,8 @@ public class FieldUnitGeneralDetailElement extends AbstractCdmDetailElement<Deri
             getEntity().setFieldNumber(text_collectingNumber.getText());
         } else if (eventSource == combo_specorobstype) {
             getEntity().setType(combo_specorobstype.getSelection());
+        } else if (eventSource == checkIsPublish) {
+            getEntity().innerFieldUnit().setPublish(checkIsPublish.getSelection());
         }
 
         if (eventSource != toggleableText_titleCache) {
index 941e5dbf490f8560b900f385fddf291fe772f603..f44bccdb3d5fb2ba5c2ae907ef9e6ed4ddfc34bf 100644 (file)
@@ -12,7 +12,7 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.TermType;
-import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.cdm.model.molecular.AmplificationResult;
 import eu.etaxonomy.cdm.model.molecular.Cloning;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -27,7 +27,7 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  * @date 15.01.2014
  *
  */
-public class AmplificationCloningDetailElement  extends AbstractCdmDetailElement<Amplification> {
+public class AmplificationCloningDetailElement extends AbstractCdmDetailElement<AmplificationResult> {
     private TextWithLabelElement textCloningStrain;
     private TimePeriodElement date;
     private EntitySelectionElement<AgentBase> selectionCloningStaff;
@@ -50,7 +50,7 @@ public class AmplificationCloningDetailElement  extends AbstractCdmDetailElement
      * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
      */
     @Override
-    protected void createControls(ICdmFormElement formElement, Amplification entity, int style) {
+    protected void createControls(ICdmFormElement formElement, AmplificationResult entity, int style) {
         Cloning cloning = entity.getCloning();
         textCloningStrain = formFactory.createTextWithLabelElement(formElement, "Cloning Strain", cloning==null?"":cloning.getStrain(), style);
         date = formFactory.createTimePeriodElement(formElement, "Cloning Date", cloning==null?null:cloning.getTimeperiod(), style);
index b4b2066a5b6d49edcce813136785f5f764517c4f..0de960b8a518fce45964a743d967dd17779719cc 100644 (file)
@@ -12,7 +12,7 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 import org.eclipse.jface.viewers.ISelectionProvider;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.cdm.model.molecular.AmplificationResult;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -23,7 +23,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  * @date 15.01.2014
  *
  */
-public class AmplificationCloningDetailSection extends AbstractCdmDetailSection<Amplification> {
+public class AmplificationCloningDetailSection extends AbstractCdmDetailSection<AmplificationResult> {
 
     /**
      * @param formFactory
@@ -51,7 +51,7 @@ public class AmplificationCloningDetailSection extends AbstractCdmDetailSection<
      * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
      */
     @Override
-    protected AbstractCdmDetailElement<Amplification> createCdmDetailElement(AbstractCdmDetailSection<Amplification> parentElement, int style) {
+    protected AbstractCdmDetailElement<AmplificationResult> createCdmDetailElement(AbstractCdmDetailSection<AmplificationResult> parentElement, int style) {
         return formFactory.createAmplificationCloningDetailElement(parentElement);
     }
 
index ee60c70c9e212c0dc3d9630ead4da10e5e9e2887..7bf2e9f5519fe5a3da3250bfa134eaace0e8052a 100644 (file)
@@ -14,7 +14,7 @@ import java.util.Collections;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.cdm.model.molecular.AmplificationResult;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
@@ -24,7 +24,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
  * @date 26.02.2014
  *
  */
-public class AmplificationGelPhotoCollectionDetailSection extends AbstractEntityCollectionSection<Amplification, Media> {
+public class AmplificationGelPhotoCollectionDetailSection extends AbstractEntityCollectionSection<AmplificationResult, Media> {
 
     /**
      * @param formFactory
@@ -44,7 +44,7 @@ public class AmplificationGelPhotoCollectionDetailSection extends AbstractEntity
      * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
      */
     @Override
-    public Collection<Media> getCollection(Amplification entity) {
+    public Collection<Media> getCollection(AmplificationResult entity) {
         if(entity.getGelPhoto()!=null){
             return Collections.singleton(entity.getGelPhoto());
         }
index 8c0b4559e6d7bca98baf6d15a5f0c69e07da5ce3..b6c96c8e1d80d4f0c47ba2606f92a0226caa98c1 100644 (file)
@@ -9,7 +9,7 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
-import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.cdm.model.molecular.AmplificationResult;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
@@ -20,7 +20,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  * @date 15.01.2014
  *
  */
-public class AmplificationGelPhotoDetailElement  extends AbstractCdmDetailElement<Amplification> {
+public class AmplificationGelPhotoDetailElement  extends AbstractCdmDetailElement<AmplificationResult> {
     private AmplificationGelPhotoCollectionDetailSection sectionGelPhoto;
 
     /**
@@ -39,7 +39,7 @@ public class AmplificationGelPhotoDetailElement  extends AbstractCdmDetailElemen
      * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
      */
     @Override
-    protected void createControls(ICdmFormElement formElement, Amplification entity, int style) {
+    protected void createControls(ICdmFormElement formElement, AmplificationResult entity, int style) {
         sectionGelPhoto = formFactory.createAmplificationGelPhotoCollectionDetailSection(getConversationHolder(), formElement, style);
         sectionGelPhoto.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         sectionGelPhoto.setEntity(entity);
index c4ee24e2102497fd9e8161b4bc63369cfeba60ca..942842f21c991f99fd989e5ce7dd3110a0b713fa 100644 (file)
@@ -13,7 +13,6 @@ import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.Institution;
 import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.TermType;
-import eu.etaxonomy.cdm.model.common.TimePeriod;
 import eu.etaxonomy.cdm.model.molecular.Amplification;
 import eu.etaxonomy.cdm.model.molecular.Primer;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
@@ -59,10 +58,9 @@ public class AmplificationGeneralDetailElement extends AbstractCdmDetailElement<
      */
     @Override
     protected void createControls(ICdmFormElement formElement, Amplification entity, int style) {
-        textDesignation = formFactory.createTextWithLabelElement(formElement, "Designation", entity.getDescription(), style);
+        textDesignation = formFactory.createTextWithLabelElement(formElement, "Designation", entity.getLabelCache(), style);
         textDesignation.setEnabled(false);
-        //TODO institution
-//        selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", entity.getInstitution(), EntitySelectionElement.ALL, style);
+        selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", entity.getInstitution(), EntitySelectionElement.ALL, style);
         selectionAmplificationStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Amplification staff", entity.getActor(), EntitySelectionElement.ALL, style);
         dateAmplification = formFactory.createTimePeriodElement(formElement, "Date", entity.getTimeperiod(), style);
         comboMarker = formFactory.createDefinedTermComboElement(TermType.DnaMarker, formElement, "DNA Marker", entity.getDnaMarker(), style);
@@ -72,60 +70,6 @@ public class AmplificationGeneralDetailElement extends AbstractCdmDetailElement<
         AnnotationSection annotationSection = formFactory.createAnnotationSection(getConversationHolder(), formElement, style);
         annotationSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         annotationSection.setEntity(entity);
-
-        updateDesignationText();
-    }
-
-    private void updateDesignationText(){
-        String institutionName = "";
-        String staffName = "";
-        String dnaMarkerString = "";
-        String dateString = "";
-
-        //retrieve data
-        //TODO institution
-//        Institution selection = selectionInstitution.getSelection();
-//        if(selection!=null){
-//            institutionName = selection.getName();
-//        }
-        AgentBase staff = selectionAmplificationStaff.getSelection();
-        if(staff!=null){
-            staffName = staff.getTitleCache();
-        }
-        DefinedTerm dnaMarker = comboMarker.getSelection();
-        if(dnaMarker!=null){
-            dnaMarkerString = dnaMarker.generateTitle();
-        }
-        TimePeriod timePeriod = dateAmplification.getTimePeriod();
-        if(timePeriod!=null){
-            dateString = timePeriod.toString()!=null?timePeriod.toString():"";
-        }
-
-        //assemble string
-        String designation = "";
-        if(!institutionName.equals("")){
-            designation += institutionName;
-        }
-        if(!staffName.equals("")){
-            if(!designation.equals("")){
-                designation += "_";
-            }
-            designation += staffName;
-        }
-        if(!dnaMarkerString.equals("")){
-            if(!designation.equals("")){
-                designation += "_";
-            }
-            designation += dnaMarkerString;
-        }
-        if(!dateString.equals("")){
-            if(!designation.equals("")){
-                designation += "_";
-            }
-            designation += dateString;
-        }
-        textDesignation.setText(designation);
-        getEntity().setDescription(designation);
     }
 
     /*
@@ -142,20 +86,15 @@ public class AmplificationGeneralDetailElement extends AbstractCdmDetailElement<
         }
         else if(eventSource==comboMarker){
             getEntity().setDnaMarker(comboMarker.getSelection());
-            updateDesignationText();
         }
         else if(eventSource==dateAmplification){
             getEntity().setTimeperiod(dateAmplification.getTimePeriod());
-            updateDesignationText();
         }
         else if(eventSource==selectionAmplificationStaff){
             getEntity().setActor(selectionAmplificationStaff.getEntity());
-            updateDesignationText();
         }
         else if(eventSource==selectionInstitution){
-            //TODO institution
-//            getEntity().setInstitution(selectionInstitution.getSelection());
-            updateDesignationText();
+            getEntity().setInstitution(selectionInstitution.getSelection());
         }
         else if(eventSource==selectionPrimerFW){
             getEntity().setForwardPrimer(selectionPrimerFW.getSelection());
@@ -163,5 +102,7 @@ public class AmplificationGeneralDetailElement extends AbstractCdmDetailElement<
         else if(eventSource==selectionPrimerRW){
             getEntity().setReversePrimer(selectionPrimerRW.getSelection());
         }
+        getEntity().updateCache();
+        textDesignation.setText(getEntity().getLabelCache());
     }
 }
\ No newline at end of file
index dd1faa70e9e7c599c5ec2a82f04d548752947bb8..2cbf45f6bee259a6eac4a1096ad76c94a78d630d 100644 (file)
@@ -18,6 +18,7 @@ import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
@@ -34,10 +35,11 @@ public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaS
 
     private EntitySelectionElement<Institution> selectionInstitution;
     private EntitySelectionElement<AgentBase> selectionStaff;
-    private TimePeriodElement datePreservationDate;
+    private TimePeriodElement datePreparationDate;
     private NumberWithLabelElement numberPreservationTemperature;
     private TermComboElement<DefinedTerm> comboMaterialOrMethods;
     private TextWithLabelElement textBarcode;
+    private CheckboxElement checkIsPublish;
 
     /**
      * @param formFactory
@@ -60,7 +62,7 @@ public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaS
         AgentBase<?> staff = null;
         TimePeriod preparationDate = null;
         if(entity.getDerivedFrom()!=null){
-//            institution = entity.getDerivedFrom().getInstitution();
+            institution = entity.getDerivedFrom().getInstitution();
             staff = entity.getDerivedFrom().getActor();
             preparationDate = entity.getDerivedFrom().getTimeperiod();
         }
@@ -71,13 +73,13 @@ public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaS
             temperature = entity.getPreservation().getTemperature();
             definedMaterialOrMethod = entity.getPreservation().getDefinedMaterialOrMethod();
         }
-        //TODO institution
-//        selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", staff, EntitySelectionElement.ALL, style);
+        selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", institution, EntitySelectionElement.ALL, style);
         selectionStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Staff", staff, EntitySelectionElement.ALL, style);
-        datePreservationDate = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
+        datePreparationDate = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
         numberPreservationTemperature = formFactory.createNumberTextWithLabelElement(formElement, "Preservation Temp. [C°]", temperature, style);
         comboMaterialOrMethods = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Materials & Methods", definedMaterialOrMethod, style);
         textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
+        checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
 
     }
 
@@ -90,11 +92,20 @@ public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaS
      */
     @Override
     public void handleEvent(Object eventSource) {
-        if(eventSource==datePreservationDate){
-            addPreservationMethod().setTimeperiod(datePreservationDate.getTimePeriod());
+        if(eventSource==datePreparationDate){
+            if(getEntity().getDerivedFrom()!=null){
+                getEntity().getDerivedFrom().setTimeperiod(datePreparationDate.getTimePeriod());
+            }
+        }
+        else if(eventSource==selectionInstitution){
+            if(getEntity().getDerivedFrom()!=null){
+                getEntity().getDerivedFrom().setInstitution(selectionInstitution.getSelection());
+            }
         }
         else if(eventSource==selectionStaff){
-            addPreservationMethod().setActor(selectionStaff.getSelection());
+            if(getEntity().getDerivedFrom()!=null){
+                getEntity().getDerivedFrom().setActor(selectionStaff.getSelection());
+            }
         }
         else if(eventSource==numberPreservationTemperature){
             addPreservationMethod().setTemperature(numberPreservationTemperature.getDouble());
@@ -105,6 +116,9 @@ public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaS
         else if(eventSource==textBarcode){
             getEntity().setBarcode(textBarcode.getText());
         }
+        else if(eventSource==checkIsPublish){
+            getEntity().setPublish(checkIsPublish.getSelection());
+        }
     }
 
     private PreservationMethod addPreservationMethod(){
index da429331e916ea70ce080e7f115b1afefd4d1f19..4a997e34266614adf0e54fba1c2d36ee21707796 100644 (file)
@@ -10,6 +10,7 @@
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.molecular.Primer;
 import eu.etaxonomy.cdm.model.molecular.SequenceString;
 import eu.etaxonomy.cdm.model.reference.Reference;
@@ -56,14 +57,13 @@ public class PrimerGeneralDetailElement extends AbstractCdmDetailElement<Primer>
     @Override
     protected void createControls(ICdmFormElement formElement, Primer entity, int style) {
         textPrimerName = formFactory.createTextWithLabelElement(formElement, "Primer Name", entity.getLabel(), style);
-        String sequenceString = "";
+        String sequenceString = null;
         if(entity.getSequence()!=null){
             sequenceString = entity.getSequence().getString();
         }
         textPrimerSequence = formFactory.createTextWithLabelElement(formElement, "Primer seq. 5'->3'", sequenceString, style);
 
-        //TODO dnaMarker
-//        comboMarker = formFactory.createDefinedTermComboElement(TermType.DnaMarker, formElement, "DNA Marker", entity.getDnaMarker(), style);
+        comboMarker = formFactory.createDefinedTermComboElement(TermType.DnaMarker, formElement, "DNA Marker", entity.getDnaMarker(), style);
 
         selectionReference = formFactory
                 .createSelectionElement(Reference.class,
@@ -89,8 +89,7 @@ public class PrimerGeneralDetailElement extends AbstractCdmDetailElement<Primer>
             getEntity().setLabel(textPrimerName.getText());
         }
         else if(eventSource==comboMarker){
-            //TODO dnaMarker
-//            getEntity().setDnaMarker(comboMarker.getSelection());
+            getEntity().setDnaMarker(comboMarker.getSelection());
         }
         else if(eventSource==textPrimerSequence){
             SequenceString sequenceString = getEntity().getSequence();
index 4c85ed548547f5e3230df15a836e59c37d687133..02cff91ee52fbb1f580bb0836d2aa9e1ab81b4ce 100644 (file)
@@ -10,6 +10,7 @@
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import eu.etaxonomy.cdm.model.molecular.Amplification;
+import eu.etaxonomy.cdm.model.molecular.AmplificationResult;
 import eu.etaxonomy.cdm.model.molecular.Primer;
 import eu.etaxonomy.cdm.model.molecular.SingleRead;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -47,11 +48,24 @@ public class SingleReadGeneralDetailElement extends AbstractCdmDetailElement<Sin
     @Override
     protected void createControls(ICdmFormElement formElement, SingleRead entity, int style) {
         selectionPrimer = formFactory.createSelectionElement(Primer.class, getConversationHolder(), formElement, "Primer", entity.getPrimer(), EntitySelectionElement.ALL, style);
-        selectionAmplification = formFactory.createSelectionElement(Amplification.class, getConversationHolder(), formElement, "Amplification", entity.getAmplification(), EntitySelectionElement.ALL, style);
+        AmplificationResult amplificationResult = entity.getAmplificationResult();
+        if(amplificationResult==null){
+            amplificationResult = AmplificationResult.NewInstance();
+            amplificationResult.addSingleRead(entity);
+        }
+        selectionAmplification = formFactory.createSelectionElement(Amplification.class, getConversationHolder(), formElement, "Amplification", amplificationResult.getAmplification(), EntitySelectionElement.ALL, style);
 
         AnnotationSection annotationSection = formFactory.createAnnotationSection(getConversationHolder(), formElement, style);
         annotationSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         annotationSection.setEntity(entity);
+
+        AmplificationCloningDetailSection cloningSection = formFactory.createAmplificationCloningDetailSection(getConversationHolder(), formElement, formFactory.getSelectionProvider(), style);
+        cloningSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        cloningSection.setEntity(amplificationResult);
+
+        AmplificationGelPhotoCollectionDetailSection gelPhotoSection = formFactory.createAmplificationGelPhotoCollectionDetailSection(getConversationHolder(), formElement, style);
+        gelPhotoSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        gelPhotoSection.setEntity(amplificationResult);
     }
 
     /*
@@ -66,8 +80,15 @@ public class SingleReadGeneralDetailElement extends AbstractCdmDetailElement<Sin
         if(eventSource==selectionPrimer){
             getEntity().setPrimer(selectionPrimer.getSelection());
         }
-        else if(eventSource==selectionAmplification){
-            selectionAmplification.getSelection().addSingleRead(getEntity());
+        else {
+            if(eventSource==selectionAmplification){
+                AmplificationResult amplificationResult = getEntity().getAmplificationResult();
+                if(amplificationResult==null){
+                    amplificationResult = AmplificationResult.NewInstance();
+                }
+                amplificationResult.setAmplification(selectionAmplification.getSelection());
+                amplificationResult.addSingleRead(getEntity());
+            }
         }
     }
 }
index ea72fbadf2ca383eabbc212bbda48a0dfde23667..59721c32fc63b65f2bac44a74a674f3359936dea 100644 (file)
@@ -12,6 +12,7 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 import org.apache.log4j.Logger;
 
 import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.agent.Institution;
 import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.common.TimePeriod;
@@ -20,6 +21,7 @@ import eu.etaxonomy.cdm.model.occurrence.Collection;
 import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
@@ -36,13 +38,14 @@ public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<D
     static private final Logger logger = Logger.getLogger(TissueSampleGeneralDetailElement.class);
 
     private TermComboElement<DefinedTerm> comboKindOfTissue;
-    private EntitySelectionElement<AgentBase> selectionInstitution;
+    private EntitySelectionElement<Institution> selectionInstitution;
     private EntitySelectionElement<AgentBase> selectionStaff;
     private TimePeriodElement datePreparation;
     private TermComboElement<DefinedTerm> comboPreservationMedium;
     private EntitySelectionElement<Collection> selectionCollection;
     private TextWithLabelElement textAccessionNumber;
     private TextWithLabelElement textBarcode;
+    private CheckboxElement checkIsPublish;
 
 
     /**
@@ -62,25 +65,27 @@ public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<D
      */
     @Override
     protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
-        //TODO handle all parameters here and in handleEvent()
         comboKindOfTissue = formFactory.createDefinedTermComboElement(TermType.KindOfUnit, formElement, "Kind Of Tissue", entity.getKindOfUnit(), style);
-        //TODO: institute
         TimePeriod preparationDate = null;
         DefinedTerm preservationMedium = null;
         AgentBase<?> staff = null;
+        Institution institution = null;
         if(entity.getDerivedFrom()!=null){
             staff = entity.getDerivedFrom().getActor();
             preparationDate = entity.getDerivedFrom().getTimeperiod();
+            institution = entity.getDerivedFrom().getInstitution();
         }
         if(entity.getPreservation()!=null){
             preservationMedium = entity.getPreservation().getMedium();
         }
+        selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", institution, EntitySelectionElement.ALL, style);
         selectionStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Staff", staff, EntitySelectionElement.ALL,style);
         datePreparation = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
         comboPreservationMedium = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Preservation medium", preservationMedium, style);
         selectionCollection = formFactory.createSelectionElement(Collection.class, getConversationHolder(), formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
         textAccessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
         textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
+        checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
 
     }
 
@@ -93,7 +98,6 @@ public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<D
      */
     @Override
     public void handleEvent(Object eventSource) {
-        //TODO: institute
         if(eventSource==comboKindOfTissue) {
             getEntity().setKindOfUnit(comboKindOfTissue.getSelection());
         }
@@ -114,11 +118,19 @@ public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<D
                 getEntity().getDerivedFrom().setTimeperiod(datePreparation.getTimePeriod());
             }
         }
+        else if(eventSource==selectionInstitution){
+            if(getEntity().getDerivedFrom()!=null){
+                getEntity().getDerivedFrom().setInstitution(selectionInstitution.getSelection());
+            }
+        }
         else if(eventSource==selectionStaff){
             if(getEntity().getDerivedFrom()!=null){
                 getEntity().getDerivedFrom().setActor(selectionStaff.getSelection());
             }
         }
+        else if(eventSource==checkIsPublish){
+            getEntity().setPublish(checkIsPublish.getSelection());
+        }
     }
 
     private PreservationMethod addPreservationMethod(){
index a1daa3a347e8a5d4d1bd01d023f5055c9537b0cc..0f6000b34a90e585d58d10cdddfe896ddcb65be1 100644 (file)
@@ -26,6 +26,7 @@ import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
@@ -51,6 +52,7 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
     private EntitySelectionElement<Collection> selection_collection;
     private TextWithLabelElement text_accessionNumber;
     private EntitySelectionElement<Reference> selection_publishedIn;
+    private CheckboxElement checkIsPublish;
 
     private MediaDetailElement mediaDetailElement;
     /**
@@ -92,6 +94,7 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
                 }
             }
             selection_publishedIn = formFactory.createSelectionElement(Reference.class, getConversationHolder(), formElement, "Published in", publishedIn, EntitySelectionElement.ALL, style);
+            checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
 
             mediaDetailElement = formFactory.createMediaDetailElement(formElement);
             mediaDetailElement.setEntity(media);
@@ -149,13 +152,21 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
                 primaryMediaSource.setCitation(selection_publishedIn.getSelection());
             }
         }
+        else if(eventSource==checkIsPublish){
+            getEntity().setPublish(checkIsPublish.getSelection());
+        }
     }
 
     public void toogleAdvancedMediaView() {
-        mediaDetailElement.toggleAdvancedMediaView();
+        if(mediaDetailElement!=null){
+            mediaDetailElement.toggleAdvancedMediaView();
+        }
     }
 
     public boolean isAdvancedMediaView() {
+        if(mediaDetailElement==null){
+            return false;
+        }
         return mediaDetailElement.isAdvancedMediaView();
     }
 
index 49dbea3a7c2e6dc7cf0037ed1023bfbad949a4ce..9b64fec66f2a7c9a18926719bce241d61c3b35c4 100644 (file)
@@ -87,15 +87,8 @@ public class MediaSpecimenGeneralDetailSection  extends AbstractCdmDetailSection
     protected Control createToolbar() {
         ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
 
-        final String label;
-
-        if(mediaSpecimenGeneralDetailElement.isAdvancedMediaView()){
-            label = "Use simple media view";
-        }
-        else{
-            label = "Use advanced media view";
-        }
-        Action addAction = new Action("Use advanced media view", IAction.AS_PUSH_BUTTON) {
+        String actionLabel = "Use advanced media view";
+        Action addAction = new Action(actionLabel, IAction.AS_PUSH_BUTTON) {
             /* (non-Javadoc)
              * @see org.eclipse.jface.action.Action#run()
              */
@@ -104,7 +97,7 @@ public class MediaSpecimenGeneralDetailSection  extends AbstractCdmDetailSection
                 mediaSpecimenGeneralDetailElement.toogleAdvancedMediaView();
             }
         };
-        addAction.setToolTipText(label);
+        addAction.setToolTipText(actionLabel);
 
         toolBarManager.add(addAction);
 
index 018b6c754f91369740eb6316531a443e740d4415..a9175681804242fd4de0d0f0ebc5b5ffc80ca804 100644 (file)
@@ -35,8 +35,6 @@ import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.model.TextHelper;
-import eu.etaxonomy.taxeditor.newWizard.AmplificationCloningWizardPage;
-import eu.etaxonomy.taxeditor.newWizard.AmplificationGelPhotoWizardPage;
 import eu.etaxonomy.taxeditor.newWizard.AmplificationGeneralWizardPage;
 import eu.etaxonomy.taxeditor.newWizard.PrimerWizardPage;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -144,12 +142,6 @@ public class EditFromSelectionWizard extends Wizard implements
             addPage(new AmplificationGeneralWizardPage(formFactory,
                     selectionElement.getConversationHolder(),
                     (Amplification) entity));
-            addPage(new AmplificationCloningWizardPage(formFactory,
-                    selectionElement.getConversationHolder(),
-                    (Amplification) entity));
-            addPage(new AmplificationGelPhotoWizardPage(formFactory,
-                    selectionElement.getConversationHolder(),
-                    (Amplification) entity));
         } else {
                        MessagingUtils.warningDialog("Missing interface", this,
                                        "No detail element for current selection");
index 526f9eeac832786400c7cb0131506ef0ea184f7e..e486e7f5214747645392aaa9eed950261663fa77 100644 (file)
@@ -147,7 +147,7 @@ public class TranslationWizardPage extends WizardPage{
 
                LanguageString preferredLanguageString = MultilanguageTextHelper.getPreferredLanguageString(multilanguageText, getLanguages());
 
-               text_source = formFactory.createLanguageStringWithLabelElement(element, null, preferredLanguageString, TEXT_HEIGHT, true, SWT.NULL);
+               text_source = formFactory.createLanguageStringWithLabelElement(element, null, preferredLanguageString, TEXT_HEIGHT, false, SWT.NULL);
 
 //             text_source.setEnabled(false);
 
@@ -186,7 +186,7 @@ public class TranslationWizardPage extends WizardPage{
                        }
                });
 
-               text_target = formFactory.createLanguageStringWithLabelElement(element, null, null, TEXT_HEIGHT, true, SWT.NULL);
+               text_target = formFactory.createLanguageStringWithLabelElement(element, null, null, TEXT_HEIGHT, false, SWT.NULL);
 
                //
                // The automated translation did rely on the Google Translate API. Unfortunately this service is not free anymore.
index 5719782bebcd1f37a35bc2b0cddbdb10738ab8ec..7cb308c7da84be0cd97811004c592dabb3eff473 100644 (file)
@@ -269,8 +269,8 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                 if(sequence!=null && sequence.getDnaMarker()!=null){
                     label += sequence.getDnaMarker()+separator;
                 }
-                if(singleRead.getAmplification()!=null && singleRead.getAmplification().getDescription()!=null){
-                    label += singleRead.getAmplification().getDescription()+separator;
+                if(singleRead.getAmplificationResult()!=null && singleRead.getAmplificationResult().getAmplification()!=null){
+                    label += singleRead.getAmplificationResult().getAmplification().getLabelCache()+separator;
                 }
             }
         }
index 4f22a0c2833e844f9f8fb2734acff9861d4cafce..f8950d456bd55fc2905bb272dc4440ed738b7e90 100644 (file)
@@ -39,7 +39,6 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.cdm.model.description.SpecimenDescription;
 import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.molecular.Amplification;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
 import eu.etaxonomy.cdm.model.molecular.SingleRead;
@@ -55,6 +54,7 @@ import eu.etaxonomy.taxeditor.editor.UsageTermCollection;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.model.PolytomousKeyRelationship;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -95,10 +95,6 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralDetailSectio
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.OriginalLabelDataSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.association.TaxonAssociationDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationCloningDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGelPhotoCollectionDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationGeneralDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AmplificationPrimerDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaQualityDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.DnaSampleGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationDetailSection;
@@ -244,7 +240,7 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                 createSpecimenDescriptionSection(rootElement);
             }
             else{
-                Set<Marker> descriptionMarkers = ((DescriptionBase) input).getMarkers();
+                Set<Marker> descriptionMarkers = ((DescriptionBase<?>) input).getMarkers();
                 MarkerType useMarkertype = (MarkerType) CdmStore.getService(ITermService.class).find(
                         UsageTermCollection.uuidUseMarkerType);
                 Boolean isUseDescription = false;
@@ -253,7 +249,7 @@ public class DetailsViewer extends AbstractCdmDataViewer {
                         isUseDescription = true;
                     }
                 }
-                if (((DescriptionBase) input).isImageGallery()) {
+                if (((DescriptionBase<?>) input).isImageGallery()) {
                     createImageGallerySection(rootElement);
 
                 } else if (isUseDescription) {
@@ -285,10 +281,20 @@ public class DetailsViewer extends AbstractCdmDataViewer {
 
         } else if (input instanceof DerivedUnitFacade) {
             if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.FieldUnit){
-                createFieldUnitSection(rootElement);
+                if(((DerivedUnitFacade) input).innerFieldUnit()==null){
+                    MessagingUtils.error(DetailsViewer.class, "FieldUnit of facade is null", null);
+                }
+                else{
+                    createFieldUnitSection(rootElement);
+                }
             }
             else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.PreservedSpecimen){
-                createDerivedUnitBaseElementSection(rootElement);
+                if(((DerivedUnitFacade) input).innerDerivedUnit()==null){
+                    MessagingUtils.error(DetailsViewer.class, "DerivedUnit of facade is null", null);
+                }
+                else{
+                    createDerivedUnitBaseElementSection(rootElement);
+                }
             }
             else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.TissueSample){
                 //TissueSample should only be created by using it's own class
@@ -309,9 +315,6 @@ public class DetailsViewer extends AbstractCdmDataViewer {
         } else if (input instanceof MediaSpecimen){
             createMediaSpecimenSection(rootElement);
         }
-        else if(input instanceof Amplification){
-            createAmplificationSection(rootElement);
-        }
         else if(input instanceof Sequence){
             createSequenceSection(rootElement);
         }
@@ -659,7 +662,7 @@ public class DetailsViewer extends AbstractCdmDataViewer {
         destroySections();
 
         DerivedUnitGeneralDetailSection derivedUnitGeneralDetailSection = formFactory.createDerivedUnitGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-        //TODO for DerivateEditor do not use facade anymore to avoid this special case handling #4539 
+        //TODO for DerivateEditor do not use facade anymore to avoid this special case handling #4539
         if(!(AbstractUtility.getActivePart() instanceof IDerivedUnitFacadePart)){
             derivedUnitGeneralDetailSection.setShowOnlyDerivedUnitData(true);
         }
@@ -754,29 +757,6 @@ public class DetailsViewer extends AbstractCdmDataViewer {
         addPart(sampleDesignationDetailSection);
     }
 
-    private void createAmplificationSection(RootElement parent) {
-        destroySections();
-        AmplificationGeneralDetailSection generalSection = formFactory.createAmplificationGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
-        AmplificationPrimerDetailSection primerSection = formFactory.createAmplificationPrimerDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
-        AmplificationCloningDetailSection cloningSection = formFactory.createAmplificationCloningDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
-        AmplificationGelPhotoCollectionDetailSection gelPhotoSection = formFactory.createAmplificationGelPhotoCollectionDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-
-
-        addPart(generalSection);
-        addPart(primerSection);
-        addPart(cloningSection);
-        addPart(gelPhotoSection);
-    }
-
     private void createSequenceSection(RootElement parent) {
         destroySections();
 
@@ -800,13 +780,13 @@ public class DetailsViewer extends AbstractCdmDataViewer {
         destroySections();
 
         SingleReadGeneralDetailSection section = formFactory.createSingleReadGeneralDetailSection(getConversationHolder(), parent, this, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+        addPart(section);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         SingleReadPherogramCollectionDetailSection pherogramSection = formFactory.createSingleReadPherogramCollectionDetailSection(getConversationHolder(), parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-
-        addPart(section);
         addPart(pherogramSection);
+
     }
 
     private void createMediaSpecimenSection(RootElement parent) {