image mime types are now set automatically. Although this is a bit of a hack.
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / media / ImageFileElement.java
similarity index 89%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/ImageFileElement.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/ImageFileElement.java
index d249bcd00f98eabd43d1806bd6f92d2eabd79284..df7949b5882cb1685cec513959bbcb9fd8a2bab1 100644 (file)
@@ -8,13 +8,14 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.ui.section.supplemental;
+package eu.etaxonomy.taxeditor.ui.section.media;
 
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang.StringUtils;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.api.service.IMediaService;
@@ -24,10 +25,12 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.forms.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.forms.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.forms.ImageElement;
 import eu.etaxonomy.taxeditor.ui.forms.KeyValueViewerElement;
 import eu.etaxonomy.taxeditor.ui.forms.NumberWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractMediaRepresentationPartElement;
 
 /**
  * <p>ImageFileElement class.</p>
@@ -94,7 +97,7 @@ public class ImageFileElement extends AbstractMediaRepresentationPartElement<Ima
                }
                try {
                        
-                       Integer size = CdmStore.getService(IMediaService.class).getImageSize(uri, 10000);
+                       Integer size = CdmStore.getService(IMediaService.class).getImageSize(uri, 10000);                       
                        
                        if(size != null){
                                text_size.setText(FileUtils.byteCountToDisplaySize(size));
@@ -140,11 +143,17 @@ public class ImageFileElement extends AbstractMediaRepresentationPartElement<Ima
        public void handleEvent(Object eventSource) {
                if(eventSource == text_uri){
                        try {
-                               getEntity().setUri(new URI(text_uri.getText()));
+                               String uriString = text_uri.getText();
+                               URI uri = StringUtils.isNotEmpty(uriString) ? new URI(uriString) : null;
+                               getEntity().setUri(uri);
+                               
+                               showImage(getEntity().getUri());
+
+                               firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
                        } catch (URISyntaxException e) {
                                StoreUtil.warningDialog("Could not parse URI", getClass(), e.getMessage());
-                       }
-                       showImage(getEntity().getUri());
+                       }                       
                }
+               
        }
 }