selection_artist;
private LanguageStringWithLabelElement text_description;
private LanguageStringWithLabelElement text_title;
private UriWithLabelElement textUri;
+ private MediaRepresentationSection section_mediaRepresentation;
+
+ private CheckboxElement checkBoxShowAdvancedView;
+ private MediaRepresentationPart singleMediaRepresentationPart;
+ private boolean isAdvancedMediaView;
+ private ICdmFormElement parentFormElement;
+ private int style;
/**
*
@@ -79,30 +98,24 @@ public class MediaElement extends AbstractEntityCollectionElement {
/** {@inheritDoc} */
@Override
public void createControls(ICdmFormElement element, int style) {
+ this.parentFormElement = element;
+ this.style = 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);
- textUri = formFactory.createUriWithLabelElement(element, "Media URI", null, style);
- // section_mediaRepresentation = formFactory.createMediaRepresentationSection(getConversationHolder(), element, style);
- // section_mediaRepresentation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
- }
-
- private MediaRepresentationPart getFirstMediaRepresentationPart() {
- Set representations = entity.getRepresentations();
- if(representations.size()==1){
- List parts = representations.iterator().next().getParts();
- if(parts.size()==1){
- return parts.iterator().next();
- }
- }
- return null;
+ 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));
}
/** {@inheritDoc} */
@Override
public void setEntity(Media element) {
this.entity = element;
-// section_mediaRepresentation.setEntity(element);
+ initRepresentationMode();
+ showAdvancedView(isAdvancedMediaView);
+
selection_artist.setEntity((TeamOrPersonBase) HibernateProxyHelper
.deproxy(element.getArtist()));
@@ -118,10 +131,7 @@ public class MediaElement extends AbstractEntityCollectionElement {
text_title.setLanguageString(title);
- MediaRepresentationPart firstMediaRepresentationPart = getFirstMediaRepresentationPart();
- if(firstMediaRepresentationPart!=null){
- textUri.setUri(firstMediaRepresentationPart.getUri());
- }
+
}
/*
@@ -144,29 +154,89 @@ public class MediaElement extends AbstractEntityCollectionElement {
((AbstractCdmDetailSection) getParentElement()).updateTitle();
}
}
- else if (eventSource == textUri){
+ else if(eventSource==textUri){
textUri.setBackground(getPersistentBackground());
- MediaRepresentationPart firstMediaRepresentationPart = getFirstMediaRepresentationPart();
- URI uri;
try {
- uri = textUri.getUri();
- if(firstMediaRepresentationPart!=null){
- firstMediaRepresentationPart.setUri(uri);
+ singleMediaRepresentationPart.setUri(textUri.getUri());
+ } catch (URISyntaxException e) {
+ textUri.setBackground(getColor(Resources.COLOR_PARSE_ERROR));
+ }
+ }
+ else if(eventSource==checkBoxShowAdvancedView){
+ showAdvancedView(checkBoxShowAdvancedView.getSelection());
+ }
+ }
+
+ /**
+ * @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);
+ section_mediaRepresentation.setEntity(getEntity());
+ }
+ else{
+// removeElement(section_mediaRepresentation);
+// removeControl(section_mediaRepresentation);
+ section_mediaRepresentation.setVisible(false);
+ textUri.setVisible(true);
+ textUri.setUri(getMediaRepresentationPart(getEntity()).getUri());
+ }
+// parentFormElement.getLayoutComposite().layout();
+// getParentElement().getLayoutComposite().layout();
+ }
+
+ private void initRepresentationMode(){
+ if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_ADVANCED_MEDIA_SECTION)){
+ isAdvancedMediaView = true;
+ return;
+ }
+ Set representations = entity.getRepresentations();
+ if(representations.size()>1){
+ isAdvancedMediaView = true;
+ return;
+ }
+ if(representations.size()==1){
+ List parts = representations.iterator().next().getParts();
+ if(parts.size()>1){
+ isAdvancedMediaView = true;
+ return;
+ }
+ }
+ isAdvancedMediaView = false;
+ }
+
+ private MediaRepresentationPart getMediaRepresentationPart(Media media) {
+ if(singleMediaRepresentationPart==null){
+ Set representations = media.getRepresentations();
+ if(representations!=null && representations.size()>0){
+ MediaRepresentation mediaRepresentation = representations.iterator().next();
+ List parts = mediaRepresentation.getParts();
+ if(parts!=null && parts.size()>0){
+ singleMediaRepresentationPart = parts.iterator().next();
}
else{
- Set representations = getEntity().getRepresentations();
- if(representations.size()>=1){
- representations.iterator().next().addRepresentationPart(MediaRepresentationPart.NewInstance(uri, null));
- }
- else{
- MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance();
- mediaRepresentation.addRepresentationPart(MediaRepresentationPart.NewInstance(uri, null));
- getEntity().addRepresentation(mediaRepresentation);
- }
+ singleMediaRepresentationPart = MediaRepresentationPart.NewInstance(null, null);
+ mediaRepresentation.addRepresentationPart(singleMediaRepresentationPart);
}
- } catch (URISyntaxException e) {
- textUri.setBackground(getColor(Resources.COLOR_PARSE_ERROR));
+ }
+ else{
+ singleMediaRepresentationPart = MediaRepresentationPart.NewInstance(null, null);
+
+ MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance();
+ mediaRepresentation.addRepresentationPart(singleMediaRepresentationPart);
+ media.addRepresentation(mediaRepresentation);
}
}
+ return singleMediaRepresentationPart;
}
+
}