Mercurial > hg > de.mpg.mpiwg.itgroup.digilib.plugin
comparison src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImage.java @ 1:83c58ea33792
first release (continued)
author | dwinter |
---|---|
date | Mon, 03 Jan 2011 09:11:25 +0100 |
parents | |
children | e63a64652f4d |
comparison
equal
deleted
inserted
replaced
0:6829553d2378 | 1:83c58ea33792 |
---|---|
1 package de.mpg.mpiwg.itgroup.digilib.digiImage; | |
2 | |
3 import java.io.IOException; | |
4 import java.io.InputStream; | |
5 import java.net.MalformedURLException; | |
6 import java.net.URL; | |
7 import java.util.ArrayList; | |
8 import java.util.Arrays; | |
9 import java.util.HashMap; | |
10 import java.util.List; | |
11 import java.util.Map; | |
12 | |
13 import org.apache.axiom.om.OMOutputFormat; | |
14 import org.apache.axis2.databinding.types.soapencoding.Array; | |
15 import org.apache.commons.lang.StringUtils; | |
16 import org.eclipse.swt.SWT; | |
17 import org.eclipse.swt.graphics.Image; | |
18 import org.eclipse.swt.graphics.Point; | |
19 import org.eclipse.swt.widgets.Composite; | |
20 import org.eclipse.swt.widgets.Label; | |
21 | |
22 import de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.RectangleListener; | |
23 | |
24 | |
25 | |
26 | |
27 public class DigiImage implements IDigiImage { | |
28 | |
29 private static String[] omitIfNegativeArray = {"dw","dh","ddpi","ddpix","ddpiy"}; | |
30 private static List<String> omitIfNegative = Arrays.asList(omitIfNegativeArray); | |
31 | |
32 private Label label; | |
33 public Label getLabel() { | |
34 return label; | |
35 } | |
36 | |
37 public void setLabel(Label label) { | |
38 this.label = label; | |
39 } | |
40 | |
41 private URL url; | |
42 private Composite parent; | |
43 private String baseUrl="http://digilib.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler"; | |
44 private DigiImageParameter dp; | |
45 | |
46 | |
47 public DigiImage(Composite parent, int style, DigiImageParameter dp) { | |
48 //super(parent,style); | |
49 label = new Label(parent, style); | |
50 this.parent = parent; | |
51 this.dp=dp; | |
52 try { | |
53 setNewURL(createUrlFromParameter(dp)); | |
54 } catch (MalformedURLException e) { | |
55 // TODO Auto-generated catch block | |
56 e.printStackTrace(); | |
57 } | |
58 | |
59 } | |
60 | |
61 private void setNewURL(URL url) { | |
62 this.url = url; | |
63 // TODO Auto-generated constructor stub | |
64 | |
65 InputStream is; | |
66 try { | |
67 is = url.openStream(); | |
68 } catch (IOException e) { | |
69 // TODO Auto-generated catch block | |
70 e.printStackTrace(); | |
71 return; | |
72 } | |
73 Image img = new Image(parent.getDisplay(),is); | |
74 //Label label = new Label(parent, SWT.None); | |
75 label.setImage(img); | |
76 | |
77 label.setVisible(true); | |
78 } | |
79 | |
80 | |
81 public Composite getParent() { | |
82 return parent; | |
83 } | |
84 | |
85 | |
86 private URL createUrlFromParameter(DigiImageParameter dp) throws MalformedURLException{ | |
87 URL url; | |
88 Map<String,String> qa= new HashMap<String,String>(); | |
89 | |
90 setPm(qa,"fn",dp.getFn()); | |
91 setPm(qa,"pn",dp.getPn()); | |
92 | |
93 setPm(qa,"dw",dp.getDw()); | |
94 setPm(qa,"dh",dp.getDh()); | |
95 | |
96 setPm(qa,"wx",dp.getWx()); | |
97 setPm(qa,"wy",dp.getWy()); | |
98 setPm(qa,"ws",dp.getWs()); | |
99 setPm(qa,"ww",dp.getWw()); | |
100 setPm(qa,"wh",dp.getWh()); | |
101 | |
102 | |
103 setPm(qa,"mo",dp.getMo()); | |
104 | |
105 setPm(qa,"cont",dp.getCont()); | |
106 setPm(qa,"brgt",dp.getBrgt()); | |
107 | |
108 setPm(qa,"rot",dp.getRot()); | |
109 | |
110 setPm(qa,"rgba",dp.getRgba()); | |
111 setPm(qa,"rgbm",dp.getRgbm()); | |
112 | |
113 setPm(qa,"ddpi",dp.getDdpi()); | |
114 setPm(qa,"ddpix",dp.getDdpix()); | |
115 setPm(qa,"ddpiy",dp.getDdpiy()); | |
116 | |
117 List<String> queryArray = new ArrayList<String>(); | |
118 for(String key:qa.keySet()){ | |
119 queryArray.add(key+"="+qa.get(key)); | |
120 } | |
121 String queryString = StringUtils.join(queryArray,"&"); | |
122 | |
123 String stringUrl=baseUrl+"?"+queryString; | |
124 return new URL(stringUrl); | |
125 } | |
126 | |
127 private void setPm(Map<String, String> qa, String key, Object value){ | |
128 String v; | |
129 if (String.class.isInstance(value)){ | |
130 v=(String)value; | |
131 qa.put(key, v); | |
132 } else if (Integer.class.isInstance(value)){ | |
133 if (!((Integer)value==-1 & omitIfNegative.indexOf(key)>-1)) { // nicht vernachlaessigen | |
134 v=String.valueOf(value); | |
135 qa.put(key, v); | |
136 } | |
137 } else { | |
138 v=String.valueOf(value); | |
139 qa.put(key, v); | |
140 } | |
141 | |
142 } | |
143 | |
144 public DigiImageParameter getParameter() { | |
145 | |
146 return dp; | |
147 } | |
148 | |
149 public void setParameter(DigiImageParameter dp) { | |
150 this.dp=dp; | |
151 | |
152 } | |
153 | |
154 public void redraw(){ | |
155 try { | |
156 setNewURL(createUrlFromParameter(dp)); | |
157 } catch (MalformedURLException e) { | |
158 // TODO Auto-generated catch block | |
159 e.printStackTrace(); | |
160 } | |
161 } | |
162 | |
163 private RectangleListener rectangleListener=null; | |
164 | |
165 public RectangleListener getRectangleListener() { | |
166 // TODO Auto-generated method stub | |
167 return rectangleListener; | |
168 } | |
169 | |
170 public void setRectangleListener(RectangleListener rectangleListener) { | |
171 this.rectangleListener = rectangleListener; | |
172 } | |
173 | |
174 } | |
175 | |
176 |