Mercurial > hg > de.mpg.mpiwg.itgroup.digilib.core
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 } |