/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.cismap.commons.gui.piccolo.eventlistener;
import edu.umd.cs.piccolo.event.PInputEvent;
import edu.umd.cs.piccolo.util.PBounds;
import java.awt.geom.Point2D;
import de.cismet.cismap.commons.features.PureNewFeature;
import de.cismet.cismap.commons.interaction.CismapBroker;
import de.cismet.cismap.commons.interaction.events.MapSearchEvent;
/**
* DOCUMENT ME!
*
* @author thorsten.hell@cismet.de
* @version $Revision$, $Date$
*/
public class BoundingBoxSearchListener extends RectangleRubberBandListener {
//~ Constructors -----------------------------------------------------------
/**
* Creates a new instance of BoundingBoxSearchListener.
*/
public BoundingBoxSearchListener() {
}
//~ Methods ----------------------------------------------------------------
@Override
public void mouseReleased(final PInputEvent e) {
super.mouseReleased(e);
final MapSearchEvent mse = new MapSearchEvent();
final PBounds pb = super.rectangle.getFullBounds();
final Point2D[] boundingBoxPoints = new Point2D[2];
boundingBoxPoints[0] = new Point2D.Double(pb.getMinX(), pb.getMinY());
boundingBoxPoints[1] = new Point2D.Double(pb.getMaxX(), pb.getMaxY());
final Point2D[] p = new Point2D[5];
p[0] = (Point2D)boundingBoxPoints[0];
p[2] = (Point2D)boundingBoxPoints[1];
p[1] = new Point2D.Double(p[0].getX(), p[2].getY());
p[3] = new Point2D.Double(p[2].getX(), p[0].getY());
p[4] = p[0];
final PureNewFeature pnf = new PureNewFeature(p, CismapBroker.getInstance().getMappingComponent().getWtst());
mse.setGeometry(pnf.getGeometry());
mse.setBounds(super.rectangle.getFullBounds());
CismapBroker.getInstance().fireMapSearchInited(mse);
}
}