comparison src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImageParameter.java @ 20:2f47c136b8a6

added property view
author dwinter
date Tue, 04 Jan 2011 16:35:41 +0100
parents e63a64652f4d
children 643fa1daa70c
comparison
equal deleted inserted replaced
19:2bb7d0aea33f 20:2f47c136b8a6
1 package de.mpg.mpiwg.itgroup.digilib.digiImage; 1 package de.mpg.mpiwg.itgroup.digilib.digiImage;
2
3 import java.lang.reflect.Field;
4 import java.lang.reflect.InvocationTargetException;
5 import java.lang.reflect.Method;
6 import java.util.HashMap;
7 import java.util.List;
8 import java.util.Map;
9
10 import com.sun.xml.xsom.impl.parser.DelayedRef.Type;
11
12 import de.mpg.mpiwg.itgroup.digilib.plugin.editors.DigilibLinkEditorObservable;
2 13
3 /** 14 /**
4 * Parameter which describe the state of an Digilib-Image, 15 * Parameter which describe the state of an Digilib-Image,
5 * settings and parameter names are described in @see {@link http://developer.berlios.de/docman/?group_id=251} 16 * settings and parameter names are described in @see {@link http://developer.berlios.de/docman/?group_id=251}
6 * @author dwinter 17 * @author dwinter
7 * 18 *
8 */ 19 */
9 public class DigiImageParameter { 20 public class DigiImageParameter {
10 21
11 private String fn; 22 public String fn;
12 23
13 private int pn=1; 24 public int pn=1;
14 25
15 private int dw=-1; 26 public int dw=-1;
16 private int dh=-1; 27 public int dh=-1;
17 28
18 private float wx=0; 29 public float wx=0;
19 private float wy=0; 30 public float wy=0;
20 31
21 private float ww=1; 32 public float ww=1;
22 private float wh=1; 33 public float wh=1;
23 private float ws=1; 34 public float ws=1;
24 35
25 private String mo="fit"; 36 public String mo="fit";
26 37
27 private float cont=0; 38 public float cont=0;
28 private float brgt=0; 39 public float brgt=0;
29 40
30 private float rot=0; 41 public float rot=0;
31 42
32 private String rgbm="0/0/0"; 43 public String rgbm="0/0/0";
33 private String rgba="0/0/0"; 44 public String rgba="0/0/0";
34 45
35 private int ddpi=-1; 46 public int ddpi=-1;
36 private int ddpix=-1; 47 public int ddpix=-1;
37 private int ddpiy=-1; 48 public int ddpiy=-1;
38 49
39 public DigiImageParameter(String fn){ 50 public DigiImageParameter(String fn){
40 this.fn = fn; 51 this.fn = fn;
41 } 52 }
53
54 public DigiImageParameter(Map<String,String> params){
55
56 for(String key: params.keySet()){
57 Field f;
58 try {
59 f = this.getClass().getField(key);
60 } catch (SecurityException e) {
61 continue;
62 } catch (NoSuchFieldException e) {
63 continue;
64 }
65 if (f!=null){
66 try {
67 Class<?> T = f.getType();
68 String name= T.getName();
69 String valueString = params.get(key);
70 Object value = valueString;
71 if (name.equals("float")){
72 value = Float.valueOf(valueString);
73 } else if (name.equals("double")){
74 value = Double.valueOf(valueString);
75 } else if (name.equals("int")){
76 value = Integer.valueOf(valueString);
77 } else if (name.equals("Float")){
78 value = Float.valueOf(valueString);
79 } else if (name.equals("Double")){
80 value = Double.valueOf(valueString);
81 } else if (name.equals("Integer")){
82 value = Integer.valueOf(valueString);
83 }
84
85
86 f.set(this, value);
87
88 } catch (IllegalArgumentException e) {
89 // TODO Auto-generated catch block
90 e.printStackTrace();
91 continue;
92 } catch (IllegalAccessException e) {
93 // TODO Auto-generated catch block
94 e.printStackTrace();
95 continue;
96
97 }
98 }
99 }
100 }
101
102
42 public String getFn() { 103 public String getFn() {
43 return fn; 104 return fn;
44 } 105 }
45 public void setFn(String fn) { 106 public void setFn(String fn) {
46 this.fn = fn; 107 this.fn = fn;
148 this.ddpiy = ddpiy; 209 this.ddpiy = ddpiy;
149 } 210 }
150 211
151 212
152 213
153 214 public Map<String, String> createMapFromParameters(List<String> omitIfNegative) {
154 215
216
217 Map<String,String> qa= new HashMap<String,String>();
218
219 setPm(qa,"fn",getFn(),omitIfNegative);
220 setPm(qa,"pn",getPn(),omitIfNegative);
221
222 setPm(qa,"dw",getDw(),omitIfNegative);
223 setPm(qa,"dh",getDh(),omitIfNegative);
224
225 setPm(qa,"wx",getWx(),omitIfNegative);
226 setPm(qa,"wy",getWy(),omitIfNegative);
227 setPm(qa,"ws",getWs(),omitIfNegative);
228 setPm(qa,"ww",getWw(),omitIfNegative);
229 setPm(qa,"wh",getWh(),omitIfNegative);
230
231
232 setPm(qa,"mo",getMo(),omitIfNegative);
233
234 setPm(qa,"cont",getCont(),omitIfNegative);
235 setPm(qa,"brgt",getBrgt(),omitIfNegative);
236
237 setPm(qa,"rot",getRot(),omitIfNegative);
238
239 setPm(qa,"rgba",getRgba(),omitIfNegative);
240 setPm(qa,"rgbm",getRgbm(),omitIfNegative);
241
242 setPm(qa,"ddpi",getDdpi(),omitIfNegative);
243 setPm(qa,"ddpix",getDdpix(),omitIfNegative);
244 setPm(qa,"ddpiy",getDdpiy(),omitIfNegative);
245 return qa;
246 }
247
248
249
250
251 /**
252 * Puts the parameter as key-value into the map repecting the setting in @see {@link #omitIfNegativeArray}.
253 * @param qa
254 * @param key
255 * @param value
256 * @param omitIfNegative
257 */
258 private void setPm(Map<String, String> qa, String key, Object value, List<String> omitIfNegative){
259 String v;
260
261 if (omitIfNegative==null){
262 qa.put(key, String.valueOf(value));
263 return;
264 }
265 if (String.class.isInstance(value)){
266 v=(String)value;
267 qa.put(key, v);
268 } else if (Integer.class.isInstance(value)){
269 if (!((Integer)value==-1 & omitIfNegative.indexOf(key)>-1)) { // nicht vernachlaessigen
270 v=String.valueOf(value);
271 qa.put(key, v);
272 }
273 } else {
274 v=String.valueOf(value);
275 qa.put(key, v);
276 }
155 277
156 } 278 }
279
280
281
282 }