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