ref #6229: fix problems with multilanguage support and title generation for media
authorKatja Luther <k.luther@bgbm.org>
Tue, 23 Mar 2021 08:47:52 +0000 (09:47 +0100)
committerKatja Luther <k.luther@bgbm.org>
Tue, 23 Mar 2021 08:47:52 +0000 (09:47 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaMetaElement.java

index 859ae630eb1ded024dd0aafbc2ce9cb92e0ae834..0772c921ce66f00ff2083492a34bc109bb0207f9 100644 (file)
@@ -172,8 +172,9 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
                 MediaMetaElement metaElement = (MediaMetaElement)this.getParentElement();
                 if (metaElement.getParentElement() != null && metaElement.getParentElement() instanceof MediaDetailsSection){
                     MediaDetailsSection sec = (MediaDetailsSection)metaElement.getParentElement();
-                    sec.setMediaSectionTitle();
+//                    sec.setMediaSectionTitle();
                     metaElement.createTitle();
+                    sec.setMediaSectionTitle();
                 }
             }
         }
index 6362d2c5267a3cff816d0d7f65bce8450e006cac..ef762eee1a60e2c711e793b9c443f7013b20a38c 100644 (file)
@@ -8,14 +8,19 @@
  */
 package eu.etaxonomy.taxeditor.ui.section.media;
 
+import java.util.Map;
+
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.common.TimePeriod;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -98,6 +103,7 @@ public class MediaMetaElement extends AbstractEntityCollectionElement<Media> imp
                 .deproxy(element.getArtist()));
 
         text_description.setMultilanguageText(element.getAllDescriptions());
+
 //        if (CdmUtils.isBlank(text_description.getText())){
 //             Map<Language, LanguageString> allDescriptions = element.getAllDescriptions();
 //             if (!allDescriptions.isEmpty()){
@@ -109,13 +115,16 @@ public class MediaMetaElement extends AbstractEntityCollectionElement<Media> imp
     }
 
     public void createTitle() {
-//        LanguageString title = this.entity.getTitle(CdmStore.getDefaultLanguage());
-//
-//        if (title == null) {
-//            title = LanguageString.NewInstance(entity.getTitleCache(), CdmStore.getDefaultLanguage());
-//        }
-
-        text_title.setMultilanguageText(entity.getAllTitles());
+       LanguageString title = this.entity.getTitle(CdmStore.getDefaultLanguage());
+       Map<Language, LanguageString> languageStrings = entity.getAllTitles();
+       if (title == null || title.getText().contains("empty media")) {
+           entity.getAllTitles().remove(title);
+           title = LanguageString.NewInstance(entity.getTitleCache(), CdmStore.getDefaultLanguage());
+           if (!title.getText().contains("empty media")){
+               languageStrings.put(CdmStore.getDefaultLanguage(), title);
+           }
+       }
+       text_title.setMultilanguageText(languageStrings);
     }
 
     @Override