Revision: 4387 http://sourceforge.net/p/jump-pilot/code/4387 Author: ma15569 Date: 2015-04-06 13:53:31 +0000 (Mon, 06 Apr 2015) Log Message: ----------- added random number to File name
Modified Paths: -------------- core/trunk/src/org/openjump/core/ui/plugin/layer/pirolraster/WarpImageToFencePlugIn.java Modified: core/trunk/src/org/openjump/core/ui/plugin/layer/pirolraster/WarpImageToFencePlugIn.java =================================================================== --- core/trunk/src/org/openjump/core/ui/plugin/layer/pirolraster/WarpImageToFencePlugIn.java 2015-04-06 13:42:39 UTC (rev 4386) +++ core/trunk/src/org/openjump/core/ui/plugin/layer/pirolraster/WarpImageToFencePlugIn.java 2015-04-06 13:53:31 UTC (rev 4387) @@ -9,11 +9,22 @@ */ package org.openjump.core.ui.plugin.layer.pirolraster; +import java.awt.Point; +import java.awt.image.renderable.ParameterBlock; +import java.io.File; +import java.util.Random; + +import javax.media.jai.JAI; +import javax.media.jai.RenderedOp; + import org.openjump.core.apitools.LayerTools; import org.openjump.core.apitools.PlugInContextTools; import org.openjump.core.apitools.SelectionTools; import org.openjump.core.rasterimage.CurrentLayerIsRasterImageLayerCheck; +import org.openjump.core.rasterimage.ImageAndMetadata; +import org.openjump.core.rasterimage.RasterImageIO; import org.openjump.core.rasterimage.RasterImageLayer; +import org.openjump.core.rasterimage.Resolution; import com.vividsolutions.jts.geom.Envelope; import com.vividsolutions.jts.geom.Geometry; @@ -27,38 +38,27 @@ import com.vividsolutions.jump.workbench.plugin.MultiEnableCheck; import com.vividsolutions.jump.workbench.plugin.PlugInContext; import com.vividsolutions.jump.workbench.ui.Viewport; -import java.awt.Point; -import java.awt.image.Raster; -import java.awt.image.renderable.ParameterBlock; -import java.io.File; -import javax.media.jai.JAI; -import javax.media.jai.RenderedOp; -import org.openjump.core.rasterimage.ImageAndMetadata; -import org.openjump.core.rasterimage.RasterImageIO; -import org.openjump.core.rasterimage.Resolution; - /** - * PlugIn to warp a RasterImage to the bounding box of the Fence. - * - * @author Ole Rahn + * PlugIn to warp a RasterImage to the bounding box of the Fence. + * + * @author Ole Rahn <br> * <br> - * <br>FH Osnabrück - University of Applied Sciences Osnabrück, - * <br>Project: PIROL (2006), - * <br>Subproject: Daten- und Wissensmanagement + * 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 + * @version $Rev: 2509 $ [sstein] - 22.Feb.2009 - modified to work in OpenJUMP + * @version $Rev: 4387 [Giuseppe Aruta] - 6.Apr.2015 - added random number to File name */ public class WarpImageToFencePlugIn extends AbstractPlugIn { - public WarpImageToFencePlugIn() { - //super(new PersonalLogger(DebugUserIds.OLE)); + // super(new PersonalLogger(DebugUserIds.OLE)); } /** - *@inheritDoc + * @inheritDoc */ public String getIconString() { return null; @@ -68,83 +68,112 @@ * @inheritDoc */ public String getName() { - return I18N.get("org.openjump.core.ui.plugin.layer.pirolraster.WarpImageToFencePlugIn.Warp-Image-To-Fence"); + return I18N + .get("org.openjump.core.ui.plugin.layer.pirolraster.WarpImageToFencePlugIn.Warp-Image-To-Fence"); } - + /** - *@inheritDoc + * @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")); //$NON-NLS-1$ + RasterImageLayer rLayer = (RasterImageLayer) LayerTools + .getSelectedLayerable(context, RasterImageLayer.class); + + if (rLayer == null) { + context.getWorkbenchFrame() + .warnUser( + I18N.get("pirol.plugIns.EditAttributeByFormulaPlugIn.no-layer-selected")); //$NON-NLS-1$ return false; } + Random rnd = new Random(); + int n = 1000 + rnd.nextInt(9000); + String random = Integer.toString(n); + String warped = I18N.get("ui.warp.WarpingPanel.warped"); + String fileName = warped + "_" + rLayer.getName() + "_" + random + + ".tif"; + String newLayerName = context.getLayerManager().uniqueLayerName( - I18N.get("org.openjump.core.ui.plugin.layer.pirolraster.ExtractSelectedPartOfImage.part-of") + rLayer.getName()); -// String extension = rLayer.getImageFileName().substring(rLayer.getImageFileName().lastIndexOf("."), rLayer.getImageFileName().length()); - File outFile = new File(System.getProperty("java.io.tmpdir").concat(File.separator).concat(newLayerName).concat(".tif")); + warped + "_" + rLayer.getName()); + // String extension = + // rLayer.getImageFileName().substring(rLayer.getImageFileName().lastIndexOf("."), + // rLayer.getImageFileName().length()); + File outFile = new File(System.getProperty("java.io.tmpdir") + .concat(File.separator).concat(fileName)); Geometry fence = SelectionTools.getFenceGeometry(context); Envelope envWanted = fence.getEnvelopeInternal(); - - float xScale = (float) (envWanted.getWidth() / rLayer.getWholeImageEnvelope().getWidth()); - float yScale = (float) (envWanted.getHeight() / rLayer.getWholeImageEnvelope().getHeight()); - + + float xScale = (float) (envWanted.getWidth() / rLayer + .getWholeImageEnvelope().getWidth()); + float yScale = (float) (envWanted.getHeight() / rLayer + .getWholeImageEnvelope().getHeight()); + RasterImageIO rasterImageIO = new RasterImageIO(); - + // Get whole image ImageAndMetadata imageAndMetadata = rasterImageIO.loadImage( - context.getWorkbenchContext(), - rLayer.getImageFileName(), - rLayer.getMetadata().getStats(), - null, null); - + context.getWorkbenchContext(), rLayer.getImageFileName(), + rLayer.getMetadata().getStats(), null, null); + ParameterBlock pb = new ParameterBlock(); pb.addSource(imageAndMetadata.getImage()); pb.add(xScale); pb.add(yScale); RenderedOp outputOp = JAI.create("Scale", pb, null); - + rasterImageIO.writeImage(outFile, outputOp.copyData(), envWanted, - rasterImageIO.new CellSizeXY(rLayer.getMetadata().getOriginalCellSize(), rLayer.getMetadata().getOriginalCellSize()), - rLayer.getMetadata().getNoDataValue()); - - String catName = StandardCategoryNames.WORKING; + rasterImageIO.new CellSizeXY(rLayer.getMetadata() + .getOriginalCellSize(), rLayer.getMetadata() + .getOriginalCellSize()), rLayer.getMetadata() + .getNoDataValue()); + + String catName = StandardCategoryNames.WORKING; try { - catName = ((Category)context.getLayerNamePanel().getSelectedCategories().toArray()[0]).getName(); - } catch (RuntimeException e1) {} + catName = ((Category) context.getLayerNamePanel() + .getSelectedCategories().toArray()[0]).getName(); + } catch (RuntimeException e1) { + } - Point point = RasterImageIO.getImageDimensions(outFile.getAbsolutePath()); - Envelope env = RasterImageIO.getGeoReferencing(outFile.getAbsolutePath(), true, point); - - Viewport viewport = context.getWorkbenchContext().getLayerViewPanel().getViewport(); - Resolution requestedRes = RasterImageIO.calcRequestedResolution(viewport); + Point point = RasterImageIO.getImageDimensions(outFile + .getAbsolutePath()); + Envelope env = RasterImageIO.getGeoReferencing( + outFile.getAbsolutePath(), true, point); + + Viewport viewport = context.getWorkbenchContext().getLayerViewPanel() + .getViewport(); + Resolution requestedRes = RasterImageIO + .calcRequestedResolution(viewport); imageAndMetadata = rasterImageIO.loadImage( - context.getWorkbenchContext(), outFile.getAbsolutePath(), null, viewport.getEnvelopeInModelCoordinates(), requestedRes); - RasterImageLayer ril = new RasterImageLayer(outFile.getName(), - context.getWorkbenchContext().getLayerManager(), outFile.getAbsolutePath(), imageAndMetadata.getImage(), env); - + context.getWorkbenchContext(), outFile.getAbsolutePath(), null, + viewport.getEnvelopeInModelCoordinates(), requestedRes); + RasterImageLayer ril = new RasterImageLayer(outFile.getName(), context + .getWorkbenchContext().getLayerManager(), + outFile.getAbsolutePath(), imageAndMetadata.getImage(), env); + context.getLayerManager().addLayerable(catName, ril); - - //rLayer.setWholeImageEnvelope(envWanted); - + ril.setName(newLayerName); + // rLayer.setWholeImageEnvelope(envWanted); + return true; } - - public static MultiEnableCheck createEnableCheck(final WorkbenchContext workbenchContext) { + public static MultiEnableCheck createEnableCheck( + final WorkbenchContext workbenchContext) { + MultiEnableCheck multiEnableCheck = new MultiEnableCheck(); - EnableCheckFactory checkFactory = new EnableCheckFactory(workbenchContext); - multiEnableCheck.add( checkFactory.createExactlyNLayerablesMustBeSelectedCheck(1, RasterImageLayer.class) ); - multiEnableCheck.add( checkFactory.createFenceMustBeDrawnCheck() ); - - EnableCheck enableCheck = new CurrentLayerIsRasterImageLayerCheck(PlugInContextTools.getContext(workbenchContext)); + EnableCheckFactory checkFactory = new EnableCheckFactory( + workbenchContext); + multiEnableCheck.add(checkFactory + .createExactlyNLayerablesMustBeSelectedCheck(1, + RasterImageLayer.class)); + multiEnableCheck.add(checkFactory.createFenceMustBeDrawnCheck()); + + EnableCheck enableCheck = new CurrentLayerIsRasterImageLayerCheck( + PlugInContextTools.getContext(workbenchContext)); multiEnableCheck.add(enableCheck); - + return multiEnableCheck; } ------------------------------------------------------------------------------ BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel