Revision: 5162 http://sourceforge.net/p/jump-pilot/code/5162 Author: michaudm Date: 2016-11-06 10:55:04 +0000 (Sun, 06 Nov 2016) Log Message: ----------- Upgrade selection api to java 7 (generics, unboxing)
Modified Paths: -------------- core/trunk/src/com/vividsolutions/jump/workbench/ui/AbstractSelection.java core/trunk/src/com/vividsolutions/jump/workbench/ui/FeatureSelection.java core/trunk/src/com/vividsolutions/jump/workbench/ui/LineStringSelection.java core/trunk/src/com/vividsolutions/jump/workbench/ui/PartSelection.java core/trunk/src/com/vividsolutions/jump/workbench/ui/SelectionManager.java Modified: core/trunk/src/com/vividsolutions/jump/workbench/ui/AbstractSelection.java =================================================================== --- core/trunk/src/com/vividsolutions/jump/workbench/ui/AbstractSelection.java 2016-11-06 10:16:42 UTC (rev 5161) +++ core/trunk/src/com/vividsolutions/jump/workbench/ui/AbstractSelection.java 2016-11-06 10:55:04 UTC (rev 5162) @@ -36,7 +36,6 @@ import java.util.Collection; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedHashSet; @@ -46,7 +45,6 @@ import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jump.feature.Feature; -import com.vividsolutions.jump.util.CollectionMap; import com.vividsolutions.jump.workbench.model.Layer; /** @@ -56,8 +54,7 @@ // lists with size 1 only) public abstract class AbstractSelection { - private Map<Layer,Map<Feature,Set<Integer>>> layerMap = - new HashMap<Layer,Map<Feature,Set<Integer>>>(); + private Map<Layer,Map<Feature,Set<Integer>>> layerMap = new HashMap<>(); public abstract String getRendererContentID(); @@ -84,9 +81,9 @@ */ public List<Geometry> items(Geometry geometry, Collection<Integer> indices) { List<Geometry> allItems = items(geometry); - List<Geometry> items = new ArrayList<Geometry>(1); + List<Geometry> items = new ArrayList<>(1); for (Integer index : indices) { - items.add(allItems.get(index.intValue())); + items.add(allItems.get(index)); } return items; } @@ -108,26 +105,25 @@ */ public Set<Integer> getSelectedItemIndices(Layer layer, Feature feature) { Set<Integer> indices = getFeatureToSelectedItemIndexCollectionMap(layer).get(feature); - return indices == null ? Collections.EMPTY_SET : indices; + return indices == null ? Collections.<Integer>emptySet() : indices; } /** * Returns a mapping of each feature to selected items in this feature. */ public Map<Feature,List<Geometry>> getFeatureToSelectedItemCollectionMap(Layer layer) { - Map<Feature,List<Geometry>> collectionMap = new LinkedHashMap<Feature,List<Geometry>>(); + Map<Feature,List<Geometry>> collectionMap = new LinkedHashMap<>(); for (Feature feature : getFeatureToSelectedItemIndexCollectionMap(layer).keySet()) { Set<Integer> set = getSelectedItemIndices(layer, feature); - if (set == null) { - //set = Collections.EMPTY_SET; + if (set != null) { + collectionMap.put(feature, items(feature.getGeometry(), set)); } - else collectionMap.put(feature, items(feature.getGeometry(), set)); } return collectionMap; } public Collection<Layer> getLayersWithSelectedItems() { - List<Layer> layersWithSelectedItems = new ArrayList<Layer>(); + List<Layer> layersWithSelectedItems = new ArrayList<>(); for (Layer layer : layerMap.keySet()) { if (!getFeaturesWithSelectedItems(layer).isEmpty()) { layersWithSelectedItems.add(layer); @@ -137,7 +133,7 @@ } public Collection<Feature> getFeaturesWithSelectedItems() { - List<Feature> featuresWithSelectedItems = new ArrayList<Feature>(); + List<Feature> featuresWithSelectedItems = new ArrayList<>(); for (Layer layer : layerMap.keySet()) { featuresWithSelectedItems.addAll(getFeaturesWithSelectedItems(layer)); } @@ -145,7 +141,7 @@ } public Collection<Feature> getFeaturesWithSelectedItems(Layer layer) { - List<Feature> featuresWithSelectedItems = new ArrayList<Feature>(); + List<Feature> featuresWithSelectedItems = new ArrayList<>(); for (Feature feature : getFeatureToSelectedItemIndexCollectionMap(layer).keySet()) { if (!getFeatureToSelectedItemIndexCollectionMap(layer).get(feature).isEmpty()) { featuresWithSelectedItems.add(feature); @@ -155,7 +151,7 @@ } public Collection<Geometry> getSelectedItems() { - ArrayList selectedItems = new ArrayList(1); + ArrayList<Geometry> selectedItems = new ArrayList<>(1); for (Layer layer : layerMap.keySet()) { selectedItems.addAll(getSelectedItems(layer)); } @@ -163,7 +159,7 @@ } public Collection<Geometry> getSelectedItems(Layer layer) { - List<Geometry> selectedItems = new ArrayList<Geometry>(1); + List<Geometry> selectedItems = new ArrayList<>(1); for (Feature feature : getFeatureToSelectedItemIndexCollectionMap(layer).keySet()) { selectedItems.addAll(getSelectedItems(layer, feature)); } @@ -181,7 +177,7 @@ */ public Collection<Geometry> getSelectedItems(Layer layer, Feature feature, Geometry geometry) { Set<Integer> indices = getFeatureToSelectedItemIndexCollectionMap(layer).get(feature); - if (indices == null) indices = Collections.EMPTY_SET; + if (indices == null) indices = Collections.emptySet(); return items(geometry, indices); } @@ -190,9 +186,9 @@ */ public Set<Integer> indices(Geometry geometry, Collection<Geometry> items) { List<Geometry> allItems = items(geometry); - Set<Integer> indices = new LinkedHashSet<Integer>(1); + Set<Integer> indices = new LinkedHashSet<>(1); for (Geometry item : items) { - indices.add(new Integer(allItems.indexOf(item))); + indices.add(allItems.indexOf(item)); } return indices; } @@ -225,7 +221,7 @@ updatePanel(); } - public void selectItems(Layer layer, Feature feature, Collection items) { + public void selectItems(Layer layer, Feature feature, Collection<Geometry> items) { Collection<Geometry> itemsToSelect = itemsNotSelectedInAncestors(layer, feature, items); boolean originalPanelUpdatesEnabled = selectionManager.arePanelUpdatesEnabled(); selectionManager.setPanelUpdatesEnabled(false); @@ -246,7 +242,7 @@ updatePanel(); } - public void unselectItems(Layer layer, Feature feature, Collection items) { + public void unselectItems(Layer layer, Feature feature, Collection<Geometry> items) { boolean originalPanelUpdatesEnabled = selectionManager.arePanelUpdatesEnabled(); selectionManager.setPanelUpdatesEnabled(false); try { @@ -265,11 +261,10 @@ updatePanel(); } - public Collection itemsNotSelectedInAncestors(Layer layer, Feature feature, Collection items) { - ArrayList itemsNotSelectedInAncestors = new ArrayList(1); + public Collection<Geometry> itemsNotSelectedInAncestors(Layer layer, Feature feature, Collection<Geometry> items) { + ArrayList<Geometry> itemsNotSelectedInAncestors = new ArrayList<>(1); if (layer.isSelectable()) { - for (Object object : items) { - Geometry item = (Geometry) object; + for (Geometry item : items) { if (!selectedInAncestors(layer, feature, item)) { itemsNotSelectedInAncestors.add(item); } @@ -280,7 +275,7 @@ protected abstract boolean selectedInAncestors(Layer layer, Feature feature, Geometry item); - protected abstract void unselectInDescendants(Layer layer, Feature feature, Collection items); + protected abstract void unselectInDescendants(Layer layer, Feature feature, Collection<Geometry> items); public void selectItems(Layer layer, Feature feature) { selectItems(layer, feature, items(feature.getGeometry())); @@ -302,13 +297,12 @@ public void unselectFromFeaturesWithModifiedItemCounts( Layer layer, - Collection features, - Collection oldFeatureClones) { - List featuresToUnselect = new ArrayList(1); + Collection<Feature> features, + Collection<Feature> oldFeatureClones) { + List<Feature> featuresToUnselect = new ArrayList<>(1); Iterator j = oldFeatureClones.iterator(); j.hasNext(); - for (Object object : features) { - Feature feature = (Feature) object; + for (Feature feature : features) { Feature oldFeatureClone = (Feature) j.next(); if (items(feature.getGeometry()).size() != items(oldFeatureClone.getGeometry()).size()) { @@ -350,7 +344,7 @@ public void unselectItem(Layer layer, Feature feature, int selectedItemIndex) { Set<Integer> indices = getFeatureToSelectedItemIndexCollectionMap(layer).get(feature); if (indices != null) { - indices.remove(new Integer(selectedItemIndex)); + indices.remove(selectedItemIndex); if (indices.isEmpty()) { getFeatureToSelectedItemIndexCollectionMap(layer).remove(feature); } Modified: core/trunk/src/com/vividsolutions/jump/workbench/ui/FeatureSelection.java =================================================================== --- core/trunk/src/com/vividsolutions/jump/workbench/ui/FeatureSelection.java 2016-11-06 10:16:42 UTC (rev 5161) +++ core/trunk/src/com/vividsolutions/jump/workbench/ui/FeatureSelection.java 2016-11-06 10:55:04 UTC (rev 5162) @@ -36,6 +36,7 @@ import com.vividsolutions.jump.feature.Feature; import com.vividsolutions.jump.workbench.model.Layer; import com.vividsolutions.jump.workbench.ui.renderer.FeatureSelectionRenderer; + /** * A collection of selected {@link Feature Features} */ @@ -45,7 +46,7 @@ * Returns a list containing the geometry itself. */ public List<Geometry> items(Geometry geometry) { - List<Geometry> items = new ArrayList<Geometry>(1); + List<Geometry> items = new ArrayList<>(1); items.add(geometry); return items; } @@ -63,7 +64,7 @@ //[michael.mich...@free.fr]. //[Jon Aquino 2004-04-27] Assert.isTrue(items.size() == 1 || items.isEmpty()); - return items.isEmpty() ? Collections.EMPTY_SET : Collections.singleton(0); + return items.isEmpty() ? Collections.<Integer>emptySet() : Collections.singleton(0); } public String getRendererContentID() { @@ -76,7 +77,7 @@ } protected void unselectInDescendants(Layer layer, Feature feature, - Collection items) { + Collection<Geometry> items) { Assert.isTrue(getChild() instanceof PartSelection); Assert.isTrue(getChild().getChild() instanceof LineStringSelection); getChild().unselectItems(layer, feature); Modified: core/trunk/src/com/vividsolutions/jump/workbench/ui/LineStringSelection.java =================================================================== --- core/trunk/src/com/vividsolutions/jump/workbench/ui/LineStringSelection.java 2016-11-06 10:16:42 UTC (rev 5161) +++ core/trunk/src/com/vividsolutions/jump/workbench/ui/LineStringSelection.java 2016-11-06 10:55:04 UTC (rev 5162) @@ -34,7 +34,6 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Iterator; import java.util.List; import com.vividsolutions.jts.geom.Geometry; @@ -56,7 +55,7 @@ * Returns a list of LineString items contained in this geometry. */ public List<Geometry> items(Geometry geometry) { - List<Geometry> items = new ArrayList<Geometry>(1); + List<Geometry> items = new ArrayList<>(1); if (geometry instanceof LineString) { items.add(geometry); @@ -92,14 +91,13 @@ Assert.isTrue(getParent().getParent() instanceof FeatureSelection); Assert.isTrue(getParent() instanceof PartSelection); if (getParent().getParent().getFeaturesWithSelectedItems().contains(feature)) { return true; } - for (Iterator i = getParent().getSelectedItems(layer, feature).iterator(); i.hasNext(); ) { - Geometry selectedPart = (Geometry) i.next(); + for (Geometry selectedPart : getParent().getSelectedItems(layer, feature)) { if (items(selectedPart).contains(item)) { return true; } } return false; } - protected void unselectInDescendants(Layer layer, Feature feature, Collection items) { + protected void unselectInDescendants(Layer layer, Feature feature, Collection<Geometry> items) { Assert.isTrue(getChild() == null); } Modified: core/trunk/src/com/vividsolutions/jump/workbench/ui/PartSelection.java =================================================================== --- core/trunk/src/com/vividsolutions/jump/workbench/ui/PartSelection.java 2016-11-06 10:16:42 UTC (rev 5161) +++ core/trunk/src/com/vividsolutions/jump/workbench/ui/PartSelection.java 2016-11-06 10:55:04 UTC (rev 5162) @@ -34,11 +34,9 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Iterator; import java.util.List; import com.vividsolutions.jts.geom.Geometry; -import com.vividsolutions.jts.geom.GeometryCollection; import com.vividsolutions.jts.geom.LineString; import com.vividsolutions.jts.util.Assert; import com.vividsolutions.jump.feature.Feature; @@ -57,7 +55,7 @@ */ public List<Geometry> items(Geometry geometry) { int partNumber = geometry.getNumGeometries(); - List<Geometry> items = new ArrayList<Geometry>(partNumber); + List<Geometry> items = new ArrayList<>(partNumber); if (partNumber > 1) { for (int i = 0; i < partNumber; i++) { items.addAll(items(geometry.getGeometryN(i))); @@ -83,15 +81,12 @@ return getParent().getFeaturesWithSelectedItems().contains(feature); } - protected void unselectInDescendants(Layer layer, Feature feature, Collection items) { + protected void unselectInDescendants(Layer layer, Feature feature, Collection<Geometry> items) { Assert.isTrue(getChild() instanceof LineStringSelection); - for (Iterator i = items.iterator(); i.hasNext();) { - Geometry part = (Geometry) i.next(); + for (Geometry part : items) { List partLineStrings = getChild().items(part); - for (Iterator j = getChild().getSelectedItems(layer, feature).iterator(); - j.hasNext(); - ) { - LineString selectedLineString = (LineString) j.next(); + for (Geometry selectedItem : getChild().getSelectedItems(layer, feature)) { + LineString selectedLineString = (LineString) selectedItem; if (partLineStrings.contains(selectedLineString)) { getChild().unselectItem( layer, Modified: core/trunk/src/com/vividsolutions/jump/workbench/ui/SelectionManager.java =================================================================== --- core/trunk/src/com/vividsolutions/jump/workbench/ui/SelectionManager.java 2016-11-06 10:16:42 UTC (rev 5161) +++ core/trunk/src/com/vividsolutions/jump/workbench/ui/SelectionManager.java 2016-11-06 10:55:04 UTC (rev 5162) @@ -50,7 +50,6 @@ import java.util.Collection; import java.util.Collections; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Set; @@ -85,22 +84,20 @@ * A feature may get split into two or more -- for example, if two * linestrings of a feature are selected. */ - public Collection createFeaturesFromSelectedItems() { - List newFeatures = new ArrayList(); + public Collection<Feature> createFeaturesFromSelectedItems() { + List<Feature> newFeatures = new ArrayList<>(); for (Layer layer : getLayersWithSelectedItems()) { newFeatures.addAll(createFeaturesFromSelectedItems(layer)); } return newFeatures; } - public Collection createFeaturesFromSelectedItems(Layer layer) { - ArrayList newFeatures = new ArrayList(); - for (Iterator i = getFeaturesWithSelectedItems(layer).iterator(); i.hasNext();) { - Feature feature = (Feature) i.next(); - for (Iterator j = getSelectedItems(layer, feature).iterator(); j.hasNext();) { - Geometry item = (Geometry) j.next(); + public Collection<Feature> createFeaturesFromSelectedItems(Layer layer) { + ArrayList<Feature> newFeatures = new ArrayList<>(); + for (Feature feature : getFeaturesWithSelectedItems(layer)) { + for (Geometry item : getSelectedItems(layer, feature)) { // Geometry is changed just after, no need to clone it - Feature newFeature = (Feature) feature.clone(false); + Feature newFeature = feature.clone(false); newFeature.setGeometry(item); newFeatures.add(newFeature); } @@ -123,8 +120,7 @@ lineStringSelection.setParent(partSelection); lineStringSelection.setChild(null); selections = Collections.unmodifiableList(Arrays.asList( - new AbstractSelection[] {featureSelection, partSelection, lineStringSelection} - )); + featureSelection, partSelection,lineStringSelection)); addLayerListenerTo(layerManagerProxy.getLayerManager()); } @@ -202,8 +198,8 @@ * of a Geometry (an element of a GeometryCollection or a ring of a Polygon). * @return a collection of Geometries */ - public Collection getSelectedItems() { - ArrayList selectedItems = new ArrayList(); + public Collection<Geometry> getSelectedItems() { + ArrayList<Geometry> selectedItems = new ArrayList<>(); for (AbstractSelection selection : selections) { selectedItems.addAll(selection.getSelectedItems()); } @@ -214,16 +210,16 @@ return selectedItems; } - public Collection getSelectedItems(Layer layer) { - List selectedItems = new ArrayList(); + public Collection<Geometry> getSelectedItems(Layer layer) { + List<Geometry> selectedItems = new ArrayList<>(); for (AbstractSelection selection : selections) { selectedItems.addAll(selection.getSelectedItems(layer)); } return selectedItems; } - public Collection getSelectedItems(Layer layer, Feature feature) { - List selectedItems = new ArrayList(); + public Collection<Geometry> getSelectedItems(Layer layer, Feature feature) { + List<Geometry> selectedItems = new ArrayList<>(); for (AbstractSelection selection : selections) { selectedItems.addAll(selection.getSelectedItems(layer, feature)); } @@ -235,8 +231,8 @@ * similar enough Geometry from which Geometries can be retrieved using * the selection indices */ - public Collection getSelectedItems(Layer layer, Feature feature, Geometry geometry) { - ArrayList selectedItems = new ArrayList(); + public Collection<Geometry> getSelectedItems(Layer layer, Feature feature, Geometry geometry) { + ArrayList<Geometry> selectedItems = new ArrayList<>(); for (AbstractSelection selection : selections) { selectedItems.addAll(selection.getSelectedItems(layer, feature, geometry)); } @@ -244,7 +240,7 @@ } public Collection<Layer> getLayersWithSelectedItems() { - Set<Layer> layersWithSelectedItems = new HashSet<Layer>(); + Set<Layer> layersWithSelectedItems = new HashSet<>(); for (AbstractSelection selection : selections) { layersWithSelectedItems.addAll(selection.getLayersWithSelectedItems()); } @@ -309,8 +305,8 @@ public void unselectFromFeaturesWithModifiedItemCounts( Layer layer, - Collection features, - Collection oldFeatureClones) { + Collection<Feature> features, + Collection<Feature> oldFeatureClones) { boolean originalPanelUpdatesEnabled = arePanelUpdatesEnabled(); setPanelUpdatesEnabled(false); try { ------------------------------------------------------------------------------ Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today. http://sdm.link/xeonphi _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel