/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package de.cismet.cismap.commons.gui.piccolo.eventlistener;
import edu.umd.cs.piccolo.event.PBasicInputEventHandler;
import edu.umd.cs.piccolo.event.PInputEvent;
import de.cismet.cismap.commons.BoundingBox;
import de.cismet.cismap.commons.SimpleGetFeatureInfoUrl;
import de.cismet.cismap.commons.gui.MappingComponent;
import de.cismet.cismap.commons.raster.wms.simple.SimpleWmsGetMapUrl;
import de.cismet.tools.BrowserLauncher;
/**
* DOCUMENT ME!
*
* @author thorsten
* @version $Revision$, $Date$
*/
public class CustomFeatureInfoListener extends PBasicInputEventHandler {
//~ Instance fields --------------------------------------------------------
private final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(this.getClass());
private String featureInforetrievalUrl;
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public String getFeatureInforetrievalUrl() {
return featureInforetrievalUrl;
}
/**
* DOCUMENT ME!
*
* @param featureInforetrievalUrl DOCUMENT ME!
*/
public void setFeatureInforetrievalUrl(final String featureInforetrievalUrl) {
this.featureInforetrievalUrl = featureInforetrievalUrl;
}
@Override
public void mouseClicked(final PInputEvent pInputEvent) {
if (pInputEvent.getComponent() instanceof MappingComponent) {
final MappingComponent mc = (MappingComponent)pInputEvent.getComponent();
if (log.isDebugEnabled()) {
log.debug("featurInfoRetrievalUrl " + featureInforetrievalUrl); // NOI18N
}
final SimpleGetFeatureInfoUrl url = new SimpleGetFeatureInfoUrl(featureInforetrievalUrl);
url.setX((int)pInputEvent.getCanvasPosition().getX());
url.setY((int)pInputEvent.getCanvasPosition().getY());
url.setHeight(mc.getHeight());
url.setWidth(mc.getWidth());
final BoundingBox bb = mc.getCurrentBoundingBoxFromCamera();
url.setX1(bb.getX1());
url.setX2(bb.getX2());
url.setY1(bb.getY1());
url.setY2(bb.getY2());
try {
String u = url.toString();
if (u != null) {
u = u.trim();
}
log.info("Open:" + u); // NOI18N
BrowserLauncher.openURL(u);
} catch (Exception e) {
log.error("Error", e); // NOI18N
}
}
}
}