Revision: 6106 http://sourceforge.net/p/jump-pilot/code/6106 Author: ma15569 Date: 2019-01-19 11:03:24 +0000 (Sat, 19 Jan 2019) Log Message: ----------- Added (hopefully the last) monitoring to raster tools
Modified Paths: -------------- plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/rastertools/CutRasterPlugin.java plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/rastertools/RasterizeVectorLayerPlugIn.java plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/rastertools/ReclassRasterPlugin.java Modified: plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/rastertools/CutRasterPlugin.java =================================================================== --- plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/rastertools/CutRasterPlugin.java 2019-01-19 10:32:18 UTC (rev 6105) +++ plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/rastertools/CutRasterPlugin.java 2019-01-19 11:03:24 UTC (rev 6106) @@ -1,28 +1,35 @@ package com.geomaticaeambiente.klemgui.plugin.rastertools; -import com.geomaticaeambiente.klemgui.utils.PluginUtils; +import java.io.File; + +import javax.swing.JButton; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; + +import org.openjump.core.rasterimage.RasterImageLayer; + import com.geomaticaeambiente.klemgui.ui.CustomComboBox; -import com.geomaticaeambiente.openjump.klem.grid.DoubleBasicGrid; -import com.geomaticaeambiente.openjump.klem.rastertools.RasterClipper; import com.geomaticaeambiente.klemgui.ui.GUIUtils; import com.geomaticaeambiente.klemgui.ui.InitialDialog; +import com.geomaticaeambiente.klemgui.ui.LayerablesList; import com.geomaticaeambiente.klemgui.ui.MainPanel; -import com.geomaticaeambiente.klemgui.ui.LayerablesList; +import com.geomaticaeambiente.klemgui.utils.AbstractInputKlemPlugin; +import com.geomaticaeambiente.klemgui.utils.ActionObject; import com.geomaticaeambiente.klemgui.utils.ComponentsTreeMap; import com.geomaticaeambiente.klemgui.utils.InitialData; -import com.geomaticaeambiente.klemgui.utils.AbstractInputKlemPlugin; -import com.geomaticaeambiente.klemgui.utils.ActionObject; +import com.geomaticaeambiente.klemgui.utils.PluginUtils; import com.geomaticaeambiente.klemgui.utils.RasterUtils; +import com.geomaticaeambiente.openjump.klem.grid.DoubleBasicGrid; +import com.geomaticaeambiente.openjump.klem.rastertools.RasterClipper; +import com.vividsolutions.jump.task.TaskMonitor; import com.vividsolutions.jump.util.StringUtil; +import com.vividsolutions.jump.workbench.Logger; +import com.vividsolutions.jump.workbench.plugin.AbstractPlugIn; import com.vividsolutions.jump.workbench.plugin.PlugInContext; +import com.vividsolutions.jump.workbench.plugin.ThreadedBasePlugIn; import com.vividsolutions.jump.workbench.ui.ErrorDialog; -import java.awt.geom.NoninvertibleTransformException; -import java.io.File; -import javax.swing.JButton; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JTextField; -import org.openjump.core.rasterimage.RasterImageLayer; +import com.vividsolutions.jump.workbench.ui.task.TaskMonitorManager; /** * Plugin for cutting a raster with another raster. The raster must be loaded on @@ -32,7 +39,8 @@ */ public class CutRasterPlugin extends AbstractInputKlemPlugin { - public CutRasterPlugin(PlugInContext context, InitialDialog initialDialog, LayerablesList layerablesList) { + public CutRasterPlugin(PlugInContext context, InitialDialog initialDialog, + LayerablesList layerablesList) { super(context, initialDialog); this.context = context; this.layerablesList = layerablesList; @@ -41,88 +49,210 @@ @Override public InitialData setInitialData() { -// ar_rasterImageLayers = PluginUtils.getRasterImageLayers(layerablesList.getLayerables()); + // ar_rasterImageLayers = PluginUtils.getRasterImageLayers(layerablesList.getLayerables()); - InitialData initialData = new InitialData(); + final InitialData initialData = new InitialData(); //input data - initialData.setParam_Label_TextBox( - GUIUtils.setGUILabel(RASTER_IN), - PluginUtils.getRasterImageLayers(layerablesList.getLayerables()), - GUIUtils.INPUT);//combobox with rasterImageLayer - initialData.setParam_Label_TextBox(GUIUtils.setGUILabel(RASTER_MASK), PluginUtils.getRasterImageLayers(layerablesList.getLayerables()), GUIUtils.INPUT);//combobox with rasterImageLayer + initialData + .setParam_Label_TextBox(GUIUtils.setGUILabel(RASTER_IN), + PluginUtils.getRasterImageLayers(layerablesList + .getLayerables()), GUIUtils.INPUT);//combobox with rasterImageLayer + initialData + .setParam_Label_TextBox(GUIUtils.setGUILabel(RASTER_MASK), + PluginUtils.getRasterImageLayers(layerablesList + .getLayerables()), GUIUtils.INPUT);//combobox with rasterImageLayer //output data - initialData.setParam_Label_TextBox_Button(GUIUtils.setGUILabel(RASTER_OUT), "", new ActionObject(""), GUIUtils.OUTPUT); //JTextField + initialData.setParam_Label_TextBox_Button( + GUIUtils.setGUILabel(RASTER_OUT), "", new ActionObject(""), + GUIUtils.OUTPUT); //JTextField return initialData; } @Override - public ComponentsTreeMap setComponentsActions(ComponentsTreeMap personalTreeMap) { + public ComponentsTreeMap setComponentsActions( + ComponentsTreeMap personalTreeMap) { - final JTextField outputTextField = (JTextField) personalTreeMap.getComponent("00", GUIUtils.OUTPUT, 1); - JButton outputButton = (JButton) personalTreeMap.getComponent("00", GUIUtils.OUTPUT, 2); + final JTextField outputTextField = (JTextField) personalTreeMap + .getComponent("00", GUIUtils.OUTPUT, 1); + final JButton outputButton = (JButton) personalTreeMap.getComponent( + "00", GUIUtils.OUTPUT, 2); outputButton.setIcon(PluginUtils.getFolderIcon()); - outputButton.addActionListener(GUIUtils.setSaveRasterTif(outputTextField)); + outputButton.addActionListener(GUIUtils + .setSaveRasterTif(outputTextField)); return personalTreeMap; } + public void cutRasterCommand(final ComponentsTreeMap componentsWithActions) + throws Exception { + //get input raster names + final String rasterSelected1 = GUIUtils + .getStringValue(componentsWithActions.getComponent("00", + GUIUtils.INPUT, 1)); + final String rasterSelected2 = GUIUtils + .getStringValue(componentsWithActions.getComponent("01", + GUIUtils.INPUT, 1)); + + //get output raster name + final String outRasterName = GUIUtils + .getStringValue(componentsWithActions.getComponent("00", + GUIUtils.OUTPUT, 1)); + + //check input values + GUIUtils.checkStringValue(rasterSelected1, RASTER_IN); + GUIUtils.checkStringValue(rasterSelected2, RASTER_MASK); + + //check output values + GUIUtils.checkFileValue(outRasterName, RASTER_OUT); + + //get input raster as rasterImageLayer from string + final RasterImageLayer inputRasterSelected = PluginUtils + .getRasterImageLayerSelected((CustomComboBox.RasterComboBox) componentsWithActions + .getComponent("00", GUIUtils.INPUT, 1)); + final DoubleBasicGrid inputGrid = RasterUtils + .getDoubleBasicGrid(inputRasterSelected); + + //get mask raster as rasterImageLayer from string + final RasterImageLayer maskRasterSelected = PluginUtils + .getRasterImageLayerSelected((CustomComboBox.RasterComboBox) componentsWithActions + .getComponent("01", GUIUtils.INPUT, 1)); + final DoubleBasicGrid clipperGrid = RasterUtils + .getDoubleBasicGrid(maskRasterSelected); + + //Clip raster + final DoubleBasicGrid clippedRaster = RasterClipper.clip(inputGrid, + clipperGrid); + + //Create the output file and display on OJ + //Save grid as tiff + RasterUtils.saveOutputRasterAsTiff(clippedRaster, new File( + outRasterName)); + //Display raster on OJ from file + RasterUtils.displayRasterFileOnOJ(context.getWorkbenchContext(), + new File(outRasterName), null); + + JOptionPane.showMessageDialog(super.getInitialDialog(), PluginUtils + .getResources().getString("SetWorkspacePlugin.Done.message"), + PluginUtils.plugInName, JOptionPane.INFORMATION_MESSAGE); + } + @Override public JPanel buildPluginPanel(final ComponentsTreeMap componentsWithActions) { - if(this.mainPanel != null) { - return this.mainPanel; + if (mainPanel != null) { + return mainPanel; } - this.mainPanel = new MainPanel(super.getInitialDialog(), componentsWithActions, false, false, true, - PluginUtils.getResources().getString("MainPanel.ExecuteButton.text"), layerablesList) { + mainPanel = new MainPanel(super.getInitialDialog(), + componentsWithActions, false, false, true, PluginUtils + .getResources().getString( + "MainPanel.ExecuteButton.text"), layerablesList) { + /** + * + */ + private static final long serialVersionUID = 1L; + @Override public void rightButton() { try { + try { + AbstractPlugIn.toActionListener( + new ThreadedBasePlugIn() { + @Override + public String getName() { + return null; + } + + @Override + public boolean execute(PlugInContext context) + throws Exception { + return true; + } + + @Override + public void run(TaskMonitor monitor, + PlugInContext context) + throws Exception { + monitor.report(PluginUtils + .getResources() + .getString( + "OpenKlem.executing-process")); + // monitor.allowCancellationRequests(); + reportNothingToUndoYet(context); + try { + cutRasterCommand(componentsWithActions); + } catch (final Exception ex) { + Logger.error(getName(), ex); + } + } + }, context.getWorkbenchContext(), + new TaskMonitorManager()).actionPerformed(null); + } catch (final Exception ex) { + ErrorDialog.show(super.getInitialDialog(), + PluginUtils.plugInName, ex.toString(), + StringUtil.stackTrace(ex)); + } + //get input raster names - String rasterSelected1 = GUIUtils.getStringValue(componentsWithActions.getComponent("00", GUIUtils.INPUT, 1)); - String rasterSelected2 = GUIUtils.getStringValue(componentsWithActions.getComponent("01", GUIUtils.INPUT, 1)); + /* final String rasterSelected1 = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "00", GUIUtils.INPUT, 1)); + final String rasterSelected2 = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "01", GUIUtils.INPUT, 1)); - //get output raster name - String outRasterName = GUIUtils.getStringValue(componentsWithActions.getComponent("00", GUIUtils.OUTPUT, 1)); + //get output raster name + final String outRasterName = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "00", GUIUtils.OUTPUT, 1)); - //check input values - GUIUtils.checkStringValue(rasterSelected1, RASTER_IN); - GUIUtils.checkStringValue(rasterSelected2, RASTER_MASK); + //check input values + GUIUtils.checkStringValue(rasterSelected1, RASTER_IN); + GUIUtils.checkStringValue(rasterSelected2, RASTER_MASK); - //check output values - GUIUtils.checkFileValue(outRasterName, RASTER_OUT); + //check output values + GUIUtils.checkFileValue(outRasterName, RASTER_OUT); - //get input raster as rasterImageLayer from string - RasterImageLayer inputRasterSelected = PluginUtils.getRasterImageLayerSelected((CustomComboBox.RasterComboBox) componentsWithActions.getComponent("00", GUIUtils.INPUT, 1)); - DoubleBasicGrid inputGrid = RasterUtils.getDoubleBasicGrid(inputRasterSelected); + //get input raster as rasterImageLayer from string + final RasterImageLayer inputRasterSelected = PluginUtils + .getRasterImageLayerSelected((CustomComboBox.RasterComboBox) componentsWithActions + .getComponent("00", GUIUtils.INPUT, 1)); + final DoubleBasicGrid inputGrid = RasterUtils + .getDoubleBasicGrid(inputRasterSelected); - //get mask raster as rasterImageLayer from string - RasterImageLayer maskRasterSelected = PluginUtils.getRasterImageLayerSelected((CustomComboBox.RasterComboBox) componentsWithActions.getComponent("01", GUIUtils.INPUT, 1)); - DoubleBasicGrid clipperGrid = RasterUtils.getDoubleBasicGrid(maskRasterSelected); + //get mask raster as rasterImageLayer from string + final RasterImageLayer maskRasterSelected = PluginUtils + .getRasterImageLayerSelected((CustomComboBox.RasterComboBox) componentsWithActions + .getComponent("01", GUIUtils.INPUT, 1)); + final DoubleBasicGrid clipperGrid = RasterUtils + .getDoubleBasicGrid(maskRasterSelected); - //Clip raster - DoubleBasicGrid clippedRaster = RasterClipper.clip(inputGrid, clipperGrid); + //Clip raster + final DoubleBasicGrid clippedRaster = RasterClipper.clip( + inputGrid, clipperGrid); - //Create the output file and display on OJ - //Save grid as tiff - RasterUtils.saveOutputRasterAsTiff(clippedRaster, new File(outRasterName)); - //Display raster on OJ from file - RasterUtils.displayRasterFileOnOJ( - context.getWorkbenchContext(), - new File(outRasterName), - null); + //Create the output file and display on OJ + //Save grid as tiff + RasterUtils.saveOutputRasterAsTiff(clippedRaster, new File( + outRasterName)); + //Display raster on OJ from file + RasterUtils.displayRasterFileOnOJ(context + .getWorkbenchContext(), new File(outRasterName), + null); - JOptionPane.showMessageDialog(super.getInitialDialog(), - PluginUtils.getResources().getString("SetWorkspacePlugin.Done.message"), PluginUtils.plugInName, JOptionPane.INFORMATION_MESSAGE); + JOptionPane.showMessageDialog( + super.getInitialDialog(), + PluginUtils.getResources().getString( + "SetWorkspacePlugin.Done.message"), + PluginUtils.plugInName, + JOptionPane.INFORMATION_MESSAGE);*/ - } catch (Exception ex) { - ErrorDialog.show( - super.getInitialDialog(), - PluginUtils.plugInName, - ex.toString(), + } catch (final Exception ex) { + ErrorDialog.show(super.getInitialDialog(), + PluginUtils.plugInName, ex.toString(), StringUtil.stackTrace(ex)); } } @@ -137,21 +267,25 @@ }; - return this.mainPanel; + return mainPanel; } @Override public String toString() { - return PluginUtils.getResources().getString("CutRasterPlugIn.PlugInName.label"); + return PluginUtils.getResources().getString( + "CutRasterPlugIn.PlugInName.label"); } private final PlugInContext context; private MainPanel mainPanel; -// private RasterImageLayer[] ar_rasterImageLayers; - private final String RASTER_IN = PluginUtils.getResources().getString("KlemGUI.InputRaster.label"); - private final String RASTER_MASK = PluginUtils.getResources().getString("CutRasterPlugIn.InputData.MaskRaster"); - private final String RASTER_OUT = PluginUtils.getResources().getString("CutRasterPlugIn.OutputData.OutputRaster"); + // private RasterImageLayer[] ar_rasterImageLayers; + private final String RASTER_IN = PluginUtils.getResources().getString( + "KlemGUI.InputRaster.label"); + private final String RASTER_MASK = PluginUtils.getResources().getString( + "CutRasterPlugIn.InputData.MaskRaster"); + private final String RASTER_OUT = PluginUtils.getResources().getString( + "CutRasterPlugIn.OutputData.OutputRaster"); private final LayerablesList layerablesList; Modified: plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/rastertools/RasterizeVectorLayerPlugIn.java =================================================================== --- plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/rastertools/RasterizeVectorLayerPlugIn.java 2019-01-19 10:32:18 UTC (rev 6105) +++ plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/rastertools/RasterizeVectorLayerPlugIn.java 2019-01-19 11:03:24 UTC (rev 6106) @@ -1,10 +1,26 @@ package com.geomaticaeambiente.klemgui.plugin.rastertools; +import java.awt.Cursor; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.File; +import java.io.IOException; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; + +import org.openjump.core.rasterimage.RasterImageLayer; + import com.geomaticaeambiente.klemgui.exceptions.WarningException; -import com.geomaticaeambiente.klemgui.utils.PluginUtils; import com.geomaticaeambiente.klemgui.ui.CustomComboBox; -import com.geomaticaeambiente.openjump.klem.grid.DoubleBasicGrid; -import com.geomaticaeambiente.openjump.klem.rastertools.Rasterizer; import com.geomaticaeambiente.klemgui.ui.GUIUtils; import com.geomaticaeambiente.klemgui.ui.InitialDialog; import com.geomaticaeambiente.klemgui.ui.LayerablesList; @@ -12,8 +28,11 @@ import com.geomaticaeambiente.klemgui.utils.AbstractInputKlemPlugin; import com.geomaticaeambiente.klemgui.utils.ActionObject; import com.geomaticaeambiente.klemgui.utils.ComponentsTreeMap; +import com.geomaticaeambiente.klemgui.utils.InitialData; +import com.geomaticaeambiente.klemgui.utils.PluginUtils; import com.geomaticaeambiente.klemgui.utils.RasterUtils; -import com.geomaticaeambiente.klemgui.utils.InitialData; +import com.geomaticaeambiente.openjump.klem.grid.DoubleBasicGrid; +import com.geomaticaeambiente.openjump.klem.rastertools.Rasterizer; import com.vividsolutions.jts.geom.Envelope; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jump.feature.Feature; @@ -22,22 +41,6 @@ import com.vividsolutions.jump.workbench.model.Layer; import com.vividsolutions.jump.workbench.plugin.PlugInContext; import com.vividsolutions.jump.workbench.ui.ErrorDialog; -import java.awt.Cursor; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComboBox; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JTextField; -import org.openjump.core.rasterimage.RasterImageLayer; /** * @@ -45,10 +48,11 @@ */ public class RasterizeVectorLayerPlugIn extends AbstractInputKlemPlugin { - public RasterizeVectorLayerPlugIn(PlugInContext context, InitialDialog initialDialog, LayerablesList rasterLayersList) { + public RasterizeVectorLayerPlugIn(PlugInContext context, + InitialDialog initialDialog, LayerablesList rasterLayersList) { super(context, initialDialog); this.context = context; - this.layerablesList = rasterLayersList; + layerablesList = rasterLayersList; } @Override @@ -56,28 +60,39 @@ layers = PluginUtils.getLayers(layerablesList.getLayerables()); - String[] attributes = new String[0]; + final String[] attributes = new String[0]; - InitialData initialData = new InitialData(); + final InitialData initialData = new InitialData(); //input data - initialData.setParam_Label_TextBox(GUIUtils.setGUILabel(VECTOR_LAYER_LABEL), layers, GUIUtils.INPUT); - initialData.setParam_Label_TextBox(GUIUtils.setGUILabel(ATTRIBUTE_LABEL), attributes, GUIUtils.INPUT); - initialData.setParam_Label_TextBox(GUIUtils.setGUILabel(CELL_LABEL), "10", GUIUtils.INPUT); + initialData.setParam_Label_TextBox( + GUIUtils.setGUILabel(VECTOR_LAYER_LABEL), layers, + GUIUtils.INPUT); + initialData.setParam_Label_TextBox( + GUIUtils.setGUILabel(ATTRIBUTE_LABEL), attributes, + GUIUtils.INPUT); + initialData.setParam_Label_TextBox(GUIUtils.setGUILabel(CELL_LABEL), + "10", GUIUtils.INPUT); // Snapping - initialData.setParam_Action(new ActionObject(false, PluginUtils.getResources().getString("RasterizeVectorLayerPlugIn.SnapRasterCheckbox.text")), GUIUtils.INPUT); - -// initialData.setInputParam_RadioButton( -// new boolean[]{true,false}, -// new ActionObject(), -// new String[]{bundle.getString("RasterizeVectorLayerPlugIn.OnCellRadioButton.text"), -// bundle.getString("RasterizeVectorLayerPlugIn.OnRasterRadioButton.text")}); - initialData.setParam_Label_TextBox(SNAP_RASTER_LABEL, PluginUtils.getRasterImageLayers(layerablesList.getLayerables()), GUIUtils.INPUT); -// initialData.setInputParam_CheckBox(false, new ActionObject(), bundle.getString("RasterizeVectorLayerPlugIn.SameRasterExtentCheckBox.text")); - + initialData.setParam_Action( + new ActionObject(false, PluginUtils.getResources().getString( + "RasterizeVectorLayerPlugIn.SnapRasterCheckbox.text")), + GUIUtils.INPUT); + // initialData.setInputParam_RadioButton( + // new boolean[]{true,false}, + // new ActionObject(), + // new String[]{bundle.getString("RasterizeVectorLayerPlugIn.OnCellRadioButton.text"), + // bundle.getString("RasterizeVectorLayerPlugIn.OnRasterRadioButton.text")}); + initialData.setParam_Label_TextBox(SNAP_RASTER_LABEL, PluginUtils + .getRasterImageLayers(layerablesList.getLayerables()), + GUIUtils.INPUT); + // initialData.setInputParam_CheckBox(false, new ActionObject(), bundle.getString("RasterizeVectorLayerPlugIn.SameRasterExtentCheckBox.text")); + //output information - initialData.setParam_Label_TextBox_Button(GUIUtils.getOutputRasterLabel(), "", new ActionObject(""), GUIUtils.OUTPUT); + initialData.setParam_Label_TextBox_Button( + GUIUtils.getOutputRasterLabel(), "", new ActionObject(""), + GUIUtils.OUTPUT); // Visibility return initialData; @@ -84,17 +99,20 @@ } @Override - public ComponentsTreeMap setComponentsActions(ComponentsTreeMap personalTreeMap) { + public ComponentsTreeMap setComponentsActions( + ComponentsTreeMap personalTreeMap) { - final CustomComboBox.LayerComboBox jComboBox_layer = (CustomComboBox.LayerComboBox) personalTreeMap.getComponent("00", GUIUtils.INPUT, 1); + final CustomComboBox.LayerComboBox jComboBox_layer = (CustomComboBox.LayerComboBox) personalTreeMap + .getComponent("00", GUIUtils.INPUT, 1); - final JComboBox jComboBox_attribute = (JComboBox) personalTreeMap.getComponent("01", GUIUtils.INPUT, 1); + final JComboBox jComboBox_attribute = (JComboBox) personalTreeMap + .getComponent("01", GUIUtils.INPUT, 1); jComboBox_attribute.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { -// listLayerAttribute(jComboBox_attribute, jComboBox_layer); -// System.out.println("hello"); + // listLayerAttribute(jComboBox_attribute, jComboBox_layer); + // System.out.println("hello"); } }); @@ -103,161 +121,263 @@ @Override public void actionPerformed(ActionEvent e) { - GUIUtils.listLayerAttribute(context, jComboBox_attribute, jComboBox_layer); + GUIUtils.listLayerAttribute(context, jComboBox_attribute, + jComboBox_layer); } }); // IN STAND-BY //input data for snap to raster > there aren't in this version of rasterize -// final JComboBox rasterComboBox = (JComboBox) personalTreeMap.getComponent("Input5", 1); -// final JLabel rasterLabel = (JLabel) personalTreeMap.getComponent("Input5", 0); -// - final JCheckBox jCheckBox_Extent = (JCheckBox) personalTreeMap.getComponent("03", GUIUtils.INPUT, 0); - final JComboBox jComboBox_SnapRaster = (JComboBox) personalTreeMap.getComponent("04", GUIUtils.INPUT, 1); + // final JComboBox rasterComboBox = (JComboBox) personalTreeMap.getComponent("Input5", 1); + // final JLabel rasterLabel = (JLabel) personalTreeMap.getComponent("Input5", 0); + // + final JCheckBox jCheckBox_Extent = (JCheckBox) personalTreeMap + .getComponent("03", GUIUtils.INPUT, 0); + final JComboBox jComboBox_SnapRaster = (JComboBox) personalTreeMap + .getComponent("04", GUIUtils.INPUT, 1); jComboBox_SnapRaster.setEnabled(false); - - jCheckBox_Extent.addActionListener(new ActionListener(){ + + jCheckBox_Extent.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { jComboBox_SnapRaster.setEnabled(jCheckBox_Extent.isSelected()); } }); - - -// final JRadioButton rbOnCell = (JRadioButton) personalTreeMap.getComponent("Input4", 0); -// rbOnCell.setEnabled(false); -// -// final JRadioButton rbOnRaster = (JRadioButton) personalTreeMap.getComponent("Input4", 1); -// rbOnRaster.setEnabled(false); -// rbOnRaster.addActionListener(new ActionListener() { -// -// @Override -// public void actionPerformed(ActionEvent e) { -// rasterLabel.setEnabled(rbOnRaster.isSelected()); -// rasterComboBox.setEnabled(rbOnRaster.isSelected()); -// } -// }); -// -// final JCheckBox jCheckBox = (JCheckBox) personalTreeMap.getComponent("Input3", 0); -// jCheckBox.addActionListener(new ActionListener() { -// -// @Override -// public void actionPerformed(ActionEvent e) { -// rbOnCell.setEnabled(jCheckBox.isSelected()); -// rbOnRaster.setEnabled(jCheckBox.isSelected()); -// checkExtent.setEnabled(jCheckBox.isSelected()); -// } -// }); - final JTextField outputTextField = (JTextField) personalTreeMap.getComponent("00", GUIUtils.OUTPUT, 1); - JButton outputButton = (JButton) personalTreeMap.getComponent("00", GUIUtils.OUTPUT, 2); + + // final JRadioButton rbOnCell = (JRadioButton) personalTreeMap.getComponent("Input4", 0); + // rbOnCell.setEnabled(false); + // + // final JRadioButton rbOnRaster = (JRadioButton) personalTreeMap.getComponent("Input4", 1); + // rbOnRaster.setEnabled(false); + // rbOnRaster.addActionListener(new ActionListener() { + // + // @Override + // public void actionPerformed(ActionEvent e) { + // rasterLabel.setEnabled(rbOnRaster.isSelected()); + // rasterComboBox.setEnabled(rbOnRaster.isSelected()); + // } + // }); + // + // final JCheckBox jCheckBox = (JCheckBox) personalTreeMap.getComponent("Input3", 0); + // jCheckBox.addActionListener(new ActionListener() { + // + // @Override + // public void actionPerformed(ActionEvent e) { + // rbOnCell.setEnabled(jCheckBox.isSelected()); + // rbOnRaster.setEnabled(jCheckBox.isSelected()); + // checkExtent.setEnabled(jCheckBox.isSelected()); + // } + // }); + final JTextField outputTextField = (JTextField) personalTreeMap + .getComponent("00", GUIUtils.OUTPUT, 1); + final JButton outputButton = (JButton) personalTreeMap.getComponent( + "00", GUIUtils.OUTPUT, 2); outputButton.setIcon(PluginUtils.getFolderIcon()); - outputButton.addActionListener(GUIUtils.setSaveRasterTif(outputTextField)); + outputButton.addActionListener(GUIUtils + .setSaveRasterTif(outputTextField)); return personalTreeMap; } + public void rasterizeCommand(final ComponentsTreeMap componentsWithActions) + throws Exception { + final String layerSelected = GUIUtils + .getStringValue(componentsWithActions.getComponent("00", + GUIUtils.INPUT, 1)); + final String attributeSelected = GUIUtils + .getStringValue(componentsWithActions.getComponent("01", + GUIUtils.INPUT, 1)); + final double cellDimension = GUIUtils + .getDoubleValue(componentsWithActions.getComponent("02", + GUIUtils.INPUT, 1)); + + // Snapping + Envelope clipEnvelope = null; + final boolean snap = GUIUtils.getBooleanValue(componentsWithActions + .getComponent("03", GUIUtils.INPUT, 0)); + String snapRasterName = null; + if (snap) { + snapRasterName = GUIUtils.getStringValue(componentsWithActions + .getComponent("04", GUIUtils.INPUT, 1)); + } + + //get output raster name + final String outRasterName = GUIUtils + .getStringValue(componentsWithActions.getComponent("00", + GUIUtils.OUTPUT, 1)); + + // Check input and output values + checksValues(layerSelected, attributeSelected, snapRasterName, + outRasterName); + + if (snap) { + final RasterImageLayer ril = PluginUtils + .getRasterImageLayerSelected((CustomComboBox.RasterComboBox) componentsWithActions + .getComponent("04", GUIUtils.INPUT, 1)); + clipEnvelope = ril.getActualImageEnvelope(); + } + + //from name to Layer + final Layer layer = PluginUtils + .getLayerSelected((CustomComboBox.LayerComboBox) componentsWithActions + .getComponent("00", GUIUtils.INPUT, 1)); + + // Get selected features, or all features if none selected, or return error if none present + Collection<Feature> features = context.getLayerViewPanel() + .getSelectionManager().getFeatureSelection() + .getFeaturesWithSelectedItems(layer); + + if (features.isEmpty()) { + features = layer.getFeatureCollectionWrapper().getFeatures(); + } + + final Feature[] ar_features = new Feature[features.size()]; + final Iterator<Feature> iter = features.iterator(); + int count = 0; + while (iter.hasNext()) { + ar_features[count] = iter.next(); + count++; + } + + //get information about attribute selected + final FeatureSchema featureSchema = layer.getFeatureCollectionWrapper() + .getFeatureSchema(); + final int fieldsCount = featureSchema + .getAttributeIndex(attributeSelected); + + final Geometry[] ar_geoms = new Geometry[ar_features.length]; + final double[] ar_attributes = new double[ar_features.length]; + + for (int f = 0; f < ar_features.length; f++) { + ar_geoms[f] = ar_features[f].getGeometry(); + ar_attributes[f] = Double.parseDouble(ar_features[f] + .getString(fieldsCount)); + } + + // Rasterize + final DoubleBasicGrid rasterized = Rasterizer.rasterize(ar_geoms, + ar_attributes, clipEnvelope, cellDimension); + + //Create the output file and display on OJ + //Save grid as tiff + RasterUtils.saveOutputRasterAsTiff(rasterized, new File(outRasterName)); + //Display raster on OJ from file + RasterUtils.displayRasterFileOnOJ(context.getWorkbenchContext(), + new File(outRasterName), null); + + JOptionPane.showMessageDialog(super.getInitialDialog(), PluginUtils + .getResources().getString("SetWorkspacePlugin.Done.message"), + PluginUtils.plugInName, JOptionPane.INFORMATION_MESSAGE); + } + @Override public JPanel buildPluginPanel(final ComponentsTreeMap componentsWithActions) { - if(this.mainPanel != null) { - return this.mainPanel; + if (mainPanel != null) { + return mainPanel; } - this.mainPanel = new MainPanel(super.getInitialDialog(), componentsWithActions, false, false, true, - PluginUtils.getResources().getString("MainPanel.ExecuteButton.text"), layerablesList) { + mainPanel = new MainPanel(super.getInitialDialog(), + componentsWithActions, false, false, true, PluginUtils + .getResources().getString( + "MainPanel.ExecuteButton.text"), layerablesList) { + /** + * + */ + private static final long serialVersionUID = 1L; + @Override - @SuppressWarnings("empty-statement") public void rightButton() { + try { + rasterizeCommand(componentsWithActions); + /* super.getInitialDialog().setCursor(new Cursor(Cursor.WAIT_CURSOR)); + + //get input information + String layerSelected = GUIUtils.getStringValue(componentsWithActions.getComponent("00", GUIUtils.INPUT, 1)); + String attributeSelected = GUIUtils.getStringValue(componentsWithActions.getComponent("01", GUIUtils.INPUT, 1)); + double cellDimension = GUIUtils.getDoubleValue(componentsWithActions.getComponent("02", GUIUtils.INPUT, 1)); - super.getInitialDialog().setCursor(new Cursor(Cursor.WAIT_CURSOR)); - - //get input information - String layerSelected = GUIUtils.getStringValue(componentsWithActions.getComponent("00", GUIUtils.INPUT, 1)); - String attributeSelected = GUIUtils.getStringValue(componentsWithActions.getComponent("01", GUIUtils.INPUT, 1)); - double cellDimension = GUIUtils.getDoubleValue(componentsWithActions.getComponent("02", GUIUtils.INPUT, 1)); + // Snapping + Envelope clipEnvelope = null; + boolean snap = GUIUtils.getBooleanValue(componentsWithActions.getComponent("03", GUIUtils.INPUT, 0)); + String snapRasterName = null; + if(snap) { + snapRasterName = GUIUtils.getStringValue(componentsWithActions.getComponent("04", GUIUtils.INPUT, 1)); + } + + //get output raster name + String outRasterName = GUIUtils.getStringValue(componentsWithActions.getComponent("00", GUIUtils.OUTPUT, 1)); + + // Check input and output values + checksValues(layerSelected, attributeSelected, snapRasterName, outRasterName); - // Snapping - Envelope clipEnvelope = null; - boolean snap = GUIUtils.getBooleanValue(componentsWithActions.getComponent("03", GUIUtils.INPUT, 0)); - String snapRasterName = null; - if(snap) { - snapRasterName = GUIUtils.getStringValue(componentsWithActions.getComponent("04", GUIUtils.INPUT, 1)); - } - - //get output raster name - String outRasterName = GUIUtils.getStringValue(componentsWithActions.getComponent("00", GUIUtils.OUTPUT, 1)); - - // Check input and output values - checksValues(layerSelected, attributeSelected, snapRasterName, outRasterName); + if(snap) { + RasterImageLayer ril = PluginUtils.getRasterImageLayerSelected((CustomComboBox.RasterComboBox) componentsWithActions.getComponent("04", GUIUtils.INPUT, 1)); + clipEnvelope = ril.getActualImageEnvelope(); + } + + //from name to Layer + Layer layer = PluginUtils.getLayerSelected((CustomComboBox.LayerComboBox) componentsWithActions.getComponent("00", GUIUtils.INPUT, 1)); - if(snap) { - RasterImageLayer ril = PluginUtils.getRasterImageLayerSelected((CustomComboBox.RasterComboBox) componentsWithActions.getComponent("04", GUIUtils.INPUT, 1)); - clipEnvelope = ril.getActualImageEnvelope(); - } - - //from name to Layer - Layer layer = PluginUtils.getLayerSelected((CustomComboBox.LayerComboBox) componentsWithActions.getComponent("00", GUIUtils.INPUT, 1)); + // Get selected features, or all features if none selected, or return error if none present + Collection<Feature> features = context.getLayerViewPanel().getSelectionManager().getFeatureSelection().getFeaturesWithSelectedItems(layer); - // Get selected features, or all features if none selected, or return error if none present - Collection features = context.getLayerViewPanel().getSelectionManager().getFeatureSelection().getFeaturesWithSelectedItems(layer); + if (features.isEmpty()) { + features = layer.getFeatureCollectionWrapper().getFeatures(); + } - if (features.isEmpty()) { - features = layer.getFeatureCollectionWrapper().getFeatures(); - } + Feature[] ar_features = new Feature[features.size()]; + Iterator<Feature> iter = features.iterator(); + int count = 0; + while (iter.hasNext()) { + ar_features[count] = (Feature) iter.next(); + count++; + } - Feature[] ar_features = new Feature[features.size()]; - Iterator iter = features.iterator(); - int count = 0; - while (iter.hasNext()) { - ar_features[count] = (Feature) iter.next(); - count++; - } + //get information about attribute selected + FeatureSchema featureSchema = layer.getFeatureCollectionWrapper().getFeatureSchema(); + int fieldsCount = featureSchema.getAttributeIndex(attributeSelected); - //get information about attribute selected - FeatureSchema featureSchema = layer.getFeatureCollectionWrapper().getFeatureSchema(); - int fieldsCount = featureSchema.getAttributeIndex(attributeSelected); + Geometry[] ar_geoms = new Geometry[ar_features.length]; + double[] ar_attributes = new double[ar_features.length]; + + for(int f=0; f<ar_features.length; f++) { + ar_geoms[f] = ar_features[f].getGeometry(); + ar_attributes[f] = Double.parseDouble(ar_features[f].getString(fieldsCount)); + } + + // Rasterize + DoubleBasicGrid rasterized = Rasterizer.rasterize( + ar_geoms, ar_attributes, clipEnvelope, cellDimension); - Geometry[] ar_geoms = new Geometry[ar_features.length]; - double[] ar_attributes = new double[ar_features.length]; - - for(int f=0; f<ar_features.length; f++) { - ar_geoms[f] = ar_features[f].getGeometry(); - ar_attributes[f] = Double.parseDouble(ar_features[f].getString(fieldsCount)); - } - - // Rasterize - DoubleBasicGrid rasterized = Rasterizer.rasterize( - ar_geoms, ar_attributes, clipEnvelope, cellDimension); + //Create the output file and display on OJ + //Save grid as tiff + RasterUtils.saveOutputRasterAsTiff(rasterized, new File(outRasterName)); + //Display raster on OJ from file + RasterUtils.displayRasterFileOnOJ( + context.getWorkbenchContext(), + new File(outRasterName), + null); - //Create the output file and display on OJ - //Save grid as tiff - RasterUtils.saveOutputRasterAsTiff(rasterized, new File(outRasterName)); - //Display raster on OJ from file - RasterUtils.displayRasterFileOnOJ( - context.getWorkbenchContext(), - new File(outRasterName), - null); - - JOptionPane.showMessageDialog(super.getInitialDialog(), - PluginUtils.getResources().getString("SetWorkspacePlugin.Done.message"), PluginUtils.plugInName, JOptionPane.INFORMATION_MESSAGE); - - } catch (OutOfMemoryError out) { - ErrorDialog.show( - super.getInitialDialog(), - PluginUtils.plugInName, - out.toString(), + JOptionPane.showMessageDialog(super.getInitialDialog(), + PluginUtils.getResources().getString("SetWorkspacePlugin.Done.message"), PluginUtils.plugInName, JOptionPane.INFORMATION_MESSAGE); + */ + } catch (final OutOfMemoryError out) { + ErrorDialog.show(super.getInitialDialog(), + PluginUtils.plugInName, out.toString(), StringUtil.stackTrace(out)); - } catch (WarningException ex) { - JOptionPane.showMessageDialog(super.getInitialDialog(), ex.getMessage(), PluginUtils.plugInName, JOptionPane.WARNING_MESSAGE); - } catch (Exception ex) { - ErrorDialog.show( - super.getInitialDialog(), - PluginUtils.plugInName, - ex.toString(), + } catch (final WarningException ex) { + JOptionPane.showMessageDialog(super.getInitialDialog(), + ex.getMessage(), PluginUtils.plugInName, + JOptionPane.WARNING_MESSAGE); + } catch (final Exception ex) { + ErrorDialog.show(super.getInitialDialog(), + PluginUtils.plugInName, ex.toString(), StringUtil.stackTrace(ex)); } finally { - super.getInitialDialog().setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); + super.getInitialDialog().setCursor( + new Cursor(Cursor.DEFAULT_CURSOR)); } } @@ -272,20 +392,22 @@ } }; - return this.mainPanel; + return mainPanel; } @Override public String toString() { - return PluginUtils.getResources().getString("RasterizeVectorLayerPlugin.PlugInName.label"); + return PluginUtils.getResources().getString( + "RasterizeVectorLayerPlugin.PlugInName.label"); } - private void checksValues(String vectorLayer, String attributes, String snapRaster, String outRaster) throws IOException, Exception { + private void checksValues(String vectorLayer, String attributes, + String snapRaster, String outRaster) throws IOException, Exception { GUIUtils.checkStringValue(vectorLayer, VECTOR_LAYER_LABEL); GUIUtils.checkStringValue(attributes, ATTRIBUTE_LABEL); - if(snapRaster != null) { + if (snapRaster != null) { GUIUtils.checkStringValue(snapRaster, SNAP_RASTER_LABEL); } GUIUtils.checkFileValue(outRaster, GUIUtils.getOutputRasterString()); @@ -297,11 +419,15 @@ private Layer[] layers; private final Map<Integer, Integer> attribHt = new HashMap<Integer, Integer>(); - private final String VECTOR_LAYER_LABEL = PluginUtils.getResources().getString("RasterizeCevtorLayerPlugin.ComboBox1Label.text"); - private final String ATTRIBUTE_LABEL = PluginUtils.getResources().getString("RasterizeCevtorLayerPlugin.ComboBox2Label.text"); - private final String CELL_LABEL = PluginUtils.getResources().getString("RasterizeVectorLayerPlugIn.CellDimensionLabel.text"); - private final String SNAP_RASTER_LABEL = GUIUtils.setGUILabel(PluginUtils.getResources().getString("KlemGUI.Raster.label")); - + private final String VECTOR_LAYER_LABEL = PluginUtils.getResources() + .getString("RasterizeCevtorLayerPlugin.ComboBox1Label.text"); + private final String ATTRIBUTE_LABEL = PluginUtils.getResources() + .getString("RasterizeCevtorLayerPlugin.ComboBox2Label.text"); + private final String CELL_LABEL = PluginUtils.getResources().getString( + "RasterizeVectorLayerPlugIn.CellDimensionLabel.text"); + private final String SNAP_RASTER_LABEL = GUIUtils.setGUILabel(PluginUtils + .getResources().getString("KlemGUI.Raster.label")); + private final LayerablesList layerablesList; } Modified: plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/rastertools/ReclassRasterPlugin.java =================================================================== --- plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/rastertools/ReclassRasterPlugin.java 2019-01-19 10:32:18 UTC (rev 6105) +++ plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/rastertools/ReclassRasterPlugin.java 2019-01-19 11:03:24 UTC (rev 6106) @@ -1,27 +1,5 @@ package com.geomaticaeambiente.klemgui.plugin.rastertools; -import com.geomaticaeambiente.klemgui.utils.PluginUtils; -import com.geomaticaeambiente.klemgui.ui.CustomComboBox; -import com.geomaticaeambiente.klemgui.ui.CustomComboBox.RasterComboBox; -import com.geomaticaeambiente.openjump.klem.grid.DoubleBasicGrid; -import com.geomaticaeambiente.klemgui.ui.GUIUtils; -import com.geomaticaeambiente.klemgui.ui.InitialDialog; -import com.geomaticaeambiente.klemgui.utils.ActionObject; -import com.geomaticaeambiente.klemgui.utils.ComponentsTreeMap; -import com.geomaticaeambiente.klemgui.ui.MainPanel; -import com.geomaticaeambiente.klemgui.ui.PersonalTableComponents; -import com.geomaticaeambiente.klemgui.ui.LayerablesList; -import com.geomaticaeambiente.klemgui.ui.YourTableCellRenderer1; -import com.geomaticaeambiente.klemgui.utils.AbstractInputKlemPlugin; -import com.geomaticaeambiente.klemgui.utils.RasterUtils; -import com.geomaticaeambiente.klemgui.utils.PersonalTable; -import com.geomaticaeambiente.klemgui.utils.InitialData; -import com.geomaticaeambiente.openjump.klem.rastertools.RasterReclassifier; -import com.geomaticaeambiente.openjump.klem.rastertools.ReclassTuple; -import com.vividsolutions.jump.util.StringUtil; -import com.vividsolutions.jump.workbench.plugin.PlugInContext; -import com.vividsolutions.jump.workbench.ui.ErrorDialog; - import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -41,6 +19,33 @@ import org.openjump.core.rasterimage.RasterImageLayer; +import com.geomaticaeambiente.klemgui.ui.CustomComboBox; +import com.geomaticaeambiente.klemgui.ui.CustomComboBox.RasterComboBox; +import com.geomaticaeambiente.klemgui.ui.GUIUtils; +import com.geomaticaeambiente.klemgui.ui.InitialDialog; +import com.geomaticaeambiente.klemgui.ui.LayerablesList; +import com.geomaticaeambiente.klemgui.ui.MainPanel; +import com.geomaticaeambiente.klemgui.ui.PersonalTableComponents; +import com.geomaticaeambiente.klemgui.ui.YourTableCellRenderer1; +import com.geomaticaeambiente.klemgui.utils.AbstractInputKlemPlugin; +import com.geomaticaeambiente.klemgui.utils.ActionObject; +import com.geomaticaeambiente.klemgui.utils.ComponentsTreeMap; +import com.geomaticaeambiente.klemgui.utils.InitialData; +import com.geomaticaeambiente.klemgui.utils.PersonalTable; +import com.geomaticaeambiente.klemgui.utils.PluginUtils; +import com.geomaticaeambiente.klemgui.utils.RasterUtils; +import com.geomaticaeambiente.openjump.klem.grid.DoubleBasicGrid; +import com.geomaticaeambiente.openjump.klem.rastertools.RasterReclassifier; +import com.geomaticaeambiente.openjump.klem.rastertools.ReclassTuple; +import com.vividsolutions.jump.task.TaskMonitor; +import com.vividsolutions.jump.util.StringUtil; +import com.vividsolutions.jump.workbench.Logger; +import com.vividsolutions.jump.workbench.plugin.AbstractPlugIn; +import com.vividsolutions.jump.workbench.plugin.PlugInContext; +import com.vividsolutions.jump.workbench.plugin.ThreadedBasePlugIn; +import com.vividsolutions.jump.workbench.ui.ErrorDialog; +import com.vividsolutions.jump.workbench.ui.task.TaskMonitorManager; + /** * * @author Geomatica @@ -47,7 +52,8 @@ */ public class ReclassRasterPlugin extends AbstractInputKlemPlugin { - public ReclassRasterPlugin(PlugInContext context, InitialDialog initialDialog, LayerablesList layerablesList) { + public ReclassRasterPlugin(PlugInContext context, + InitialDialog initialDialog, LayerablesList layerablesList) { super(context, initialDialog); this.context = context; this.layerablesList = layerablesList; @@ -56,37 +62,44 @@ @Override public InitialData setInitialData() { -// rasterImageLayers = PluginUtils.getRasterImageLayers(context); + // rasterImageLayers = PluginUtils.getRasterImageLayers(context); - methods = new String[]{ - ST_DEV_METHOD, - FIXED_INTERV_METHOD, - INTERVAL_METHOD, - UNIQUE_METHOD - }; + methods = new String[] { ST_DEV_METHOD, FIXED_INTERV_METHOD, + INTERVAL_METHOD, UNIQUE_METHOD }; final Integer[] classes = new Integer[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 26, 28, 29, 30 }; - Integer[] stDevClasses = new Integer[]{1, 2, 3, 4, 5}; + final Integer[] stDevClasses = new Integer[] { 1, 2, 3, 4, 5 }; - PersonalTable personalTable = new PersonalTable(reclassTableModel(), null, - false, false, true, false, true, null, null, true); + final PersonalTable personalTable = new PersonalTable( + reclassTableModel(), null, false, false, true, false, true, + null, null, true); - InitialData initialData = new InitialData(); + final InitialData initialData = new InitialData(); //input data - initialData.setParam_Label_TextBox(GUIUtils.setGUILabel(RASTER_IN_LABEL), PluginUtils.getRasterImageLayers(layerablesList.getLayerables()), GUIUtils.INPUT); //Raster input - initialData.setParam_Label_TextBox_Button(GUIUtils.setGUILabel(METHOD_LABEL), + initialData.setParam_Label_TextBox(GUIUtils + .setGUILabel(RASTER_IN_LABEL), PluginUtils + .getRasterImageLayers(layerablesList.getLayerables()), + GUIUtils.INPUT); //Raster input + initialData.setParam_Label_TextBox_Button( + GUIUtils.setGUILabel(METHOD_LABEL), methods, - new ActionObject(PluginUtils.getResources().getString("ReclassRasterPlugin.FindValues.button")), GUIUtils.INPUT); //method - initialData.setParam_Label_TextBox(GUIUtils.setGUILabel(CLASSES_LABEL), classes, GUIUtils.INPUT); //classes - initialData.setParam_Label_TextBox(GUIUtils.setGUILabel(STDEV_LABEL), stDevClasses, GUIUtils.INPUT); //st dev - initialData.setParam_Label_TextBox(GUIUtils.setGUILabel(INTERVAL_LABEL), "", GUIUtils.INPUT);//interval + new ActionObject(PluginUtils.getResources().getString( + "ReclassRasterPlugin.FindValues.button")), + GUIUtils.INPUT); //method + initialData.setParam_Label_TextBox(GUIUtils.setGUILabel(CLASSES_LABEL), + classes, GUIUtils.INPUT); //classes + initialData.setParam_Label_TextBox(GUIUtils.setGUILabel(STDEV_LABEL), + stDevClasses, GUIUtils.INPUT); //st dev + initialData.setParam_Label_TextBox( + GUIUtils.setGUILabel(INTERVAL_LABEL), "", GUIUtils.INPUT);//interval initialData.setParam_PersonalTable(personalTable, null, GUIUtils.INPUT);//table //output data initialData.setParam_Label_TextBox_Button( - GUIUtils.setGUILabel(GUIUtils.getOutputRasterLabel()), "", new ActionObject(""), GUIUtils.OUTPUT); + GUIUtils.setGUILabel(GUIUtils.getOutputRasterLabel()), "", + new ActionObject(""), GUIUtils.OUTPUT); return initialData; @@ -93,11 +106,14 @@ } @Override - public ComponentsTreeMap setComponentsActions(ComponentsTreeMap personalTreeMap) { + public ComponentsTreeMap setComponentsActions( + ComponentsTreeMap personalTreeMap) { - JButton jButton_findValue = (JButton) personalTreeMap.getComponent("01", GUIUtils.INPUT, 2); //Find values button // 01 input= row 2=column + final JButton jButton_findValue = (JButton) personalTreeMap + .getComponent("01", GUIUtils.INPUT, 2); //Find values button // 01 input= row 2=column - final CustomComboBox.RasterComboBox raster = (CustomComboBox.RasterComboBox) (JComboBox) personalTreeMap.getComponent("00", GUIUtils.INPUT, 1);//raster in combobox action + final CustomComboBox.RasterComboBox raster = (CustomComboBox.RasterComboBox) (JComboBox) personalTreeMap + .getComponent("00", GUIUtils.INPUT, 1);//raster in combobox action raster.addActionListener(new ActionListener() { @Override @@ -106,16 +122,24 @@ } }); - final JComboBox jCombobox_method = (JComboBox) personalTreeMap.getComponent("01", GUIUtils.INPUT, 1); //method combobox - final JComboBox jCombobox_classes = (JComboBox) personalTreeMap.getComponent("02", GUIUtils.INPUT, 1); //classes combobox - final JComboBox jcCombobox_StDev = (JComboBox) personalTreeMap.getComponent("03", GUIUtils.INPUT, 1); //st. dev. combobox - final JTextField jTextFiedl_interval = (JTextField) personalTreeMap.getComponent("04", GUIUtils.INPUT, 1); - final PersonalTableComponents personalComp_Table = (PersonalTableComponents) personalTreeMap.getComponent("05", GUIUtils.INPUT, 0); //table - - final JLabel jLabel_classes = (JLabel) personalTreeMap.getComponent("02", GUIUtils.INPUT, 0); - final JLabel jLabel_StDev = (JLabel) personalTreeMap.getComponent("03", GUIUtils.INPUT, 0); - final JLabel jLabel_interval = (JLabel) personalTreeMap.getComponent("04", GUIUtils.INPUT, 0); + final JComboBox jCombobox_method = (JComboBox) personalTreeMap + .getComponent("01", GUIUtils.INPUT, 1); //method combobox + final JComboBox jCombobox_classes = (JComboBox) personalTreeMap + .getComponent("02", GUIUtils.INPUT, 1); //classes combobox + final JComboBox jcCombobox_StDev = (JComboBox) personalTreeMap + .getComponent("03", GUIUtils.INPUT, 1); //st. dev. combobox + final JTextField jTextFiedl_interval = (JTextField) personalTreeMap + .getComponent("04", GUIUtils.INPUT, 1); + final PersonalTableComponents personalComp_Table = (PersonalTableComponents) personalTreeMap + .getComponent("05", GUIUtils.INPUT, 0); //table + final JLabel jLabel_classes = (JLabel) personalTreeMap.getComponent( + "02", GUIUtils.INPUT, 0); + final JLabel jLabel_StDev = (JLabel) personalTreeMap.getComponent("03", + GUIUtils.INPUT, 0); + final JLabel jLabel_interval = (JLabel) personalTreeMap.getComponent( + "04", GUIUtils.INPUT, 0); + //find raster values jButton_findValue.addActionListener(new ActionListener() { @@ -122,13 +146,12 @@ @Override public void actionPerformed(ActionEvent e) { try { - findValues(raster, jCombobox_method, jCombobox_classes, jcCombobox_StDev, jTextFiedl_interval, personalComp_Table); - } catch (Exception ex) { - JOptionPane.showMessageDialog( - mainPanel, - ex.getMessage(), - PluginUtils.plugInName, - JOptionPane.WARNING_MESSAGE); + findValues(raster, jCombobox_method, jCombobox_classes, + jcCombobox_StDev, jTextFiedl_interval, + personalComp_Table); + } catch (final Exception ex) { + JOptionPane.showMessageDialog(mainPanel, ex.getMessage(), + PluginUtils.plugInName, JOptionPane.WARNING_MESSAGE); } } }); @@ -138,81 +161,204 @@ @Override public void actionPerformed(ActionEvent e) { - enableElement(jCombobox_method, jLabel_classes, jCombobox_classes, jLabel_StDev, jcCombobox_StDev, jLabel_interval, jTextFiedl_interval); + enableElement(jCombobox_method, jLabel_classes, + jCombobox_classes, jLabel_StDev, jcCombobox_StDev, + jLabel_interval, jTextFiedl_interval); } }); //output - final JTextField outputTextField = (JTextField) personalTreeMap.getComponent("00", GUIUtils.OUTPUT, 1); - JButton outputButton = (JButton) personalTreeMap.getComponent("00", GUIUtils.OUTPUT, 2); + final JTextField outputTextField = (JTextField) personalTreeMap + .getComponent("00", GUIUtils.OUTPUT, 1); + final JButton outputButton = (JButton) personalTreeMap.getComponent( + "00", GUIUtils.OUTPUT, 2); outputButton.setIcon(PluginUtils.getFolderIcon()); - outputButton.addActionListener(GUIUtils.setSaveRasterTif(outputTextField)); + outputButton.addActionListener(GUIUtils + .setSaveRasterTif(outputTextField)); return personalTreeMap; } + public void reclassRasterCommand( + final ComponentsTreeMap componentsWithActions) throws Exception { + //input values + final String rasterSelected = GUIUtils + .getStringValue(componentsWithActions.getComponent("00", + GUIUtils.INPUT, 1)); + final String methodSelected = GUIUtils + .getStringValue(componentsWithActions.getComponent("01", + GUIUtils.INPUT, 1)); + final String classesSelected = GUIUtils + .getStringValue(componentsWithActions.getComponent("02", + GUIUtils.INPUT, 1)); + final String stDevSelected = GUIUtils + .getStringValue(componentsWithActions.getComponent("03", + GUIUtils.INPUT, 1)); + final String intervalSelected = GUIUtils + .getStringValue(componentsWithActions.getComponent("04", + GUIUtils.INPUT, 1)); + + //get output raster name + final String outRasterName = GUIUtils + .getStringValue(componentsWithActions.getComponent("00", + GUIUtils.OUTPUT, 1)); + + //check input and output values + checkValues(rasterSelected, methodSelected, classesSelected, + stDevSelected, intervalSelected, outRasterName); + + //extract raster selected from combobox + final RasterImageLayer inputRasterSelected = PluginUtils + .getRasterImageLayerSelected((RasterComboBox) componentsWithActions + .getComponent("00", GUIUtils.INPUT, 1)); + final DoubleBasicGrid rasterDBG = RasterUtils + .getDoubleBasicGrid(inputRasterSelected); + + //extract values from table + final String newValuesTable = GUIUtils + .getStringValue(componentsWithActions.getComponent("05", + GUIUtils.INPUT, 0)); //TODO: CHECK + final ReclassTuple[] reclassPair = PluginUtils + .getReclassPairFromString(newValuesTable); + + //exceute reclassification + final RasterReclassifier reclassifier = new RasterReclassifier(); + final DoubleBasicGrid reclassRaster = reclassifier.reclassify( + rasterDBG, reclassPair); + + ///Create the output rasterImageLayer and display on OJ + //Save grid as tiff + RasterUtils.saveOutputRasterAsTiff(reclassRaster, new File( + outRasterName)); + //Display raster on OJ from file + RasterUtils.displayRasterFileOnOJ(context.getWorkbenchContext(), + new File(outRasterName), null); + + JOptionPane.showMessageDialog(super.getInitialDialog(), PluginUtils + .getResources().getString("SetWorkspacePlugin.Done.message"), + PluginUtils.plugInName, JOptionPane.INFORMATION_MESSAGE); + } + @Override public JPanel buildPluginPanel(final ComponentsTreeMap componentsWithActions) { - if(this.mainPanel != null) { - return this.mainPanel; + if (mainPanel != null) { + return mainPanel; } - this.mainPanel = new MainPanel(super.getInitialDialog(), componentsWithActions, false, false, true, - PluginUtils.getResources().getString("MainPanel.ExecuteButton.text"), layerablesList) { + mainPanel = new MainPanel(super.getInitialDialog(), + componentsWithActions, false, false, true, PluginUtils + .getResources().getString( + "MainPanel.ExecuteButton.text"), layerablesList) { + /** + * + */ + private static final long serialVersionUID = 1L; + @Override public void rightButton() { try { + AbstractPlugIn.toActionListener(new ThreadedBasePlugIn() { + @Override + public String getName() { + return null; + } + + @Override + public boolean execute(PlugInContext context) + throws Exception { + return true; + } + + @Override + public void run(TaskMonitor monitor, + PlugInContext context) throws Exception { + monitor.report(PluginUtils.getResources() + .getString("OpenKlem.executing-process")); + // monitor.allowCancellationRequests(); + reportNothingToUndoYet(context); + try { + reclassRasterCommand(componentsWithActions); + } catch (final Exception ex) { + Logger.error(getName(), ex); + } + } + }, context.getWorkbenchContext(), new TaskMonitorManager()) + .actionPerformed(null); + //input values - String rasterSelected = GUIUtils.getStringValue(componentsWithActions.getComponent("00", GUIUtils.INPUT, 1)); - String methodSelected = GUIUtils.getStringValue(componentsWithActions.getComponent("01", GUIUtils.INPUT, 1)); - String classesSelected = GUIUtils.getStringValue(componentsWithActions.getComponent("02", GUIUtils.INPUT, 1)); - String stDevSelected = GUIUtils.getStringValue(componentsWithActions.getComponent("03", GUIUtils.INPUT, 1)); - String intervalSelected = GUIUtils.getStringValue(componentsWithActions.getComponent("04", GUIUtils.INPUT, 1)); + /* final String rasterSelected = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "00", GUIUtils.INPUT, 1)); + final String methodSelected = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "01", GUIUtils.INPUT, 1)); + final String classesSelected = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "02", GUIUtils.INPUT, 1)); + final String stDevSelected = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "03", GUIUtils.INPUT, 1)); + final String intervalSelected = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "04", GUIUtils.INPUT, 1)); - //get output raster name - String outRasterName = GUIUtils.getStringValue(componentsWithActions.getComponent("00", GUIUtils.OUTPUT, 1)); + //get output raster name + final String outRasterName = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "00", GUIUtils.OUTPUT, 1)); - //check input and output values - checkValues(rasterSelected, methodSelected, classesSelected, stDevSelected, intervalSelected, outRasterName); + //check input and output values + checkValues(rasterSelected, methodSelected, + classesSelected, stDevSelected, intervalSelected, + outRasterName); - //extract raster selected from combobox - RasterImageLayer inputRasterSelected = PluginUtils.getRasterImageLayerSelected((RasterComboBox) componentsWithActions.getComponent("00", GUIUtils.INPUT, 1)); - DoubleBasicGrid rasterDBG = RasterUtils.getDoubleBasicGrid(inputRasterSelected); + //extract raster selected from combobox + final RasterImageLayer inputRasterSelected = PluginUtils + .getRasterImageLayerSelected((RasterComboBox) componentsWithActions + .getComponent("00", GUIUtils.INPUT, 1)); + final DoubleBasicGrid rasterDBG = RasterUtils + .getDoubleBasicGrid(inputRasterSelected); - //extract values from table - String newValuesTable = GUIUtils.getStringValue(componentsWithActions.getComponent("05", GUIUtils.INPUT, 0)); //TODO: CHECK - ReclassTuple[] reclassPair = PluginUtils.getReclassPairFromString(newValuesTable); + //extract values from table + final String newValuesTable = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "05", GUIUtils.INPUT, 0)); //TODO: CHECK + final ReclassTuple[] reclassPair = PluginUtils + .getReclassPairFromString(newValuesTable); - //exceute reclassification - RasterReclassifier reclassifier = new RasterReclassifier(); - DoubleBasicGrid reclassRaster = reclassifier.reclassify(rasterDBG, reclassPair); + //exceute reclassification + final RasterReclassifier reclassifier = new RasterReclassifier(); + final DoubleBasicGrid reclassRaster = reclassifier + .reclassify(rasterDBG, reclassPair); - ///Create the output rasterImageLayer and display on OJ - //Save grid as tiff - RasterUtils.saveOutputRasterAsTiff(reclassRaster, new File(outRasterName)); - //Display raster on OJ from file - RasterUtils.displayRasterFileOnOJ( - context.getWorkbenchContext(), - new File(outRasterName), - null); + ///Create the output rasterImageLayer and display on OJ + //Save grid as tiff + RasterUtils.saveOutputRasterAsTiff(reclassRaster, new File( + outRasterName)); + //Display raster on OJ from file + RasterUtils.displayRasterFileOnOJ(context + .getWorkbenchContext(), new File(outRasterName), + null); - JOptionPane.showMessageDialog(super.getInitialDialog(), - PluginUtils.getResources().getString("SetWorkspacePlugin.Done.message"), PluginUtils.plugInName, JOptionPane.INFORMATION_MESSAGE); + JOptionPane.showMessageDialog( + super.getInitialDialog(), + PluginUtils.getResources().getString( + "SetWorkspacePlugin.Done.message"), + PluginUtils.plugInName, + JOptionPane.INFORMATION_MESSAGE);*/ - } catch (Exception ex) { - ErrorDialog.show( - super.getInitialDialog(), - PluginUtils.plugInName, - ex.toString(), + } catch (final Exception ex) { + ErrorDialog.show(super.getInitialDialog(), + PluginUtils.plugInName, ex.toString(), StringUtil.stackTrace(ex)); } } ; - + @Override public void leftButton() { @@ -225,28 +371,29 @@ }; - return this.mainPanel; + return mainPanel; } @Override public String toString() { - return PluginUtils.getResources().getString("ReclassRasterPlugin.PlugInName.text"); + return PluginUtils.getResources().getString( + "ReclassRasterPlugin.PlugInName.text"); } private DefaultTableModel reclassTableModel() { - String col[] = {FROM_LABEL, TO_LABEL, NEW_LABEL}; + final String col[] = { FROM_LABEL, TO_LABEL, NEW_LABEL }; - String data[][] = {{null, null, null}}; + final String data[][] = { { null, null, null } }; - DefaultTableModel dtm = new DefaultTableModel(data, col); + final DefaultTableModel dtm = new DefaultTableModel(data, col); // Empty table for (int r = dtm.getRowCount() - 1; r >= 0; --r) { boolean toRemove = true; for (int c = 0; c < dtm.getColumnCount(); c++) { - Object cellCont = dtm.getValueAt(r, c); + final Object cellCont = dtm.getValueAt(r, c); if (cellCont != null) { toRemove = false; break; @@ -261,24 +408,28 @@ } - private void findValues(RasterComboBox raster, JComboBox metodo, JComboBox classi, JComboBox dev, JTextField interval, PersonalTableComponents ptc) throws Exception { + private void findValues(RasterComboBox raster, JComboBox metodo, + JComboBox classi, JComboBox dev, JTextField interval, + PersonalTableComponents ptc) throws Exception { try { - String rasterIn = raster.getSelectedItem().toString(); - String methodSelected = metodo.getSelectedItem().toString(); - String classSelected = classi.getSelectedItem().toString(); - String devSelected = dev.getSelectedItem().toString(); - String intervalSelected = interval.getText(); + final String rasterIn = raster.getSelectedItem().toString(); + final String methodSelected = metodo.getSelectedItem().toString(); + final String classSelected = classi.getSelectedItem().toString(); + final String devSelected = dev.getSelectedItem().toString(); + final String intervalSelected = interval.getText(); //check input values - checkValues(rasterIn, methodSelected, classSelected, devSelected, intervalSelected, null); + checkValues(rasterIn, methodSelected, classSelected, devSelected, + intervalSelected, null); - RasterImageLayer ril = PluginUtils.getRasterImageLayerSelected(raster); + final RasterImageLayer ril = PluginUtils + .getRasterImageLayerSelected(raster); rasterChanged = true; // Read values - ArrayList<Double> valsUnique = new ArrayList<Double>(); + final ArrayList<Double> valsUnique = new ArrayList<Double>(); double valSum; double valCount; double valSumSquare; @@ -289,13 +440,13 @@ // Read data only if new flt selected if (rasterChanged || metodo.getSelectedIndex() == 4) { - Raster raster_ = ril.getRasterData(null); + final Raster raster_ = ril.getRasterData(null); - int width = raster_.getWidth(); - int height = raster_.getHeight(); + final int width = raster_.getWidth(); + final int height = raster_.getHeight(); // Transfer vals to arraylist - ArrayList<Double> vals = new ArrayList<Double>(); + final ArrayList<Double> vals = new ArrayList<Double>(); double val; valSum = 0; @@ -330,8 +481,9 @@ } } - double valMean = valSum / valCount; - valStDev = Math.sqrt(valSumSquare / valCount - valMean * valMean); + final double valMean = valSum / valCount; + valStDev = Math.sqrt(valSumSquare / valCount - valMean + * valMean); // Only for unique values if (metodo.getSelectedIndex() == 4) { @@ -351,7 +503,7 @@ // Add values to table // Remove all rows - DefaultTableModel dtm = (DefaultTableModel) ptc.getTabelModel(); + final DefaultTableModel dtm = ptc.getTabelModel(); for (int i = dtm.getRowCount() - 1; i >= 0; --i) { dtm.removeRow(i); @@ -360,163 +512,178 @@ // Add rows switch (metodo.getSelectedIndex()) { - // StandardDev - case 1: - int nrStDev = Integer.parseInt((dev.getSelectedItem()).toString()); + // StandardDev + case 1: + final int nrStDev = Integer.parseInt((dev.getSelectedItem()) + .toString()); - // Fill up rows - double valSpan = valStDev / nrStDev; - int intvCount = (int) ((valMax - valMin) / valSpan); + // Fill up rows + double valSpan = valStDev / nrStDev; + int intvCount = (int) ((valMax - valMin) / valSpan); - if (intvCount > 100) { - int res = JOptionPane.showConfirmDialog( - super.getInitialDialog(), - PluginUtils.getResources().getString("ReclassRasterPlugin.MoreThen100.message"), - PluginUtils.plugInName, - JOptionPane.YES_NO_OPTION); - if (res != 0) { - return; - } + if (intvCount > 100) { + final int res = JOptionPane.showConfirmDialog( + super.getInitialDialog(), + PluginUtils.getResources().getString( + "ReclassRasterPlugin.MoreThen100.message"), + PluginUtils.plugInName, JOptionPane.YES_NO_OPTION); + if (res != 0) { + return; } + } - double valStart; - double valEnd; + double valStart; + double valEnd; - // First interval - valEnd = valMin; - // Following intervals - for (int i = 0; i <= intvCount; i++) { - valStart = valEnd; - valEnd = valStart + valSpan; - if (valEnd >= valMax) { - valEnd = valMax; - } + // First interval + valEnd = valMin; + // Following intervals + for (int i = 0; i <= intvCount; i++) { + valStart = valEnd; + valEnd = valStart + valSpan; + if (valEnd >= valMax) { + valEnd = valMax; + } - dtm.addRow(new Object[]{valStart, valEnd, null}); + dtm.addRow(new Object[] { valStart, valEnd, null }); - } + } - dtm.addRow(new Object[]{-9999.0, -9999.0, -9999.0}); - setCellRenderer(intvCount + 1, ptc); + dtm.addRow(new Object[] { -9999.0, -9999.0, -9999.0 }); + setCellRenderer(intvCount + 1, ptc); + break; + + // Equal interval + case 2: + + try { + valSpan = Double.parseDouble(interval.getText()); + } catch (final Exception ex1) { + JOptionPane + .showMessageDialog( + super.getInitialDialog(), + PluginUtils + .getResources() + .getString( + "ReclassRasterPlugin.VerifyIntervalsNo.message"), + PluginUtils.plugInName, + JOptionPane.WARNING_MESSAGE); break; + } - // Equal interval - case 2: - - try { - valSpan = Double.parseDouble(interval.getText()); - } catch (Exception ex1) { - JOptionPane.showMessageDialog( - super.getInitialDialog(), - PluginUtils.getResources().getString("ReclassRasterPlugin.VerifyIntervalsNo.message"), - PluginUtils.plugInName, - JOptionPane.WARNING_MESSAGE); - break; + valMin = Math.floor(valMin / valSpan) * valSpan; + valMax = Math.ceil(valMax / valSpan) * valSpan; + intvCount = (int) ((valMax - valMin) / valSpan); + if (intvCount > 100) { + final int res = JOptionPane + .showConfirmDialog( + super.getInitialDialog(), + PluginUtils + .getResources() + .getString( + "ReclassRasterPlugin.FoundMoreThen100Classes.message"), + PluginUtils.plugInName, + JOptionPane.YES_NO_OPTION); + if (res != 0) { + return; } + } - valMin = Math.floor(valMin/valSpan) * valSpan; - valMax = Math.ceil(valMax/valSpan) * valSpan; - intvCount = (int) ((valMax - valMin) / valSpan); - if (intvCount > 100) { - int res = JOptionPane.showConfirmDialog( - super.getInitialDialog(), - PluginUtils.getResources().getString("ReclassRasterPlugin.FoundMoreThen100Classes.message"), - PluginUtils.plugInName, - JOptionPane.YES_NO_OPTION); - if (res != 0) { - return; - } + // Following intervals + valEnd = valMin; + for (int i = 0; i < intvCount; i++) { + valStart = valEnd; + valEnd = valStart + valSpan; + if (valEnd >= valMax) { + valEnd = valMax; } - // Following intervals - valEnd = valMin; - for (int i = 0; i < intvCount; i++) { - valStart = valEnd; - valEnd = valStart + valSpan; - if (valEnd >= valMax) { - valEnd = valMax; - } + dtm.addRow(new Object[] { valStart, valEnd, null }); - dtm.addRow(new Object[]{valStart, valEnd, null}); + } + dtm.addRow(new Object[] { -9999.0, -9999.0, -9999.0 }); + setCellRenderer(intvCount + 1, ptc); + break; + + // Intervals + case 3: + intvCount = classi.getSelectedIndex() - 1; + if (intvCount > 100) { + final int res = JOptionPane + .showConfirmDialog( + super.getInitialDialog(), + PluginUtils + .getResources() + .getString( + "ReclassRasterPlugin.FoundMoreThen100Classes.message"), + PluginUtils.plugInName, + JOptionPane.YES_NO_OPTION); + if (res != 0) { + return; } + } - dtm.addRow(new Object[]{-9999.0, -9999.0, -9999.0}); - setCellRenderer(intvCount + 1, ptc); - break; + valSpan = (int) ((valMax - valMin) / intvCount); - // Intervals - case 3: - intvCount = classi.getSelectedIndex() - 1; - if (intvCount > 100) { - int res = JOptionPane.showConfirmDialog( - super.getInitialDialog(), - PluginUtils.getResources().getString("ReclassRasterPlugin.FoundMoreThen100Classes.message"), - PluginUtils.plugInName, - JOptionPane.YES_NO_OPTION); - if (res != 0) { - return; - } + // First interval + valEnd = valMin; + // Following intervals + for (int i = 0; i <= intvCount; i++) { + valStart = valEnd; + valEnd = valStart + valSpan; + if (valEnd >= valMax) { + valEnd = valMax; } - valSpan = (int) ((valMax - valMin) / intvCount); + dtm.addRow(new Object[] { valStart, valEnd, null }); + } - // First interval - valEnd = valMin; - // Following intervals - for (int i = 0; i <= intvCount; i++) { - valStart = valEnd; - valEnd = valStart + valSpan; - if (valEnd >= valMax) { - valEnd = valMax; - } + dtm.addRow(new Object[] { -9999.0, -9999.0, -9999.0 }); + setCellRenderer(intvCount + 1, ptc); + break; - dtm.addRow(new Object[]{valStart, valEnd, null}); + case 4: + // Unique integer values + intvCount = valsUnique.size(); + if (intvCount > 100) { + final int res = JOptionPane + .showConfirmDialog( + super.getInitialDialog(), + PluginUtils + .getResources() + .getString( + "ReclassRasterPlugin.FoundMoreThen100Classes.message"), + PluginUtils.plugInName, + JOptionPane.YES_NO_OPTION); + if (res != 0) { + return; } + } + for (int i = 0; i < intvCount; i++) { + dtm.addRow(new Object[] { valsUnique.get(i), + valsUnique.get(i), null }); + } - dtm.addRow(new Object[]{-9999.0, -9999.0, -9999.0}); - setCellRenderer(intvCount + 1, ptc); - break; + dtm.addRow(new Object[] { -9999.0, -9999.0, -9999.0 }); - case 4: - // Unique integer values - intvCount = valsUnique.size(); - if (intvCount > 100) { - int res = JOptionPane.showConfirmDialog( - super.getInitialDialog(), - PluginUtils.getResources().getString("ReclassRasterPlugin.FoundMoreThen100Classes.message"), - PluginUtils.plugInName, - JOptionPane.YES_NO_OPTION); - if (res != 0) { - return; - } - } - for (int i = 0; i < intvCount; i++) { - dtm.addRow(new Object[]{valsUnique.get(i), valsUnique.get(i), null}); - } + //System.out.println(intvCount); + setCellRenderer(intvCount, ptc); + break; - dtm.addRow(new Object[]{-9999.0, -9999.0, -9999.0}); - - //System.out.println(intvCount); - setCellRenderer(intvCount, ptc); - break; - } rasterChanged = false; - } catch (Exception ex) { - ErrorDialog.show( - super.getInitialDialog(), - PluginUtils.plugInName, - ex.toString(), - StringUtil.stackTrace(ex)); + } catch (final Exception ex) { + ErrorDialog.show(super.getInitialDialog(), PluginUtils.plugInName, + ex.toString(), StringUtil.stackTrace(ex)); } } private static void setCellRenderer(int row, PersonalTableComponents ptc) { - YourTableCellRenderer1 ytcr = new YourTableCellRenderer1(); + final YourTableCellRenderer1 ytcr = new YourTableCellRenderer1(); ytcr.setRow(row); ytcr.setForeColour(Color.BLUE); for (int c = 0; c < ptc.getTabel().getColumnCount(); c++) { @@ -525,57 +692,61 @@ } - private void enableElement(JComboBox method, JLabel classesLabel, JComboBox classes, JLabel stdevLabel, JComboBox stDev, JLabel intervalLabel, JTextField intervals) { + private void enableElement(JComboBox method, JLabel classesLabel, + JComboBox classes, JLabel stdevLabel, JComboBox stDev, + JLabel intervalLabel, JTextField intervals) { switch (method.getSelectedIndex()) { - /* Standard deviations */ - case 1: + /* Standard deviations */ + case 1: - classesLabel.setEnabled(false); - classes.setEnabled(false); - stdevLabel.setEnabled(true); - stDev.setEnabled(true); - intervalLabel.setEnabled(false); - intervals.setEnabled(false); + classesLabel.setEnabled(false); + classes.setEnabled(false); + stdevLabel.setEnabled(true); + stDev.setEnabled(true); + intervalLabel.setEnabled(false); + intervals.setEnabled(false); - break; - /* Equal Interval */ - case 2: + break; + /* Equal Interval */ + case 2: - classesLabel.setEnabled(false); - classes.setEnabled(false); - stdevLabel.setEnabled(false); - stDev.setEnabled(false); - intervalLabel.setEnabled(true); - intervals.setEnabled(true); + classesLabel.setEnabled(false); + classes.setEnabled(false); + stdevLabel.setEnabled(false); + stDev.setEnabled(false); + intervalLabel.setEnabled(true); + intervals.setEnabled(true); - break; + break; - /* Intevals */ - case 3: + /* Intevals */ + case 3: - classesLabel.setEnabled(true); - classes.setEnabled(true); - stdevLabel.setEnabled(false); - stDev.setEnabled(false); - intervalLabel.setEnabled(false); - intervals.setEnabled(false); + classesLabel.setEnabled(true); + classes.setEnabled(true); + stdevLabel.setEnabled(false); + stDev.setEnabled(false); + intervalLabel.setEnabled(false); + intervals.setEnabled(false); - break; - /* manual */ - case 4: - classesLabel.setEnabled(false); - classes.setEnabled(false); - stdevLabel.setEnabled(false); - stDev.setEnabled(false); - intervalLabel.setEnabled(false); - intervals.setEnabled(false); - break; + break; + /* manual */ + case 4: + classesLabel.setEnabled(false); + classes.setEnabled(false); + stdevLabel.setEnabled(false); + stDev.setEnabled(false); + intervalLabel.setEnabled(false); + intervals.setEnabled(false); + break; } } - private void checkValues(String raster, String method, String classes, String stDev, String interval, String rasterOut) throws IOException, Exception { + private void checkValues(String raster, String method, String classes, + String stDev, String interval, String rasterOut) + throws IOException, Exception { GUIUtils.checkStringValue(raster, RASTER_IN_LABEL); GUIUtils.checkStringValue(method, METHOD_LABEL); @@ -600,21 +771,33 @@ } -// private RasterImageLayer[] rasterImageLayers; + // private RasterImageLayer[] rasterImageLayers; private final PlugInContext context; private MainPanel mainPanel; - private final String ST_DEV_METHOD = PluginUtils.getResources().getString("ReclassRasterPlugin.StDev.text"); - private final String FIXED_INTERV_METHOD = PluginUtils.getResources().getString("ReclassRasterPlugin.FixedInterval.text"); - private final String INTERVAL_METHOD = PluginUtils.getResources().getString("ReclassRasterPlugin.IntervalsNumber.text"); - private final String UNIQUE_METHOD = PluginUtils.getResources().getString("ReclassRasterPlugin.UniqueValues.text"); - private final String RASTER_IN_LABEL = PluginUtils.getResources().getString("KlemGUI.InputRaster.label"); - private final String METHOD_LABEL = PluginUtils.getResources().getString("ReclassRasterPlugin.MethodLabel.text"); - private final String CLASSES_LABEL = PluginUtils.getResources().getString("ReclassRasterPlugin.ClassesLabel.text"); - private final String STDEV_LABEL = PluginUtils.getResources().getString("ReclassRasterPlugin.StDevClassesLabel.text"); - private final String INTERVAL_LABEL = PluginUtils.getResources().getString("ReclassRasterPlugin.IntervalLabel.text"); - private final String FROM_LABEL = PluginUtils.getResources().getString("KlemGUI.From.label"); - private final String TO_LABEL = PluginUtils.getResources().getString("KlemGUI.To.label"); - private final String NEW_LABEL = PluginUtils.getResources().getString("KlemGUI.NewValue.label"); + private final String ST_DEV_METHOD = PluginUtils.getResources().getString( + "ReclassRasterPlugin.StDev.text"); + private final String FIXED_INTERV_METHOD = PluginUtils.getResources() + .getString("ReclassRasterPlugin.FixedInterval.text"); + private final String INTERVAL_METHOD = PluginUtils.getResources() + .getString("ReclassRasterPlugin.IntervalsNumber.text"); + private final String UNIQUE_METHOD = PluginUtils.getResources().getString( + "ReclassRasterPlugin.UniqueValues.text"); + private final String RASTER_IN_LABEL = PluginUtils.getResources() + .getString("KlemGUI.InputRaster.label"); + private final String METHOD_LABEL = PluginUtils.getResources().getString( + "ReclassRasterPlugin.MethodLabel.text"); + private final String CLASSES_LABEL = PluginUtils.getResources().getString( + "ReclassRasterPlugin.ClassesLabel.text"); + private final String STDEV_LABEL = PluginUtils.getResources().getString( + "ReclassRasterPlugin.StDevClassesLabel.text"); + private final String INTERVAL_LABEL = PluginUtils.getResources().getString( + "ReclassRasterPlugin.IntervalLabel.text"); + private final String FROM_LABEL = PluginUtils.getResources().getString( + "KlemGUI.From.label"); + private final String TO_LABEL = PluginUtils.getResources().getString( + "KlemGUI.To.label"); + private final String NEW_LABEL = PluginUtils.getResources().getString( + "KlemGUI.NewValue.label"); private boolean rasterChanged = false; private String[] methods; _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel