*/
package eu.etaxonomy.taxeditor.ui.section.occurrence.media;
+import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.joda.time.DateTime;
import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.IdentifiableSource;
import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.common.LanguageString;
+import eu.etaxonomy.cdm.model.common.OriginalSourceType;
+import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.cdm.model.occurrence.Collection;
import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
+import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
-import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.mvc.element.DateTimeElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import eu.etaxonomy.taxeditor.ui.section.media.MediaRepresentationSection;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
*/
public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<MediaSpecimen> {
+ private TermComboElement<DefinedTerm> comboKindOfUnit;
private LanguageStringWithLabelElement textTitleLanguageString;
private EntitySelectionElement<AgentBase> selectionArtist;
- private TimePeriodElement date;
- private LanguageStringWithLabelElement textDescriptionLanguageString;
+ private DateTimeElement date;
+ private LanguageStringWithLabelElement textMethodLanguageString;
+ private EntitySelectionElement<Collection> selection_collection;
+ private TextWithLabelElement text_accessionNumber;
+ private EntitySelectionElement<IdentifiableSource> selection_publishedIn;
private MediaRepresentationSection mediaRepresentationSection;
/**
*/
@Override
protected void createControls(ICdmFormElement formElement, MediaSpecimen entity, int style) {
- LanguageString title;
- AgentBase artist;
- LanguageString description;
-
Media media = entity.getMediaSpecimen();
if(media==null){
formFactory.createLabel(formElement, "No media attached to this MediaSpecimen!");
- title = null;
- artist = null;
- description = null;
}
else{
- title = media.getTitle();
- artist = media.getArtist();
- description = media.getDescription(Language.DEFAULT());
- textTitleLanguageString = formFactory.createLanguageStringWithLabelElement(formElement, "Title", title, style);
- selectionArtist = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Artist", artist, EntitySelectionElement.ALL, style);
- textDescriptionLanguageString = formFactory.createLanguageStringWithLabelElement(formElement, "Description", description, style);
+ comboKindOfUnit = formFactory.createDefinedTermComboElement(TermType.KindOfUnit, formElement, "Kind of Media", entity.getKindOfUnit(), style);
+ textTitleLanguageString = formFactory.createLanguageStringWithLabelElement(formElement, "Motif", media.getTitle(), style);
+ selectionArtist = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Prepared by", media.getArtist(), EntitySelectionElement.ALL, style);
+
+ Label label = new Label(getLayoutComposite(), style);
+ label.setText("Preparation Date");
+ date = new DateTimeElement(formElement.getLayoutComposite(), entity.getMediaSpecimen().getMediaCreated(), style);
+ date.initController(formFactory, formElement);
+
+ textMethodLanguageString = formFactory.createLanguageStringWithLabelElement(formElement, "Method", media.getDescription(Language.DEFAULT()), style);
+ selection_collection = formFactory.createSelectionElement(Collection.class, getConversationHolder(), formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
+ text_accessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
+ IdentifiableSource publishedIn = null;
+ for(IdentifiableSource source:entity.getSources()){
+ if(source.getType()==OriginalSourceType.PrimaryMediaSource){
+ publishedIn = source;
+ break;
+ }
+ }
+ selection_publishedIn = formFactory.createSelectionElement(IdentifiableSource.class, getConversationHolder(), formElement, "Published in", publishedIn, EntitySelectionElement.ALL, style);
mediaRepresentationSection = formFactory.createMediaRepresentationSection(getConversationHolder(), formElement, ExpandableComposite.TWISTIE);
mediaRepresentationSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
Media media = getEntity().getMediaSpecimen();
if(media==null){
media = Media.NewInstance();
+ getEntity().setMediaSpecimen(media);
}
-
- if(eventSource==selectionArtist){
+ if(eventSource==textTitleLanguageString){
+ media.putTitle(textTitleLanguageString.getLanguageString());
+ }
+ else if(eventSource==date.getController()){
+ int year = date.getDateTime().getYear();
+ int month = date.getDateTime().getMonth();
+ int day = date.getDateTime().getDay();
+ DateTime dateTime = new DateTime(year, month, day, 0, 0);
+ media.setMediaCreated(dateTime);
+ }
+ else if(eventSource==selectionArtist){
media.setArtist(selectionArtist.getSelection());
}
- else if(eventSource==textDescriptionLanguageString){
- media.addDescription(textDescriptionLanguageString.getLanguageString());
+ else if(eventSource==textMethodLanguageString){
+ media.addDescription(textMethodLanguageString.getLanguageString());
+ }
+ else if (eventSource == selection_collection) {
+ getEntity().setCollection(selection_collection.getSelection());
+ }
+ else if (eventSource == text_accessionNumber) {
+ getEntity().setAccessionNumber(text_accessionNumber.getText());
+ }
+ else if(eventSource==selection_publishedIn){
+ getEntity().addSource(selection_publishedIn.getSelection());
}
}
}