Revision 4e80230e
Added by Katja Luther about 3 years ago
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
ref #6229: multilanguage support for media details view