Revision: 6557 http://sourceforge.net/p/jump-pilot/code/6557 Author: ma15569 Date: 2020-09-29 12:28:03 +0000 (Tue, 29 Sep 2020) Log Message: ----------- Added other options. Saved cell size on output
Modified Paths: -------------- core/trunk/src/org/openjump/core/ui/plugin/tools/generate/RasterizePlugIn.java Modified: core/trunk/src/org/openjump/core/ui/plugin/tools/generate/RasterizePlugIn.java =================================================================== --- core/trunk/src/org/openjump/core/ui/plugin/tools/generate/RasterizePlugIn.java 2020-09-29 12:18:07 UTC (rev 6556) +++ core/trunk/src/org/openjump/core/ui/plugin/tools/generate/RasterizePlugIn.java 2020-09-29 12:28:03 UTC (rev 6557) @@ -31,6 +31,7 @@ import javax.swing.JComponent; import javax.swing.JFileChooser; import javax.swing.JLabel; +import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; @@ -49,6 +50,7 @@ import com.vividsolutions.jump.task.TaskMonitor; import com.vividsolutions.jump.util.FileUtil; import com.vividsolutions.jump.workbench.JUMPWorkbench; +import com.vividsolutions.jump.workbench.Logger; import com.vividsolutions.jump.workbench.WorkbenchContext; import com.vividsolutions.jump.workbench.model.Category; import com.vividsolutions.jump.workbench.model.Layer; @@ -69,7 +71,6 @@ import com.vividsolutions.jump.workbench.ui.Viewport; import com.vividsolutions.jump.workbench.ui.images.IconLoader; -import de.latlon.deejump.wfs.jump.WFSLayer; import it.betastudio.adbtoolbox.libs.FileOperations; @@ -79,11 +80,10 @@ private Layer sourceLayer; private JTextField cellYextFiels; - private JCheckBox externalLayerCheck; - private JComboBox<Layerable> layerableComboBox; - private JComboBox<Layer> selectLayerComboBox; - private JComboBox<String> jcb_attribute; - private LayerNameRenderer layerListCellRenderer = new LayerNameRenderer(); + private JCheckBox externalLayerCheck,expandCheck, loadCheck; + private JComboBox<Layerable> layerableComboBox, selectLayerComboBox; + private JComboBox<String> jcb_attribute; + private LayerNameRenderer layerListCellRenderer = new LayerNameRenderer(); private static String selAttribute = null; private String ATTRIBUTE = GenericNames.SELECT_ATTRIBUTE; @@ -108,6 +108,15 @@ private final static String USE_EXTERNAL_EXTENT = I18N.get("ui.plugin.tools.generate.RasterizePlugIn.use-extent"); private final static String DESCRIPTION = I18N.get("ui.plugin.tools.generate.RasterizePlugIn.description"); + //TODO internationalize + private final static String EXPAND_ONE_CELL = "Expand one cell size to each direction"; + private final static String EXPAND_ONE_CELL_TIP = "It expands the extension layer but can generate area of no data at the border"; + private final static String LOAD_RASTER_INTO_VIEW = "Load ouput raster into the view"; + + private final static String sSaved = I18N + .get("org.openjump.core.ui.plugin.raster.RasterImageLayerPropertiesPlugIn.file.saved"); + private final static String SCouldNotSave = I18N + .get("org.openjump.sextante.gui.additionalResults.AdditionalResultsPlugIn.Could-not-save-selected-result"); @Override public boolean execute(PlugInContext context) throws Exception { MultiInputDialog dialog = new MultiInputDialog( @@ -188,6 +197,8 @@ layerableComboBox.setEnabled(false); layerableComboBox.setSize(240, layerableComboBox.getPreferredSize().height); + expandCheck=dialog.addCheckBox(EXPAND_ONE_CELL, false, EXPAND_ONE_CELL_TIP); + expandCheck.setEnabled(false); selectLayerComboBox.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -195,6 +206,7 @@ .filter(dialog.getLayer(SOURCE_LAYER)); jcb_attribute.setModel(new DefaultComboBoxModel<>(list .toArray(new String[0]))); + expandCheck.setEnabled(externalLayerCheck.isSelected()); } }); externalLayerCheck.addActionListener(new ActionListener() { @@ -205,7 +217,8 @@ }); //[Giuseppe Aruta 2020-09-27] deactivated. As suggested by Roberto Rossi //It is better to leave a standard value for cell that user can modified - /* layerableComboBox.addActionListener(new ActionListener() { + // [Giuseppe Aruta 2020-09-29] reactivated + layerableComboBox.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { final Layerable slayer = (Layerable) layerableComboBox @@ -214,48 +227,45 @@ cellYextFiels.setText(""+((RasterImageLayer) slayer).getMetadata().getOriginalCellSize()); } } - });*/ + }); final FileNameExtensionFilter filter; filter = new FileNameExtensionFilter("TIF", "tif"); dialog.addRow("Save", new JLabel(OUTPUT_FILE + ":"), createOutputFilePanel(filter), saveCheck, null); - // dialog.addRow("Save", createOutputFilePanel(filter), saveCheck, null); + loadCheck=dialog.addCheckBox(LOAD_RASTER_INTO_VIEW, true); GUIUtil.centreOnWindow(dialog); } Envelope envWanted, fix; - //Expand the envelope in order to recover data on last column and row + //Expand ouput envelope only if required private void getCroppedEnvelope(Layer layer) { - Envelope env; + Envelope env = null; if (externalLayerCheck.isSelected()) { envWanted = new Envelope(); - final Layerable slayer = (Layerable) layerableComboBox .getSelectedItem(); - if (slayer instanceof WFSLayer) { - envWanted.expandToInclude(((WFSLayer) slayer) - .getFeatureCollectionWrapper().getEnvelope()); - } else if (slayer instanceof Layer) { - envWanted.expandToInclude(((Layer) slayer) - .getFeatureCollectionWrapper().getEnvelope()); + if (slayer instanceof Layer) { + env =((Layer) slayer) + .getFeatureCollectionWrapper().getEnvelope().intersection(layer.getFeatureCollectionWrapper().getEnvelope()); + } else if (slayer instanceof RasterImageLayer) { - envWanted.expandToInclude(((RasterImageLayer) slayer) - .getWholeImageEnvelope()); + env = ((RasterImageLayer) slayer) + .getWholeImageEnvelope().intersection(layer.getFeatureCollectionWrapper().getEnvelope()); + } - env = envWanted.intersection(layer.getFeatureCollectionWrapper().getEnvelope()); - + if (expandCheck.isSelected()) { + envWanted= new Envelope(env.getMinX() - cellValue, env.getMaxX() + 2*cellValue, + env.getMinY() - cellValue, env.getMaxY() + cellValue); + } else { + envWanted=env; + } } else { - env=sourceLayer.getFeatureCollectionWrapper().getEnvelope(); + envWanted=sourceLayer.getFeatureCollectionWrapper().getEnvelope(); } - - double minX = env.getMinX(); - double minY = env.getMinY(); - double maxX = env.getMinX()+Math.round(env.getWidth())+cellValue; - double maxY = env.getMinY()+Math.round(env.getHeight())+cellValue; - fix = new Envelope(minX, maxX, minY, maxY); + fix = envWanted; } @@ -297,12 +307,26 @@ try { catName = ((Category) context.getLayerNamePanel() .getSelectedCategories().toArray()[0]).getName(); + saved(outFile); } catch (final RuntimeException e1) { + notsaved(); + Logger.error(e1); } load(outFile, context, catName); } + protected static void saved(File file) { + JUMPWorkbench.getInstance().getFrame() + .setStatusMessage(sSaved + " :" + file.getAbsolutePath()); + } + + + protected static void notsaved() { + JOptionPane.showMessageDialog(null, SCouldNotSave, I18N.get(SCouldNotSave), + JOptionPane.WARNING_MESSAGE); + } + public JPanel createOutputFilePanel(FileNameExtensionFilter filter) { JPanel jPanel = new JPanel(new GridBagLayout()); jPanel = new javax.swing.JPanel(); @@ -358,15 +382,14 @@ RasterImageLayer ril = new RasterImageLayer(file.getName(), context .getWorkbenchContext().getLayerManager(), file.getAbsolutePath(), imageAndMetadata.getImage(), env); - // String catName = StandardCategoryNames.RESULT; - try { + try { category = ((Category) context.getLayerNamePanel() .getSelectedCategories().toArray()[0]).getName(); } catch (RuntimeException e1) { + Logger.error(e1); } context.getLayerManager().addLayerable(category, ril); - // ril.setName(selAttribute); - } + } } _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel