Revision: 6094
http://sourceforge.net/p/jump-pilot/code/6094
Author: ma15569
Date: 2019-01-17 17:04:02 +0000 (Thu, 17 Jan 2019)
Log Message:
-----------
Added monitoring to plugin
Modified Paths:
--------------
plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/geomorphometry/SlopeAspectHillshadePlugIn.java
Modified:
plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/geomorphometry/SlopeAspectHillshadePlugIn.java
===================================================================
---
plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/geomorphometry/SlopeAspectHillshadePlugIn.java
2019-01-17 16:36:18 UTC (rev 6093)
+++
plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/geomorphometry/SlopeAspectHillshadePlugIn.java
2019-01-17 17:04:02 UTC (rev 6094)
@@ -30,10 +30,15 @@
import com.geomaticaeambiente.openjump.klem.slope.SlopeStripe.SlopeAlgo;
import com.geomaticaeambiente.openjump.klem.slope.SlopeStripe.SlopeUnits;
import com.vividsolutions.jts.geom.LineString;
+import com.vividsolutions.jump.task.TaskMonitor;
import com.vividsolutions.jump.util.StringUtil;
+import com.vividsolutions.jump.workbench.Logger;
import com.vividsolutions.jump.workbench.model.Layer;
+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;
/**
*
@@ -192,170 +197,191 @@
}
- @Override
- public JPanel buildPluginPanel(final ComponentsTreeMap
componentsWithActions) {
- if (mainPanel != null) {
- return mainPanel;
+ public void SlopeAspectHillshadeCommand(
+ final ComponentsTreeMap componentsWithActions) throws Exception {
+ // DEM
+ final String demFileFullName = GUIUtils
+ .getStringValue(componentsWithActions.getComponent("00",
+ GUIUtils.INPUT, 1));
+
+ // Bluelines
+ final Layer bluelinesLayer = PluginUtils
+ .getLayerSelected((CustomComboBox.LayerComboBox)
componentsWithActions
+ .getComponent("01", GUIUtils.INPUT, 1));
+ LineString[] bluelines = null;
+ if (bluelinesLayer != null) {
+ bluelines = GeometryUtils.getLineStringsFromFeatures(bluelinesLayer
+ .getFeatureCollectionWrapper());
}
- mainPanel = new MainPanel(super.getInitialDialog(),
- componentsWithActions, false, false, true, PluginUtils
- .getResources().getString(
- "MainPanel.ExecuteButton.text"),
layerablesList) {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
+ // Slope algo
+ final boolean slopeAlgoHorn = GUIUtils
+ .componentIsSelected(componentsWithActions.getComponent("01",
+ GUIUtils.OTHER, 0));
- @Override
- public void rightButton() {
- try {
+ // Slope units
+ final boolean slopeUnitsPercent = GUIUtils
+ .componentIsSelected(componentsWithActions.getComponent("03",
+ GUIUtils.OTHER, 0));
- // DEM
- final String demFileFullName = GUIUtils
- .getStringValue(componentsWithActions.getComponent(
- "00", GUIUtils.INPUT, 1));
+ // Zenith
+ final String zenith = GUIUtils.getStringValue(componentsWithActions
+ .getComponent("05", GUIUtils.OTHER, 1));
- // Bluelines
- final Layer bluelinesLayer = PluginUtils
- .getLayerSelected((CustomComboBox.LayerComboBox)
componentsWithActions
- .getComponent("01", GUIUtils.INPUT, 1));
- LineString[] bluelines = null;
- if (bluelinesLayer != null) {
- bluelines = GeometryUtils
- .getLineStringsFromFeatures(bluelinesLayer
- .getFeatureCollectionWrapper());
- }
+ // Azimuth
+ final String azimuth = GUIUtils.getStringValue(componentsWithActions
+ .getComponent("06", GUIUtils.OTHER, 1));
- // Slope algo
- final boolean slopeAlgoHorn = GUIUtils
- .componentIsSelected(componentsWithActions
- .getComponent("01", GUIUtils.OTHER, 0));
+ // Out rasters
+ final String slopeRasterName = GUIUtils
+ .getStringValue(componentsWithActions.getComponent("00",
+ GUIUtils.OUTPUT, 1));
+ final String aspectRasterName = GUIUtils
+ .getStringValue(componentsWithActions.getComponent("01",
+ GUIUtils.OUTPUT, 1));
+ final String hillshadeRasterName = GUIUtils
+ .getStringValue(componentsWithActions.getComponent("02",
+ GUIUtils.OUTPUT, 1));
- // Slope units
- final boolean slopeUnitsPercent = GUIUtils
- .componentIsSelected(componentsWithActions
- .getComponent("03", GUIUtils.OTHER, 0));
+ checkValues(demFileFullName, zenith, azimuth, slopeRasterName,
+ aspectRasterName, hillshadeRasterName);
- // Zenith
- final String zenith = GUIUtils
- .getStringValue(componentsWithActions.getComponent(
- "05", GUIUtils.OTHER, 1));
+ // Retrieve inputs
+ final DoubleBasicGrid demGrid = RasterUtils
+ .getDoubleBasicGrid((CustomComboBox.RasterComboBox)
componentsWithActions
+ .getComponent("00", GUIUtils.INPUT, 1));
- // Azimuth
- final String azimuth = GUIUtils
- .getStringValue(componentsWithActions.getComponent(
- "06", GUIUtils.OTHER, 1));
+ // Execute
+ DoubleBasicGrid slopeGrid = null;
+ DoubleBasicGrid aspectGrid = null;
+ if (!slopeRasterName.equals("") || !hillshadeRasterName.equals("")) {
+ // Calcualte slope: used also for hillshade
+ SlopeAlgo slopeAlgo = SlopeAlgo.HORN;
+ SlopeUnits slopeUnits = SlopeUnits.PERCENT;
+ if (!slopeAlgoHorn) {
+ slopeAlgo = SlopeAlgo.LOCAL;
+ }
+ if (!slopeUnitsPercent) {
+ slopeUnits = SlopeUnits.DEGREES;
+ }
+ final SlopeCalculator sc = new SlopeCalculator(demGrid, bluelines,
+ 100d, slopeAlgo, slopeUnits);
+ slopeGrid = sc.calculate();
+ RasterUtils.saveOutputRasterAsTiff(slopeGrid, new File(
+ slopeRasterName));
+ }
- // Out rasters
- final String slopeRasterName = GUIUtils
- .getStringValue(componentsWithActions.getComponent(
- "00", GUIUtils.OUTPUT, 1));
- final String aspectRasterName = GUIUtils
- .getStringValue(componentsWithActions.getComponent(
- "01", GUIUtils.OUTPUT, 1));
- final String hillshadeRasterName = GUIUtils
- .getStringValue(componentsWithActions.getComponent(
- "02", GUIUtils.OUTPUT, 1));
+ if (!aspectRasterName.equals("") || !hillshadeRasterName.equals("")) {
+ // Aspect
+ final AspectCalculator ac = new AspectCalculator(demGrid,
+ bluelines, 100d);
+ aspectGrid = ac.calculate();
+ RasterUtils.saveOutputRasterAsTiff(aspectGrid, new File(
+ aspectRasterName));
+ }
- checkValues(demFileFullName, zenith, azimuth,
- slopeRasterName, aspectRasterName,
- hillshadeRasterName);
+ if (!hillshadeRasterName.equals("") && slopeGrid != null
+ && aspectGrid != null) {
+ // Hillshade
+ final double zenithDegs = Double.parseDouble(zenith);
+ final double azimuthDegs = Double.parseDouble(azimuth);
- // Retrieve inputs
- final DoubleBasicGrid demGrid = RasterUtils
-
.getDoubleBasicGrid((CustomComboBox.RasterComboBox) componentsWithActions
- .getComponent("00", GUIUtils.INPUT, 1));
+ if (slopeUnitsPercent) {
- // Execute
- DoubleBasicGrid slopeGrid = null;
- DoubleBasicGrid aspectGrid = null;
- if (!slopeRasterName.equals("")
- || !hillshadeRasterName.equals("")) {
- // Calcualte slope: used also for hillshade
- SlopeAlgo slopeAlgo = SlopeAlgo.HORN;
- SlopeUnits slopeUnits = SlopeUnits.PERCENT;
- if (!slopeAlgoHorn) {
- slopeAlgo = SlopeAlgo.LOCAL;
+ for (int r = 0; r < slopeGrid.getRowCount(); r++) {
+ for (int c = 0; c < slopeGrid.getColumnCount(); c++) {
+ if (slopeGrid.isNoData(slopeGrid.getValue(c, r))) {
+ continue;
}
- if (!slopeUnitsPercent) {
- slopeUnits = SlopeUnits.DEGREES;
- }
- final SlopeCalculator sc = new SlopeCalculator(demGrid,
- bluelines, 100d, slopeAlgo, slopeUnits);
- slopeGrid = sc.calculate();
- RasterUtils.saveOutputRasterAsTiff(slopeGrid, new File(
- slopeRasterName));
+ final double slopeDegs = Math.toDegrees(Math
+ .atan(slopeGrid.getValue(c, r) / 100));
+ slopeGrid.setValue(c, r, slopeDegs);
}
+ }
- if (!aspectRasterName.equals("")
- || !hillshadeRasterName.equals("")) {
- // Aspect
- final AspectCalculator ac = new AspectCalculator(
- demGrid, bluelines, 100d);
- aspectGrid = ac.calculate();
- RasterUtils.saveOutputRasterAsTiff(aspectGrid,
- new File(aspectRasterName));
- }
+ }
- if (!hillshadeRasterName.equals("") && slopeGrid != null
- && aspectGrid != null) {
- // Hillshade
- final double zenithDegs = Double.parseDouble(zenith);
- final double azimuthDegs = Double.parseDouble(azimuth);
+ final HillshadeCalculator hc = new HillshadeCalculator(slopeGrid,
+ aspectGrid, zenithDegs, azimuthDegs);
+ final DoubleBasicGrid hillshadeGrid = hc.calculate();
+ RasterUtils.saveOutputRasterAsTiff(hillshadeGrid, new File(
+ hillshadeRasterName));
+ }
- if (slopeUnitsPercent) {
+ // Display raster on OJ from file
+ if (!slopeRasterName.equals("")) {
+ RasterUtils.displayRasterFileOnOJ(context.getWorkbenchContext(),
+ new File(slopeRasterName), null);
+ }
+ if (!aspectRasterName.equals("")) {
+ RasterUtils.displayRasterFileOnOJ(context.getWorkbenchContext(),
+ new File(aspectRasterName), null);
+ }
+ if (!hillshadeRasterName.equals("")) {
+ RasterUtils.displayRasterFileOnOJ(context.getWorkbenchContext(),
+ new File(hillshadeRasterName), null);
+ }
- for (int r = 0; r < slopeGrid.getRowCount(); r++) {
- for (int c = 0; c <
slopeGrid.getColumnCount(); c++) {
- if (slopeGrid.isNoData(slopeGrid.getValue(
- c, r))) {
- continue;
- }
- final double slopeDegs = Math
- .toDegrees(Math.atan(slopeGrid
- .getValue(c, r) / 100));
- slopeGrid.setValue(c, r, slopeDegs);
- }
- }
+ JOptionPane.showMessageDialog(super.getInitialDialog(), PluginUtils
+ .getResources().getString("SetWorkspacePlugin.Done.message"),
+ PluginUtils.plugInName, JOptionPane.INFORMATION_MESSAGE);
- }
+ }
- final HillshadeCalculator hc = new HillshadeCalculator(
- slopeGrid, aspectGrid, zenithDegs,
azimuthDegs);
- final DoubleBasicGrid hillshadeGrid = hc.calculate();
- RasterUtils.saveOutputRasterAsTiff(hillshadeGrid,
- new File(hillshadeRasterName));
- }
+ @Override
+ public JPanel buildPluginPanel(final ComponentsTreeMap
componentsWithActions) {
+ if (mainPanel != null) {
+ return mainPanel;
+ }
+ mainPanel = new MainPanel(super.getInitialDialog(),
+ componentsWithActions, false, false, true, PluginUtils
+ .getResources().getString(
+ "MainPanel.ExecuteButton.text"),
layerablesList) {
- // Display raster on OJ from file
- if (!slopeRasterName.equals("")) {
- RasterUtils.displayRasterFileOnOJ(context
- .getWorkbenchContext(), new File(
- slopeRasterName), null);
- }
- if (!aspectRasterName.equals("")) {
- RasterUtils.displayRasterFileOnOJ(context
- .getWorkbenchContext(), new File(
- aspectRasterName), null);
- }
- if (!hillshadeRasterName.equals("")) {
- RasterUtils.displayRasterFileOnOJ(context
- .getWorkbenchContext(), new File(
- hillshadeRasterName), null);
- }
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
- JOptionPane.showMessageDialog(
- super.getInitialDialog(),
- PluginUtils.getResources().getString(
- "SetWorkspacePlugin.Done.message"),
- PluginUtils.plugInName,
- JOptionPane.INFORMATION_MESSAGE);
+ @Override
+ public void rightButton() {
+ try {
- } catch (final WarningException ex) {
- JOptionPane.showMessageDialog(super.getInitialDialog(),
- ex.getMessage(), PluginUtils.plugInName,
- JOptionPane.WARNING_MESSAGE);
+ 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 {
+
SlopeAspectHillshadeCommand(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(),
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel