Project

General

Profile

« Previous | Next » 

Revision 4e80230e

Added by Katja Luther about 3 years ago

ref #6229: multilanguage support for media details view

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaMetaElement.java
8 8
 */
9 9
package eu.etaxonomy.taxeditor.ui.section.media;
10 10

  
11
import java.util.Map;
12

  
11
import org.eclipse.swt.SWT;
13 12
import org.eclipse.swt.events.SelectionListener;
14 13

  
15
import eu.etaxonomy.cdm.common.CdmUtils;
16 14
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
17 15
import eu.etaxonomy.cdm.model.agent.AgentBase;
18
import eu.etaxonomy.cdm.model.common.Language;
19
import eu.etaxonomy.cdm.model.common.LanguageString;
20 16
import eu.etaxonomy.cdm.model.common.TimePeriod;
21 17
import eu.etaxonomy.cdm.model.media.Media;
22 18
import eu.etaxonomy.taxeditor.model.AbstractUtility;
23
import eu.etaxonomy.taxeditor.store.CdmStore;
24 19
import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
25 20
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
26 21
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
27 22
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
28 23
import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
29
import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
24
import eu.etaxonomy.taxeditor.ui.element.MultilanguageTextElement;
30 25
import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
31 26
import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
32 27
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
......
40 35
public class MediaMetaElement extends AbstractEntityCollectionElement<Media> implements ISelectableElement, ITogglableMediaElement{
41 36

  
42 37
    private EntitySelectionElement<AgentBase> selection_artist;
43
    private LanguageStringWithLabelElement text_description;
44
    private LanguageStringWithLabelElement text_title;
38
    private MultilanguageTextElement text_description;
39
    private MultilanguageTextElement text_title;
45 40
    private MediaDetailElement mediaDetailElement;
46 41
    private TimePeriodElement mediaCreated;
47 42
    private SelectionArbitrator selectionArbitrator;
......
69 64
//            }
70 65
//        });
71 66
        setWarnForReferencingObjects(element, 2);
72
        text_title = formFactory.createLanguageStringWithLabelElement(element, "Title", null, style);
67
        text_title = formFactory.createMultiLanguageTextElement(element, "Title", null, 50, style);
68
//        text_title = formFactory.createLanguageStringWithLabelElement(element, "Title", null, style);
73 69
        selection_artist = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
74 70
                element, "Artist", null, EntitySelectionElement.ALL, style);
75 71
        addElement(selection_artist);
76 72

  
77 73
        mediaCreated = formFactory.createTimePeriodElement(element, "Media Created", getEntity().getMediaCreated(), style);
78 74
        addElement(mediaCreated);
79
        text_description = formFactory.createLanguageStringWithLabelElement(element, "Description", null, 100, true, style);
75
        text_description = formFactory.createMultiLanguageTextElement(this, "Description", null, 200, SWT.WRAP);
80 76

  
81 77

  
82 78
        mediaDetailElement = formFactory.createMediaDetailElement(element);
......
101 97
        selection_artist.setEntity(HibernateProxyHelper
102 98
                .deproxy(element.getArtist()));
103 99

  
104
        text_description.setLanguageString(element.getDescription(CdmStore
105
                .getDefaultLanguage()));
106
        if (CdmUtils.isBlank(text_description.getText())){
107
        	Map<Language, LanguageString> allDescriptions = element.getAllDescriptions();
108
        	if (!allDescriptions.isEmpty()){
109
        		text_description.setLanguageString(allDescriptions.get(Language.ENGLISH()));
110
        	}
111
        }
100
        text_description.setMultilanguageText(element.getAllDescriptions());
101
//        if (CdmUtils.isBlank(text_description.getText())){
102
//        	Map<Language, LanguageString> allDescriptions = element.getAllDescriptions();
103
//        	if (!allDescriptions.isEmpty()){
104
//        		text_description.setLanguageString(allDescriptions.get(Language.ENGLISH()));
105
//        	}
106
//        }
112 107

  
113 108
        createTitle();
114 109
    }
115 110

  
116 111
    public void createTitle() {
117
        LanguageString title = this.entity.getTitle(CdmStore.getDefaultLanguage());
118

  
119
        if (title == null) {
120
            title = LanguageString.NewInstance(entity.getTitleCache(), CdmStore.getDefaultLanguage());
121
        }
112
//        LanguageString title = this.entity.getTitle(CdmStore.getDefaultLanguage());
113
//
114
//        if (title == null) {
115
//            title = LanguageString.NewInstance(entity.getTitleCache(), CdmStore.getDefaultLanguage());
116
//        }
122 117

  
123
        text_title.setLanguageString(title);
118
        text_title.setMultilanguageText(entity.getAllTitles());
124 119
    }
125 120

  
126 121
    @Override
......
141 136
        if (eventSource == selection_artist) {
142 137
            getEntity().setArtist(selection_artist.getSelection());
143 138
        } else if (eventSource == text_description) {
144
            getEntity().addDescription(text_description.getLanguageString());
139
            text_description.getMultilanguageText().values()
140
            .forEach(languageString -> getEntity().addDescription(languageString));
145 141
        } else if (eventSource == text_title) {
146
            getEntity().putTitle(text_title.getLanguageString());
142
            text_title.getMultilanguageText().values()
143
            .forEach(languageString -> getEntity().putTitle(languageString));
147 144
            if (getParentElement() instanceof AbstractCdmDetailSection) {
148 145
                ((AbstractCdmDetailSection<?>) getParentElement()).updateTitle();
149 146
            }

Also available in: Unified diff