Revision: 6350 http://sourceforge.net/p/jump-pilot/code/6350 Author: ma15569 Date: 2020-07-15 10:35:18 +0000 (Wed, 15 Jul 2020) Log Message: ----------- Added some warnings in case no layer is selected or more than one layer is selected
Modified Paths: -------------- core/trunk/src/org/openjump/core/ui/plugin/edittoolbox/cursortools/AutoCompletePolygonCursorTool.java Modified: core/trunk/src/org/openjump/core/ui/plugin/edittoolbox/cursortools/AutoCompletePolygonCursorTool.java =================================================================== --- core/trunk/src/org/openjump/core/ui/plugin/edittoolbox/cursortools/AutoCompletePolygonCursorTool.java 2020-07-09 12:30:00 UTC (rev 6349) +++ core/trunk/src/org/openjump/core/ui/plugin/edittoolbox/cursortools/AutoCompletePolygonCursorTool.java 2020-07-15 10:35:18 UTC (rev 6350) @@ -20,6 +20,7 @@ */ import java.awt.BasicStroke; import java.awt.Color; +import java.util.Collection; import javax.swing.Icon; import javax.swing.ImageIcon; @@ -81,42 +82,60 @@ true); } - protected void gestureFinished() throws Exception { - reportNothingToUndoYet(); - context = getWorkbench().getContext(); - if (!checkPolygon()) { - return; - } + @Override + protected void gestureFinished() throws Exception { + reportNothingToUndoYet(); + context = getWorkbench().getContext(); + if (!checkPolygon()) { + return; + } + Collection<Layer> layers = getPanel().getLayerManager().getEditableLayers(); + if(layers.size()==0 || layers.size()>1) { + getPanel() + .getContext() + .warnUser( - Layer lay = org.openjump.core.apitools.LayerTools.getSelectedLayer(context.createPlugInContext()); + I18N.get("com.vividsolutions.jump.workbench.plugin.Exactly-one-layer-must-be-selected")); - Feature[] featuresInFence = de.fho.jump.pirol.utilities.plugIns.StandardPirolPlugIn.getFeaturesInFenceOrInLayer(context.createPlugInContext(), lay); - - Polygon poly = this.getPolygon(); + return; + } + Layer lay = org.openjump.core.apitools.LayerTools.getSelectedLayer(context.createPlugInContext()); + if (!lay.isEditable()) { + getPanel() + .getContext() + .warnUser( - Geometry newGeo = poly.getGeometryN(0); + I18N.get("com.vividsolutions.jump.workbench.plugin.Selected-items-layers-must-be-editable")); - Geometry diffGeo = newGeo; + return; - try { - for (int i = 0; i < featuresInFence.length; i++) { - diffGeo = diffGeo.difference(featuresInFence[i].getGeometry()); - } - if (diffGeo instanceof Polygon){ - featureDrawingUtil.drawRing( - (Polygon)diffGeo, - isRollingBackInvalidEdits(), - this, - getPanel()); - } - //System.out.println("Polygon added"); - - } catch (Exception e) { - //System.out.println("Unknown Exception" + e); - getPanel().getContext().warnUser(sCanNotAdd + " " + e); - } - } + } + Feature[] featuresInFence = de.fho.jump.pirol.utilities.plugIns.StandardPirolPlugIn.getFeaturesInFenceOrInLayer(context.createPlugInContext(), lay); + Polygon poly = this.getPolygon(); + + Geometry newGeo = poly.getGeometryN(0); + + Geometry diffGeo = newGeo; + + try { + for (int i = 0; i < featuresInFence.length; i++) { + diffGeo = diffGeo.difference(featuresInFence[i].getGeometry()); + } + if (diffGeo instanceof Polygon){ + featureDrawingUtil.drawRing( + (Polygon)diffGeo, + isRollingBackInvalidEdits(), + this, + getPanel()); + } + //System.out.println("Polygon added"); + + } catch (Exception e) { + //System.out.println("Unknown Exception" + e); + getPanel().getContext().warnUser(sCanNotAdd + " " + e); + } + } public Icon getIcon() { return new ImageIcon(getClass().getResource("AutoCompletePoly.gif")); } _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel