/*
* Created on 09.01.2006 for PIROL
*
* SVN header information:
* $Author: LBST-PF-3\orahn $
* $Rev: 2509 $
* $Date: 2006-10-06 10:01:50 +0000 (Fr, 06 Okt 2006) $
* $Id: ExportEnvelopeAsGeometryPlugIn.java 2509 2006-10-06 10:01:50Z LBST-PF-3\orahn $
*/
package org.openjump.core.ui.plugin.layer.pirolraster;
import org.openjump.core.apitools.LayerTools;
import org.openjump.core.apitools.objecttyperoles.RoleOutline;
import org.openjump.core.rasterimage.RasterImageLayer;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jump.I18N;
import com.vividsolutions.jump.feature.AttributeType;
import com.vividsolutions.jump.feature.BasicFeature;
import com.vividsolutions.jump.feature.FeatureCollection;
import com.vividsolutions.jump.feature.FeatureDataset;
import com.vividsolutions.jump.feature.FeatureSchema;
import com.vividsolutions.jump.workbench.plugin.AbstractPlugIn;
import com.vividsolutions.jump.workbench.plugin.PlugInContext;
/**
* PlugIn to export the bounding box of the RasterImageLayer as a geometry layer, so
* it can be changed, transformed to a fence and be re-applied to the RasterImage.<br>
* This enables all geometry operations for RasterImages.
*
* @author Ole Rahn
* <br>
* <br>FH Osnabrück - University of Applied Sciences Osnabrück,
* <br>Project: PIROL (2006),
* <br>Subproject: Daten- und Wissensmanagement
*
* @version $Rev: 2509 $
* [sstein] - 22.Feb.2009 - modified to work in OpenJUMP
*/
public class ExportEnvelopeAsGeometryPlugIn extends AbstractPlugIn {
protected static FeatureSchema defaultSchema = null;
public ExportEnvelopeAsGeometryPlugIn() {
//super(new PersonalLogger(DebugUserIds.OLE));
if (ExportEnvelopeAsGeometryPlugIn.defaultSchema==null){
ExportEnvelopeAsGeometryPlugIn.defaultSchema = new FeatureSchema();
ExportEnvelopeAsGeometryPlugIn.defaultSchema.addAttribute("geometry", AttributeType.GEOMETRY);
}
}
/**
*@inheritDoc
*/
public String getIconString() {
return null;
}
/**
* @inheritDoc
*/
public String getName() {
return I18N.get("org.openjump.core.ui.plugin.layer.pirolraster.ExportEnvelopeAsGeometryPlugIn.Export-Envelope-As-Geometry");
}
/**
*@inheritDoc
*/
public boolean execute(PlugInContext context) throws Exception {
RasterImageLayer rLayer = (RasterImageLayer) LayerTools.getSelectedLayerable(context, RasterImageLayer.class);
if (rLayer==null){
context.getWorkbenchFrame().warnUser(I18N.get("pirol.plugIns.EditAttributeByFormulaPlugIn.no-layer-selected"));
return false;
}
Geometry geom = rLayer.getEnvelopeAsGeometry();
if (geom==null){
return false;
}
FeatureCollection newFeaturecollection = new FeatureDataset((FeatureSchema)ExportEnvelopeAsGeometryPlugIn.defaultSchema.clone());
BasicFeature feature = new BasicFeature((FeatureSchema)ExportEnvelopeAsGeometryPlugIn.defaultSchema.clone());
feature.setAttribute("geometry", geom);
newFeaturecollection.add(feature);
LayerTools.addStandardResultLayer(I18N.get("org.openjump.core.ui.plugin.layer.pirolraster.ExportEnvelopeAsGeometryPlugIn.Geometry") + "-" + rLayer.getName(), newFeaturecollection, context, new RoleOutline() );
return false;
}
}