Project

General

Profile

Download (2.98 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 * 
3
 */
4
package eu.etaxonomy.taxeditor.ui.element;
5

    
6
import java.net.URI;
7

    
8
import org.eclipse.swt.SWT;
9
import org.eclipse.swt.browser.Browser;
10
import org.eclipse.swt.events.ControlEvent;
11
import org.eclipse.swt.events.ControlListener;
12
import org.eclipse.swt.graphics.Rectangle;
13
import org.eclipse.ui.forms.widgets.TableWrapData;
14

    
15

    
16
/**
17
 * <p>BrowserElement class.</p>
18
 *
19
 * @author n.hoffmann
20
 * @version $Id: $
21
 */
22
public class BrowserElement extends AbstractCdmFormElement implements ControlListener{
23

    
24
	private Browser browser;
25
	
26
	private String imageUriString;
27
	
28
	/**
29
	 * <p>Constructor for BrowserElement.</p>
30
	 *
31
	 * @param style a int.
32
	 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
33
	 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
34
	 * @param imageUri a {@link java.net.URI} object.
35
	 */
36
	protected BrowserElement(CdmFormFactory formFactory, ICdmFormElement parentElement, URI imageUri, int style) {
37
		super(formFactory, parentElement);
38
		formFactory.createLabel(getLayoutComposite(), "");
39
		
40
		browser = new Browser(getLayoutComposite(), SWT.NONE);
41
		addControl(browser);
42
		
43
		getLayoutComposite().setLayoutData(LayoutConstants.FILL());
44
		
45

    
46
		layoutBrowser();
47
		
48
		showBrowser();
49
		browser.addControlListener(this);
50
		
51
		this.setImageUri(imageUri);
52
	}
53

    
54
	/**
55
	 * 
56
	 */
57
	private void layoutBrowser() {
58
		TableWrapData layoutData = LayoutConstants.FILL();
59
		layoutData.heightHint = 1000;
60
		
61
		browser.setLayoutData(layoutData);
62
	}
63

    
64
	/**
65
	 * 
66
	 */
67
	private void showBrowser() {
68
		
69
		String html = "";
70
		html = "<HTML><HEAD><TITLE></TITLE></HEAD><BODY marginwidth=0 marginheight=0 leftmargin=0 topmargin=0>";
71
		html += "<img width=\"" + calculateWidth() + "\" src=\"" + getImageUriString() + "\" />";
72
		html += "</BODY></HTML>";
73
		
74
		browser.setText(html);
75
	}
76
	
77
	/**
78
	 * <p>calculateWidth</p>
79
	 *
80
	 * @return a int.
81
	 */
82
	public int calculateWidth() {	
83
		Rectangle boundaries = browser.getBounds();
84
		return boundaries.width;
85
	}
86
	
87
	/* (non-Javadoc)
88
	 * @see org.eclipse.swt.events.ControlListener#controlMoved(org.eclipse.swt.events.ControlEvent)
89
	 */
90
	/** {@inheritDoc} */
91
	public void controlMoved(ControlEvent e) {
92
		showBrowser();
93
	}
94

    
95
	/* (non-Javadoc)
96
	 * @see org.eclipse.swt.events.ControlListener#controlResized(org.eclipse.swt.events.ControlEvent)
97
	 */
98
	/** {@inheritDoc} */
99
	public void controlResized(ControlEvent e) {
100
		showBrowser();
101
	}
102

    
103
	/**
104
	 * <p>setImageUri</p>
105
	 *
106
	 * @param imageUri the imageUri to set
107
	 */
108
	public void setImageUri(URI imageUri) {
109
		setImageUriString(imageUri != null ? imageUri.toString() : "");
110
	}
111
	
112
	/**
113
	 * <p>Setter for the field <code>imageUriString</code>.</p>
114
	 *
115
	 * @param imageUriString a {@link java.lang.String} object.
116
	 */
117
	public void setImageUriString(String imageUriString){
118
		this.imageUriString = imageUriString;
119
		showBrowser();
120
	}
121

    
122
	/**
123
	 * <p>Getter for the field <code>imageUriString</code>.</p>
124
	 *
125
	 * @return the imageUri
126
	 */
127
	public String getImageUriString() {
128
		return imageUriString;
129
	}
130

    
131
}
(5-5/38)