comparison src/de/mpg/mpiwg/itgroup/digilib/digiImage/DigiImageController.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.net.MalformedURLException;
4 import java.net.URL;
5 import java.util.ArrayList;
6 import java.util.List;
7
8 import org.apache.commons.lang.StringUtils;
9 import org.eclipse.swt.graphics.Point;
10
11 import de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.RectangleListener;
12
13 public class DigiImageController {
14
15
16
17 public DigiImage digiImage;
18 private DigiImageParameter parameter;
19
20 protected DigiImageController(){}
21
22 public DigiImageController(DigiImage di){
23 this.digiImage=di;
24 }
25
26
27
28 public void mir(String mode) {
29
30 DigiImageParameter dp = digiImage.getParameter();
31
32 String parameter = dp.getMo();
33
34
35 // mo kann mehrere durch komma getrennte parameter haben
36 String[] splittmo= parameter.split(",");
37 Boolean hasHMir = false;
38 List<String> newmo = new ArrayList<String>();
39 for(String m: splittmo){
40 if (m.equals(mode)){
41 hasHMir=true;
42 } else {
43 newmo.add(m);
44 }
45 }
46 if(!hasHMir){ // kein hmir dann dazufuegen
47 newmo.add(mode);
48 }
49 String newmoString = StringUtils.join(newmo,",");
50
51 dp.setMo(newmoString);
52
53
54 digiImage.setParameter(dp);
55 digiImage.redraw();
56 }
57
58 public void vmir() {
59 mir("vmir");
60
61 }
62
63 public void hmir() {
64 mir("hmir");
65
66 }
67
68 public void rotate(float rotateValue) {
69 digiImage.getParameter().setRot(rotateValue);
70 digiImage.redraw();
71 }
72
73
74
75
76 public void zoomArea(int x, int y, int x2, int y2) {
77
78 Point size = digiImage.getLabel().getSize();
79
80 float relx = new Float(x)/new Float(size.x);
81 float rely = new Float(y)/new Float(size.y);
82
83 float relx2 = new Float(x2)/new Float(size.x);
84 float rely2 = new Float(y2)/new Float(size.y);
85
86 DigiImageParameter dp = digiImage.getParameter();
87
88 float Ww = dp.getWw();
89 float Wh = dp.getWh();
90
91 float Wx = dp.getWx();
92 float Wy = dp.getWy();
93
94
95 float nWx = relx*Ww+Wx;
96 float nWy = rely*Wh+Wy;
97
98 float nWw = (relx2-relx)*Ww;
99 float nWh = (rely2-rely)*Wh;
100
101
102
103 dp.setWx(nWx);
104 dp.setWy(nWy);
105 dp.setWw(nWw);
106 dp.setWh(nWh);
107 digiImage.setParameter(dp);
108 digiImage.redraw();
109
110
111 // setRot(rotateValue);
112 }
113
114 public void zoomFull(){
115 DigiImageParameter dp = digiImage.getParameter();
116 dp.setWw(1);
117 dp.setWh(1);
118
119 dp.setWx(0);
120 dp.setWy(0);
121
122 digiImage.setParameter(dp);
123 digiImage.redraw();
124 }
125
126 public void scaleDown() {
127 DigiImageParameter dp = digiImage.getParameter();
128 float ws = dp.getWs();
129 if (ws>1){
130 dp.setWs(ws-1);
131 digiImage.setParameter(dp);
132 digiImage.redraw();
133
134 }
135
136 }
137
138 public void scaleUp() {
139 DigiImageParameter dp = digiImage.getParameter();
140 float ws = dp.getWs();
141
142 dp.setWs(ws+1);
143 digiImage.setParameter(dp);
144 digiImage.redraw();
145
146
147
148
149 }
150
151 public void prevPage() {
152 DigiImageParameter dp = digiImage.getParameter();
153 int pn = dp.getPn();
154 if (pn>1)
155 pn=pn-1;
156 dp.setPn(pn);
157 digiImage.setParameter(dp);
158 digiImage.redraw();
159
160 }
161
162 public void nextPage() {
163 DigiImageParameter dp = digiImage.getParameter();
164 int pn = dp.getPn();
165
166 pn=pn+1;
167 dp.setPn(pn);
168 digiImage.setParameter(dp);
169 digiImage.redraw();
170
171
172 }
173
174
175 }