1 package de.orangecafe.amazonrcp.binding;
2
3 import org.springframework.richclient.form.binding.support.CustomBinding;
4 import org.springframework.binding.form.FormModel;
5 import org.springframework.binding.value.ValueModel;
6
7 import javax.swing.*;
8
9 import com.amazon.webservices.awsecommerceservice._2007_04_04.Image;
10
11 import java.awt.*;
12 import java.net.URL;
13 import java.net.MalformedURLException;
14
15
16
17
18 public class ImageBinding extends CustomBinding {
19 private JLabel _label;
20
21 protected ImageBinding(final JLabel label, final FormModel formModel, final String formPropertyPath) {
22 super(formModel, formPropertyPath, Image.class);
23
24 _label = label;
25 }
26
27 protected JComponent doBindControl() {
28 ValueModel valueModel = getValueModel();
29 Image image = (Image) valueModel.getValue();
30
31 createImage(image);
32
33 return _label;
34 }
35
36 protected void readOnlyChanged() {
37
38 }
39
40 protected void enabledChanged() {
41
42 }
43
44 protected void valueModelChanged(final Object newValue) {
45 createImage((Image) newValue);
46 }
47
48 private void createImage(final Image image) {
49 java.awt.Image picture;
50 try {
51 if (image != null) {
52 picture = Toolkit.getDefaultToolkit().getImage(new URL(image.getURL()));
53 } else {
54 picture = getDefaultImage();
55 }
56 } catch (MalformedURLException e) {
57 picture = getDefaultImage();
58 }
59
60 _label.setIcon(new ImageIcon(picture));
61 }
62
63 private java.awt.Image getDefaultImage() {
64 try {
65 return Toolkit.getDefaultToolkit().getImage(new URL("http://ec1.images-amazon.com/images/G/03/x-site/icons/no-img-sm._V45782892_AA90_.gif"));
66 } catch (MalformedURLException e) {
67 return null;
68
69 }
70 }
71 }