Revision: 4576 http://sourceforge.net/p/jump-pilot/code/4576 Author: michaudm Date: 2015-12-06 22:19:05 +0000 (Sun, 06 Dec 2015) Log Message: ----------- New improvements for CutFeatureTool
Modified Paths: -------------- core/trunk/src/org/openjump/core/ui/plugin/edittoolbox/cursortools/CutFeaturesTool.java Modified: core/trunk/src/org/openjump/core/ui/plugin/edittoolbox/cursortools/CutFeaturesTool.java =================================================================== --- core/trunk/src/org/openjump/core/ui/plugin/edittoolbox/cursortools/CutFeaturesTool.java 2015-12-06 16:12:35 UTC (rev 4575) +++ core/trunk/src/org/openjump/core/ui/plugin/edittoolbox/cursortools/CutFeaturesTool.java 2015-12-06 22:19:05 UTC (rev 4576) @@ -2,12 +2,10 @@ import com.vividsolutions.jts.geom.*; import com.vividsolutions.jts.geom.util.LinearComponentExtracter; -import com.vividsolutions.jts.operation.linemerge.LineMerger; import com.vividsolutions.jts.operation.polygonize.Polygonizer; import com.vividsolutions.jts.operation.union.UnaryUnionOp; import com.vividsolutions.jts.operation.valid.IsValidOp; import com.vividsolutions.jump.I18N; -import com.vividsolutions.jump.feature.BasicFeature; import com.vividsolutions.jump.feature.Feature; import com.vividsolutions.jump.feature.FeatureUtil; import com.vividsolutions.jump.workbench.WorkbenchContext; @@ -15,7 +13,7 @@ import com.vividsolutions.jump.workbench.plugin.EnableCheckFactory; import com.vividsolutions.jump.workbench.plugin.PlugInContext; import com.vividsolutions.jump.workbench.ui.EditTransaction; -import com.vividsolutions.jump.workbench.ui.LayerNamePanel; +import com.vividsolutions.jump.workbench.ui.SelectionManager; import com.vividsolutions.jump.workbench.ui.cursortool.CoordinateListMetrics; import com.vividsolutions.jump.workbench.ui.cursortool.MultiClickTool; import com.vividsolutions.jump.workbench.ui.images.IconLoader; @@ -86,30 +84,26 @@ throws Exception { WorkbenchContext context = getWorkbench().getContext(); reportNothingToUndoYet(); - LayerNamePanel layernamepanel = context.getLayerNamePanel(); - Layer[] selectedLayers = layernamepanel.getSelectedLayers(); + SelectionManager selectionManager = context.getLayerViewPanel().getSelectionManager(); - if (selectedLayers.length == 0) { - JOptionPane.showMessageDialog(null, - I18N.getMessage("com.vividsolutions.jump.workbench.plugin.At-least-one-layer-must-be-selected", - new Object[]{Integer.valueOf(1)}), I18N.get("org.openjump.core.ui.plugin.edittoolbox.Information"), - 1); + for (Layer activeLayer : selectionManager.getLayersWithSelectedItems()) { + if (!activeLayer.isEditable()) { + JOptionPane.showMessageDialog(null, + I18N.getMessage("plugin.EnableCheckFactory.selected-items-layers-must-be-editable", + new Object[]{Integer.valueOf(1)}), I18N.get("org.openjump.core.ui.plugin.edittoolbox.Information"), + 1); + return; + } + } - } else if (selectedLayers.length > 1) { - JOptionPane.showMessageDialog(null, - I18N.getMessage("com.vividsolutions.jump.workbench.plugin.Exactly-one-layer-must-have-selected-items", - new Object[]{Integer.valueOf(1)}), I18N.get("org.openjump.core.ui.plugin.edittoolbox.Information"), - 1); - } else { - Layer activeLayer = selectedLayers[0]; + for (Layer activeLayer : selectionManager.getLayersWithSelectedItems()) { if (activeLayer.isEditable()) { Collection selectedFeatures = context.getLayerViewPanel() .getSelectionManager().getFeaturesWithSelectedItems(activeLayer); EditTransaction edtr = new EditTransaction(new ArrayList(), "cut polygon", activeLayer, true, true, context.getLayerViewPanel()); for (Iterator k = selectedFeatures.iterator(); k.hasNext(); ) { Feature featureSelected = (Feature) k.next(); - edtr.deleteFeature(featureSelected); this.geomSelected = featureSelected.getGeometry(); this.geomDraw = getLineString(); if ((this.geomSelected.isEmpty())) { @@ -128,8 +122,6 @@ featureIntersect.setGeometry(geom); edtr.createFeature(featureIntersect); } - // selectionManager.getFeatureSelection().selectItems(editableLayer, featureIntersect); - // selectionManager.getFeatureSelection().selectItems(editableLayer, featureIntersect1); } else if (this.geomSelected instanceof LineString || this.geomSelected instanceof MultiLineString) { edtr.deleteFeature(featureSelected); List<Geometry> div = splitLines(this.geomDraw, this.geomSelected); @@ -139,19 +131,19 @@ featureIntersect.setGeometry(geom); edtr.createFeature(featureIntersect); } - // selectionManager.getFeatureSelection().selectItems(editableLayer, featureIntersect); - // selectionManager.getFeatureSelection().selectItems(editableLayer, featureIntersect1); } else { return; } } else { - JOptionPane.showMessageDialog(null, I18N.get("ui.SchemaPanel.layer-must-be-editable"), I18N.get("org.openjump.core.ui.plugin.edittoolbox.Information"), JOptionPane.INFORMATION_MESSAGE); + // Points or GeometryCollections } } + context.getLayerViewPanel().getSelectionManager().unselectItems(activeLayer); edtr.commit(); edtr.clearEnvelopeCaches(); } } + //} } protected boolean isRollingBackInvalidEdits(WorkbenchContext context) { ------------------------------------------------------------------------------ Go from Idea to Many App Stores Faster with Intel(R) XDK Give your users amazing mobile app experiences with Intel(R) XDK. Use one codebase in this all-in-one HTML5 development environment. Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs. http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140 _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel