Mercurial > hg > de.mpg.mpiwg.itgroup.digilib.plugin
view 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 |
line wrap: on
line source
package de.mpg.mpiwg.itgroup.digilib.digiImage; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.StringUtils; import org.eclipse.swt.graphics.Point; import de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.RectangleListener; public class DigiImageController { public DigiImage digiImage; private DigiImageParameter parameter; protected DigiImageController(){} public DigiImageController(DigiImage di){ this.digiImage=di; } public void mir(String mode) { DigiImageParameter dp = digiImage.getParameter(); String parameter = dp.getMo(); // mo kann mehrere durch komma getrennte parameter haben String[] splittmo= parameter.split(","); Boolean hasHMir = false; List<String> newmo = new ArrayList<String>(); for(String m: splittmo){ if (m.equals(mode)){ hasHMir=true; } else { newmo.add(m); } } if(!hasHMir){ // kein hmir dann dazufuegen newmo.add(mode); } String newmoString = StringUtils.join(newmo,","); dp.setMo(newmoString); digiImage.setParameter(dp); digiImage.redraw(); } public void vmir() { mir("vmir"); } public void hmir() { mir("hmir"); } public void rotate(float rotateValue) { digiImage.getParameter().setRot(rotateValue); digiImage.redraw(); } public void zoomArea(int x, int y, int x2, int y2) { Point size = digiImage.getLabel().getSize(); float relx = new Float(x)/new Float(size.x); float rely = new Float(y)/new Float(size.y); float relx2 = new Float(x2)/new Float(size.x); float rely2 = new Float(y2)/new Float(size.y); DigiImageParameter dp = digiImage.getParameter(); float Ww = dp.getWw(); float Wh = dp.getWh(); float Wx = dp.getWx(); float Wy = dp.getWy(); float nWx = relx*Ww+Wx; float nWy = rely*Wh+Wy; float nWw = (relx2-relx)*Ww; float nWh = (rely2-rely)*Wh; dp.setWx(nWx); dp.setWy(nWy); dp.setWw(nWw); dp.setWh(nWh); digiImage.setParameter(dp); digiImage.redraw(); // setRot(rotateValue); } public void zoomFull(){ DigiImageParameter dp = digiImage.getParameter(); dp.setWw(1); dp.setWh(1); dp.setWx(0); dp.setWy(0); digiImage.setParameter(dp); digiImage.redraw(); } public void scaleDown() { DigiImageParameter dp = digiImage.getParameter(); float ws = dp.getWs(); if (ws>1){ dp.setWs(ws-1); digiImage.setParameter(dp); digiImage.redraw(); } } public void scaleUp() { DigiImageParameter dp = digiImage.getParameter(); float ws = dp.getWs(); dp.setWs(ws+1); digiImage.setParameter(dp); digiImage.redraw(); } public void prevPage() { DigiImageParameter dp = digiImage.getParameter(); int pn = dp.getPn(); if (pn>1) pn=pn-1; dp.setPn(pn); digiImage.setParameter(dp); digiImage.redraw(); } public void nextPage() { DigiImageParameter dp = digiImage.getParameter(); int pn = dp.getPn(); pn=pn+1; dp.setPn(pn); digiImage.setParameter(dp); digiImage.redraw(); } }