3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.taxeditor
.section
.supplemental
;
13 import java
.io
.IOException
;
15 import java
.net
.URISyntaxException
;
17 import org
.apache
.commons
.io
.FileUtils
;
18 import org
.eclipse
.swt
.events
.SelectionListener
;
20 import eu
.etaxonomy
.cdm
.common
.mediaMetaData
.ImageMetaData
;
21 import eu
.etaxonomy
.cdm
.model
.media
.ImageFile
;
22 import eu
.etaxonomy
.taxeditor
.editor
.EditorUtil
;
23 import eu
.etaxonomy
.taxeditor
.forms
.AbstractFormSection
;
24 import eu
.etaxonomy
.taxeditor
.forms
.CdmFormFactory
;
25 import eu
.etaxonomy
.taxeditor
.forms
.ICdmFormElement
;
26 import eu
.etaxonomy
.taxeditor
.forms
.ImageElement
;
27 import eu
.etaxonomy
.taxeditor
.forms
.KeyValueViewerElement
;
28 import eu
.etaxonomy
.taxeditor
.forms
.NumberWithLabelElement
;
29 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
32 * <p>ImageFileElement class.</p>
35 * @created Mar 26, 2010
38 public class ImageFileElement
extends AbstractMediaRepresentationPartElement
<ImageFile
> {
40 private NumberWithLabelElement text_height
;
41 private NumberWithLabelElement text_width
;
42 private KeyValueViewerElement element_keyValue
;
43 private ImageElement element_image
;
46 * <p>Constructor for ImageFileElement.</p>
48 * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.forms.CdmFormFactory} object.
49 * @param section a {@link eu.etaxonomy.taxeditor.forms.AbstractFormSection} object.
50 * @param element a {@link eu.etaxonomy.cdm.model.media.ImageFile} object.
51 * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
54 public ImageFileElement(CdmFormFactory cdmFormFactory
,
55 AbstractFormSection section
, ImageFile element
,
56 SelectionListener removeListener
, int style
) {
57 super(cdmFormFactory
, section
, element
, removeListener
, style
);
62 public void createControls(ICdmFormElement formElement
, int style
) {
63 super.createControls(formElement
, style
);
65 text_height
= formFactory
.createIntegerTextWithLabelElement(formElement
, "Height", null, style
);
66 text_height
.setEnabled(false);
67 text_width
= formFactory
.createIntegerTextWithLabelElement(formElement
, "Width", null, style
);
68 text_width
.setEnabled(false);
69 element_image
= formFactory
.createImageElement(formElement
, null, style
);
71 element_keyValue
= formFactory
.createKeyValueViewerElement(formElement
, "Key", "Value", null);
76 public void setEntity(ImageFile entity
) {
78 if(entity
.getUri() != null){
79 text_uri
.setText(entity
.getUri().toString());
81 if(entity
.getSize() != null){
82 text_size
.setText(FileUtils
.byteCountToDisplaySize(entity
.getSize()));
84 text_height
.setInteger(entity
.getHeight());
85 text_width
.setInteger(entity
.getWidth());
87 showImage(entity
.getUri());
90 private void showImage(URI uri
){
96 Integer size
= CdmStore
.getMediaService().getImageSize(uri
, 10000);
99 text_size
.setText(FileUtils
.byteCountToDisplaySize(size
));
100 getEntity().setSize(size
);
104 ImageMetaData imageInfo
;
107 imageInfo
= CdmStore
.getMediaService().getImageInfo(uri
, 10000);
109 text_height
.setInteger(imageInfo
.getHeight());
110 getEntity().setHeight(imageInfo
.getHeight());
112 text_width
.setInteger(imageInfo
.getWidth());
113 getEntity().setWidth(imageInfo
.getWidth());
114 element_keyValue
.setInput(imageInfo
.getMetaData());
116 element_image
.setImageUri(uri
);
118 } catch (IOException e
) {
119 EditorUtil
.error(getClass(), e
);
121 } catch (Exception e
) {
122 EditorUtil
.error(getClass(), "Image could not be shown: ", e
);
128 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#handleEvent(java.lang.Object)
132 public void handleEvent(Object eventSource
) {
133 if(eventSource
== text_uri
){
135 getEntity().setUri(new URI(text_uri
.getText()));
136 } catch (URISyntaxException e
) {
137 EditorUtil
.warningDialog("Could not parse URI", getClass(), e
.getMessage());
139 showImage(getEntity().getUri());