ref #6190 removing svn property place holder in first line of code - java files
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / media / MediaRepresentationPartElement.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.taxeditor.ui.section.media;
11
12 import java.net.URI;
13
14 import org.apache.commons.io.FileUtils;
15 import org.eclipse.swt.events.SelectionListener;
16
17 import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
18 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
19 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
20 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
21 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
22 import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
23 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
24
25 /**
26 * <p>Abstract AbstractMediaRepresentationPartElement class.</p>
27 *
28 * @author n.hoffmann
29 * @created Mar 24, 2010
30 * @version 1.0
31 */
32 public class MediaRepresentationPartElement<T extends MediaRepresentationPart> extends
33 AbstractEntityCollectionElement<T> {
34
35 protected UriWithLabelElement text_uri;
36 protected NumberWithLabelElement text_size;
37
38 public MediaRepresentationPartElement(CdmFormFactory formFactory,
39 AbstractFormSection section,
40 T element, SelectionListener removeListener,
41 int style) {
42 super(formFactory, section, element, removeListener, null, style);
43 }
44
45 /** {@inheritDoc} */
46 @Override
47 public void createControls(ICdmFormElement element, int style) {
48 text_uri = formFactory.createUriWithLabelElement(element, "URI", null, style);
49 text_size = formFactory.createNumberTextWithLabelElement(element, "Size", null, style);
50 text_size.setEnabled(false);
51 }
52
53 @Override
54 public void setEntity(T entity) {
55 this.entity = entity;
56 if(entity.getSize() != null){
57 text_size.setText(FileUtils.byteCountToDisplaySize(entity.getSize()));
58 }
59 if(entity.getUri() != null){
60 text_uri.setParsedText(entity.getUri());
61 } else {
62 String uriBuffer = getParentMediaDetailElement().getUriBuffer();
63 if(uriBuffer!=null){
64 text_uri.setText(uriBuffer);
65 text_uri.parseText();//just to update the error label
66 }
67 }
68 }
69
70 @Override
71 public void handleEvent(Object eventSource) {
72 if(eventSource == text_uri){
73 URI uri = text_uri.parseText();
74 getEntity().setUri(uri);
75 if(uri==null){
76 //buffer URI if parsing error occurred
77 MediaDetailElement parentMediaDetailElement = getParentMediaDetailElement();
78 if(parentMediaDetailElement!=null){
79 parentMediaDetailElement.setUriBuffer(text_uri.getText());
80 }
81 }
82
83 firePropertyChangeEvent(this);
84 }
85 }
86
87 protected MediaDetailElement getParentMediaDetailElement() {
88 ICdmFormElement parentElement = getParentElement();
89 while(parentElement!=null){
90 parentElement = parentElement.getParentElement();
91 if(parentElement instanceof MediaDetailElement){
92 return (MediaDetailElement) parentElement;
93 }
94 }
95 return null;
96 }
97
98 }