import java.util.List;
import java.util.Set;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.media.Media;
import eu.etaxonomy.cdm.model.media.MediaRepresentation;
import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
+import eu.etaxonomy.cdm.model.media.MediaUtils;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.preference.Resources;
private CheckboxElement checkBoxShowAdvancedView;
private MediaRepresentationPart singleMediaRepresentationPart;
- private boolean isAdvancedMediaView;
private ICdmFormElement parentFormElement;
private int style;
* object.
*/
public MediaElement(CdmFormFactory cdmFormFactory,
- AbstractFormSection formElement, Media element,
+ AbstractFormSection<?> formElement, Media element,
SelectionListener removeListener, int style) {
super(cdmFormFactory, formElement, element, removeListener, null, style);
}
text_title = formFactory.createLanguageStringWithLabelElement(element, "Title", null, style);
selection_artist = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), element, "Artist", null, EntitySelectionElement.ALL, style);
text_description = formFactory.createLanguageStringWithLabelElement(element, "Description", null, 100, style);
- checkBoxShowAdvancedView = formFactory.createCheckbox(element, "Show Advance Media View", false, style);
- textUri = formFactory.createUriWithLabelElement(parentFormElement, "Media URI", null, style);
- section_mediaRepresentation = formFactory.createMediaRepresentationSection(getConversationHolder(), parentFormElement, style);
- section_mediaRepresentation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ checkBoxShowAdvancedView = formFactory.createCheckbox(element, "Advanced Media View", false, style);
}
/** {@inheritDoc} */
@Override
public void setEntity(Media element) {
this.entity = element;
- initRepresentationMode();
- showAdvancedView(isAdvancedMediaView);
+ if(singleMediaRepresentationPart==null){
+ singleMediaRepresentationPart = MediaUtils.initFirstMediaRepresentationPart(element);
+ }
+ showAdvancedView(isAdvancedMediaView());
- selection_artist.setEntity((TeamOrPersonBase) HibernateProxyHelper
+ selection_artist.setEntity((TeamOrPersonBase<?>) HibernateProxyHelper
.deproxy(element.getArtist()));
text_description.setLanguageString(element.getDescription(CdmStore
LanguageString title = element.getTitle(CdmStore.getDefaultLanguage());
if (title == null) {
- title = LanguageString.NewInstance("",
- CdmStore.getDefaultLanguage());
+ title = LanguageString.NewInstance("", CdmStore.getDefaultLanguage());
}
text_title.setLanguageString(title);
-
-
}
/*
} else if (eventSource == text_title) {
getEntity().putTitle(text_title.getLanguageString());
if (getParentElement() instanceof AbstractCdmDetailSection) {
- ((AbstractCdmDetailSection) getParentElement()).updateTitle();
+ ((AbstractCdmDetailSection<?>) getParentElement()).updateTitle();
}
}
else if(eventSource==textUri){
* @param showAdvancedView
*/
private void showAdvancedView(boolean showAdvancedView) {
-// removeElements();
-// text_title = formFactory.createLanguageStringWithLabelElement(parentFormElement, "Title", null, style);
-// selection_artist = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), parentFormElement, "Artist", null, EntitySelectionElement.ALL, style);
-// text_description = formFactory.createLanguageStringWithLabelElement(parentFormElement, "Description", null, 100, style);
-// checkBoxShowAdvancedView = formFactory.createCheckbox(parentFormElement, "Show Advance Media View", false, style);
if(showAdvancedView){
-// removeElement(textUri);
-// removeControl(textUri.getMainControl());
- section_mediaRepresentation.setVisible(true);
- textUri.setVisible(false);
+ if(textUri!=null){
+ removeElementsAndControls(textUri);
+ }
+ section_mediaRepresentation = formFactory.createMediaRepresentationSection(getConversationHolder(), parentFormElement, style);
+ section_mediaRepresentation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
section_mediaRepresentation.setEntity(getEntity());
}
else{
-// removeElement(section_mediaRepresentation);
-// removeControl(section_mediaRepresentation);
- section_mediaRepresentation.setVisible(false);
- textUri.setVisible(true);
- textUri.setUri(getMediaRepresentationPart(getEntity()).getUri());
+ if(section_mediaRepresentation!=null){
+ removeElementsAndControls(section_mediaRepresentation);
+ }
+ textUri = formFactory.createUriWithLabelElement(parentFormElement, "Media URI", null, style);
+ textUri.setUri(singleMediaRepresentationPart.getUri());
+ textUri.getLayoutComposite().layout();
}
-// parentFormElement.getLayoutComposite().layout();
-// getParentElement().getLayoutComposite().layout();
}
- private void initRepresentationMode(){
+ private boolean isAdvancedMediaView(){
if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_ADVANCED_MEDIA_SECTION)){
- isAdvancedMediaView = true;
- return;
+ return true;
}
Set<MediaRepresentation> representations = entity.getRepresentations();
if(representations.size()>1){
- isAdvancedMediaView = true;
- return;
+ return true;
}
if(representations.size()==1){
List<MediaRepresentationPart> parts = representations.iterator().next().getParts();
if(parts.size()>1){
- isAdvancedMediaView = true;
- return;
- }
- }
- isAdvancedMediaView = false;
- }
-
- private MediaRepresentationPart getMediaRepresentationPart(Media media) {
- if(singleMediaRepresentationPart==null){
- Set<MediaRepresentation> representations = media.getRepresentations();
- if(representations!=null && representations.size()>0){
- MediaRepresentation mediaRepresentation = representations.iterator().next();
- List<MediaRepresentationPart> parts = mediaRepresentation.getParts();
- if(parts!=null && parts.size()>0){
- singleMediaRepresentationPart = parts.iterator().next();
- }
- else{
- singleMediaRepresentationPart = MediaRepresentationPart.NewInstance(null, null);
- mediaRepresentation.addRepresentationPart(singleMediaRepresentationPart);
- }
- }
- else{
- singleMediaRepresentationPart = MediaRepresentationPart.NewInstance(null, null);
-
- MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance();
- mediaRepresentation.addRepresentationPart(singleMediaRepresentationPart);
- media.addRepresentation(mediaRepresentation);
+ return true;
}
}
- return singleMediaRepresentationPart;
+ return false;
}
}