Mercurial > hg > de.mpg.mpiwg.itgroup.digilib.plugin
view 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 |
line wrap: on
line source
package de.mpg.mpiwg.itgroup.digilib.digiImage; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.axiom.om.OMOutputFormat; import org.apache.axis2.databinding.types.soapencoding.Array; import org.apache.commons.lang.StringUtils; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import de.mpg.mpiwg.itgroup.digilib.manipulator.extensions.RectangleListener; public class DigiImage implements IDigiImage { private static String[] omitIfNegativeArray = {"dw","dh","ddpi","ddpix","ddpiy"}; private static List<String> omitIfNegative = Arrays.asList(omitIfNegativeArray); private Label label; public Label getLabel() { return label; } public void setLabel(Label label) { this.label = label; } private URL url; private Composite parent; private String baseUrl="http://digilib.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler"; private DigiImageParameter dp; public DigiImage(Composite parent, int style, DigiImageParameter dp) { //super(parent,style); label = new Label(parent, style); this.parent = parent; this.dp=dp; try { setNewURL(createUrlFromParameter(dp)); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void setNewURL(URL url) { this.url = url; // TODO Auto-generated constructor stub InputStream is; try { is = url.openStream(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return; } Image img = new Image(parent.getDisplay(),is); //Label label = new Label(parent, SWT.None); label.setImage(img); label.setVisible(true); } public Composite getParent() { return parent; } private URL createUrlFromParameter(DigiImageParameter dp) throws MalformedURLException{ URL url; Map<String,String> qa= new HashMap<String,String>(); setPm(qa,"fn",dp.getFn()); setPm(qa,"pn",dp.getPn()); setPm(qa,"dw",dp.getDw()); setPm(qa,"dh",dp.getDh()); setPm(qa,"wx",dp.getWx()); setPm(qa,"wy",dp.getWy()); setPm(qa,"ws",dp.getWs()); setPm(qa,"ww",dp.getWw()); setPm(qa,"wh",dp.getWh()); setPm(qa,"mo",dp.getMo()); setPm(qa,"cont",dp.getCont()); setPm(qa,"brgt",dp.getBrgt()); setPm(qa,"rot",dp.getRot()); setPm(qa,"rgba",dp.getRgba()); setPm(qa,"rgbm",dp.getRgbm()); setPm(qa,"ddpi",dp.getDdpi()); setPm(qa,"ddpix",dp.getDdpix()); setPm(qa,"ddpiy",dp.getDdpiy()); List<String> queryArray = new ArrayList<String>(); for(String key:qa.keySet()){ queryArray.add(key+"="+qa.get(key)); } String queryString = StringUtils.join(queryArray,"&"); String stringUrl=baseUrl+"?"+queryString; return new URL(stringUrl); } private void setPm(Map<String, String> qa, String key, Object value){ String v; if (String.class.isInstance(value)){ v=(String)value; qa.put(key, v); } else if (Integer.class.isInstance(value)){ if (!((Integer)value==-1 & omitIfNegative.indexOf(key)>-1)) { // nicht vernachlaessigen v=String.valueOf(value); qa.put(key, v); } } else { v=String.valueOf(value); qa.put(key, v); } } public DigiImageParameter getParameter() { return dp; } public void setParameter(DigiImageParameter dp) { this.dp=dp; } public void redraw(){ try { setNewURL(createUrlFromParameter(dp)); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private RectangleListener rectangleListener=null; public RectangleListener getRectangleListener() { // TODO Auto-generated method stub return rectangleListener; } public void setRectangleListener(RectangleListener rectangleListener) { this.rectangleListener = rectangleListener; } }