Revision: 5108 http://sourceforge.net/p/jump-pilot/code/5108 Author: michaudm Date: 2016-10-26 19:26:49 +0000 (Wed, 26 Oct 2016) Log Message: ----------- Generify LayerManager
Modified Paths: -------------- core/trunk/src/com/vividsolutions/jump/workbench/model/LayerManager.java core/trunk/src/com/vividsolutions/jump/workbench/ui/style/AbstractPalettePanel.java Modified: core/trunk/src/com/vividsolutions/jump/workbench/model/LayerManager.java =================================================================== --- core/trunk/src/com/vividsolutions/jump/workbench/model/LayerManager.java 2016-10-26 07:23:08 UTC (rev 5107) +++ core/trunk/src/com/vividsolutions/jump/workbench/model/LayerManager.java 2016-10-26 19:26:49 UTC (rev 5108) @@ -74,16 +74,16 @@ // ConcurrentModificationExceptions can occur. [Jon Aquino] // Go with List rather than name-to-category map, because category names can // now change. [Jon Aquino] - private ArrayList categories = new ArrayList(); + private ArrayList<Category> categories = new ArrayList<>(); // Store weak references to layers rather than the layers themselves -- if a // layer // is lucky enough to have all its strong references released, let it // dispose of // itself immediately [Jon Aquino] - private ArrayList layerReferencesToDispose = new ArrayList(); + private ArrayList<WeakReference> layerReferencesToDispose = new ArrayList<>(); private boolean firingEvents = true; - private ArrayList layerListeners = new ArrayList(); + private ArrayList<LayerListener> layerListeners = new ArrayList<>(); private Iterator firstColors; private Blackboard blackboard = new Blackboard(); @@ -114,12 +114,10 @@ } } - private Collection firstColors() { - ArrayList firstColors = new ArrayList(); + private Collection<Color> firstColors() { + ArrayList<Color> firstColors = new ArrayList<>(); - for (Iterator i = AbstractPalettePanel.basicStyles().iterator(); i - .hasNext();) { - BasicStyle basicStyle = (BasicStyle) i.next(); + for (BasicStyle basicStyle : AbstractPalettePanel.basicStyles()) { if (!basicStyle.isRenderingFill()) { continue; @@ -150,16 +148,16 @@ } public void addLayerable(String categoryName, Layerable layerable) { + if (layerable instanceof Layer) { - if (size() == 0 - && getCoordinateSystem() == CoordinateSystem.UNSPECIFIED) { + if (size() == 0 && getCoordinateSystem() == CoordinateSystem.UNSPECIFIED) { setCoordinateSystem(((Layer) layerable) .getFeatureCollectionWrapper().getFeatureSchema() .getCoordinateSystem()); } else { reproject((Layer) layerable, coordinateSystem); } - layerReferencesToDispose.add(new WeakReference(layerable)); + layerReferencesToDispose.add(new WeakReference<>(layerable)); } addCategory(categoryName); @@ -198,8 +196,7 @@ } } finally { // Even if #isReprojectionNecessary returned false, we still need to - // set - // the CoordinateSystem to the new value [Jon Aquino] + // set the CoordinateSystem to the new value [Jon Aquino] layer.getFeatureCollectionWrapper().getFeatureSchema() .setCoordinateSystem(coordinateSystem); } @@ -234,14 +231,11 @@ } public Category getCategory(String name) { - for (Iterator i = categories.iterator(); i.hasNext();) { - Category category = (Category) i.next(); - + for (Category category : categories) { if (category.getName().equals(name)) { return category; } } - return null; } @@ -307,9 +301,8 @@ } private boolean isExistingLayerableName(String name) { - for (Iterator i = getLayerables(Layerable.class).iterator(); i - .hasNext();) { - Layerable layerable = (Layerable) i.next(); + for (Object object : getLayerables(Layerable.class)) { + Layerable layerable = (Layerable) object; if (layerable.getName().equals(name)) { return true; @@ -325,7 +318,7 @@ * remove is only used to temporarily remove a layer from the layer (ex. * in the MoveLayerPlugIn). * - * @param layerable + * @param layerable Layerable to remove */ public void remove(Layerable layerable) { remove(new Layerable[] { layerable }, false); @@ -344,15 +337,15 @@ private void remove(Layerable[] layerables, boolean dispose) { for (Layerable layerable : layerables) { // iterate over cats to find layer - for (Iterator j = categories.iterator(); j.hasNext();) { - Category c = (Category) j.next(); - int index = c.indexOf(layerable); + for (Category category : categories) { + int index = category.indexOf(layerable); if (index != -1) { - c.remove(layerable); - if (dispose && layerable instanceof Disposable) + category.remove(layerable); + if (dispose && layerable instanceof Disposable) { ((Disposable) layerable).dispose(); - fireLayerChanged(layerable, LayerEventType.REMOVED, c, + } + fireLayerChanged(layerable, LayerEventType.REMOVED, category, index); } } @@ -372,8 +365,7 @@ public void dispose() { this.setFiringEvents(false); - for (Iterator i = layerReferencesToDispose.iterator(); i.hasNext();) { - WeakReference reference = (WeakReference) i.next(); + for (WeakReference reference : layerReferencesToDispose) { Layer layer = (Layer) reference.get(); if (layer != null) { @@ -415,9 +407,8 @@ // ConcurrentModificationException // for (Iterator i = layerListeners.iterator(); i.hasNext();) { // [sstein 2.Feb.2007] new line by Larry - for (Iterator i = new ArrayList(layerListeners).iterator(); i.hasNext();) {// LDB + for (final LayerListener layerListener : new ArrayList<>(layerListeners)) {// LDB // added - final LayerListener layerListener = (LayerListener) i.next(); fireLayerEvent(new Runnable() { public void run() { layerListener.categoryChanged(new CategoryEvent(category, @@ -448,8 +439,7 @@ } // New ArrayList to avoid ConcurrentModificationException [Jon Aquino] - for (Iterator i = new ArrayList(layerListeners).iterator(); i.hasNext();) { - final LayerListener layerListener = (LayerListener) i.next(); + for (final LayerListener layerListener : new ArrayList<>(layerListeners)) { fireLayerEvent(new Runnable() { public void run() { layerListener.featuresChanged(new FeatureEvent(features, @@ -497,8 +487,7 @@ } // New ArrayList to avoid ConcurrentModificationException [Jon Aquino] - for (Iterator i = new ArrayList(layerListeners).iterator(); i.hasNext();) { - final LayerListener layerListener = (LayerListener) i.next(); + for (final LayerListener layerListener : new ArrayList<>(layerListeners)) { fireLayerEvent(new Runnable() { public void run() { layerListener.layerChanged(new LayerEvent(layerable, @@ -605,7 +594,7 @@ } public Layer getLayer(int index) { - return (Layer) getLayers().get(index); + return getLayers().get(index); } public int size() { @@ -628,50 +617,28 @@ public Envelope getEnvelopeOfAllLayers(boolean visibleLayersOnly) { Envelope envelope = new Envelope(); - /* - * for (Iterator<Layerable> i = iterator(); i.hasNext();) { Layerable - * layerable = (Layer) i.next(); - * - * if (visibleLayersOnly && !layerable.isVisible()) { continue; } - * - * if (layerable instanceof Layer) { - * - * envelope.expandToInclude(((Layer) layerable) - * .getFeatureCollectionWrapper().getEnvelope()); } - * - * } - */ - // Add Layer.class envelopes - List<Layer> layers = getVectorImageLayers(); - for (Iterator<Layer> iter = layers.iterator(); iter.hasNext();) { - Layer layer = iter.next(); + for (Layer layer : getLayers()) { if (visibleLayersOnly && !layer.isVisible()) { continue; } - envelope.expandToInclude(layer.getFeatureCollectionWrapper() - .getEnvelope()); + envelope.expandToInclude(layer.getFeatureCollectionWrapper().getEnvelope()); } // Add WMS.class envelopes - List<WMSLayer> wmslayers = getWMSLayers(); - - for (Iterator<WMSLayer> iter = wmslayers.iterator(); iter.hasNext();) { - WMSLayer wlayer = iter.next(); - if (visibleLayersOnly && !wlayer.isVisible()) { + for (WMSLayer wLayer : getWMSLayers()) { + if (visibleLayersOnly && !wLayer.isVisible()) { continue; } - envelope.expandToInclude(wlayer.getEnvelope()); + envelope.expandToInclude(wLayer.getEnvelope()); } - // Add RasterIMageLayer.class envelopes - List<RasterImageLayer> rlayers = getRasterImageLayers(); - for (Iterator<RasterImageLayer> iter = rlayers.iterator(); iter - .hasNext();) { - RasterImageLayer rlayer = iter.next(); - if (visibleLayersOnly && !rlayer.isVisible()) { + + // Add RasterImageLayer.class envelopes + for (RasterImageLayer rLayer : getRasterImageLayers()) { + if (visibleLayersOnly && !rLayer.isVisible()) { continue; } - envelope.expandToInclude(rlayer.getWholeImageEnvelope()); + envelope.expandToInclude(rLayer.getWholeImageEnvelope()); } return envelope; @@ -680,8 +647,6 @@ /** * [Giuseppe Aruta] July 8 2015 * Gets the list of WMSLayer.class registered in this manager - * - * @return */ public List<WMSLayer> getWMSLayers() { return (List<WMSLayer>) getLayerables(WMSLayer.class); @@ -690,22 +655,11 @@ /** * [Giuseppe Aruta] July 8 2015 * Gets the list of RasterImageLayer.class registered in this manager - * - * @return */ public List<RasterImageLayer> getRasterImageLayers() { return (List<RasterImageLayer>) getLayerables(RasterImageLayer.class); } - /** - * [Giuseppe Aruta] July 8 2015 - * Gets the list of Layer.class class registered in this manager - * - * @return - */ - public List<Layer> getVectorImageLayers() { - return (List<Layer>) getLayerables(Layer.class); - } /** * @return -1 if the layer does not exist @@ -715,9 +669,7 @@ } public Category getCategory(Layerable layerable) { - for (Iterator i = categories.iterator(); i.hasNext();) { - Category category = (Category) i.next(); - + for (Category category : categories) { if (category.contains(layerable)) { return category; } @@ -738,14 +690,12 @@ ArrayList layers = new ArrayList(); - // Create new ArrayLists to avoid ConcurrentModificationExceptions. [Jon - // Aquino] - for (Iterator i = new ArrayList(categories).iterator(); i.hasNext();) { - Category c = (Category) i.next(); + // Create new ArrayLists to avoid ConcurrentModificationExceptions. + // [Jon Aquino] + for (Category category : categories) { - for (Iterator j = new ArrayList(c.getLayerables()).iterator(); j - .hasNext();) { - Layerable l = (Layerable) j.next(); + for (Object object : new ArrayList(category.getLayerables())) { + Layerable l = (Layerable) object; if (!(layerableClass.isInstance(l))) { continue; @@ -758,8 +708,8 @@ return layers; } - public List getVisibleLayers(boolean includeFence) { - ArrayList visibleLayers = new ArrayList(getLayers()); + public List<Layer> getVisibleLayers(boolean includeFence) { + ArrayList<Layer> visibleLayers = new ArrayList<>(getLayers()); for (Iterator i = visibleLayers.iterator(); i.hasNext();) { Layer layer = (Layer) i.next(); @@ -824,7 +774,7 @@ */ public LinkedList<String> getTemporaryRasterImageLayers() { LinkedList<String> list = new LinkedList<String>(); - Collection<Layer> rlayers = getLayerables(RasterImageLayer.class); + Collection<Layerable> rlayers = getLayerables(RasterImageLayer.class); for (Iterator i = rlayers.iterator(); i.hasNext();) { RasterImageLayer layer = (RasterImageLayer) i.next(); @@ -859,19 +809,6 @@ // [Jon Aquino] } - public static void main(String[] args) throws ParseException { - System.out.println(Line2D.linesIntersect(708248.882609455, - 2402253.07294874, 708249.523621829, 2402244.3124463, - 708247.896591321, 2402252.48269854, 708261.854734465, - 2402182.39086576)); - System.out - .println(new WKTReader() - .read("LINESTRING(708248.882609455 2402253.07294874, 708249.523621829 2402244.3124463)") - .intersects( - new WKTReader() - .read("LINESTRING(708247.896591321 2402252.48269854, 708261.854734465 2402182.39086576)"))); - } - public CoordinateSystem getCoordinateSystem() { return coordinateSystem; } Modified: core/trunk/src/com/vividsolutions/jump/workbench/ui/style/AbstractPalettePanel.java =================================================================== --- core/trunk/src/com/vividsolutions/jump/workbench/ui/style/AbstractPalettePanel.java 2016-10-26 07:23:08 UTC (rev 5107) +++ core/trunk/src/com/vividsolutions/jump/workbench/ui/style/AbstractPalettePanel.java 2016-10-26 19:26:49 UTC (rev 5108) @@ -36,7 +36,6 @@ import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; -import java.util.Iterator; import java.util.List; import javax.swing.JPanel; @@ -48,11 +47,11 @@ public abstract class AbstractPalettePanel extends JPanel { - protected ArrayList listeners = new ArrayList(); + protected ArrayList<Listener> listeners = new ArrayList<>(); public static class BasicStyleList { - private ArrayList basicStyles = new ArrayList(); - public List getBasicStyles() { + private ArrayList<BasicStyle> basicStyles = new ArrayList<>(); + public List<BasicStyle> getBasicStyles() { return Collections.unmodifiableList(basicStyles); } public void addBasicStyle(BasicStyle basicStyle) { @@ -60,8 +59,8 @@ } } - public static interface Listener { - public void basicStyleChosen(BasicStyle basicStyle); + public interface Listener { + void basicStyleChosen(BasicStyle basicStyle); } public void add(Listener listener) { @@ -71,37 +70,25 @@ public abstract void setAlpha(int alpha); protected void fireBasicStyleChosen(BasicStyle basicStyle) { - for (Iterator i = listeners.iterator(); i.hasNext();) { - Listener listener = (Listener) i.next(); + for (Listener listener : listeners) { listener.basicStyleChosen(basicStyle); } } - public static List basicStyles() { - try { - if (basicStyleList == null) { - InputStream stream = - AbstractPalettePanel.class.getResourceAsStream( - StringUtil.classNameWithoutQualifiers( - AbstractPalettePanel.class.getName()) - + ".xml"); - try { - InputStreamReader reader = new InputStreamReader(stream); - try { - basicStyleList = - ((BasicStyleList) new XML2Java() - .read(reader, BasicStyleList.class)); - } finally { - reader.close(); - } - } finally { - stream.close(); - } + public static List<BasicStyle> basicStyles() { + if (basicStyleList == null) { + try (InputStream stream = AbstractPalettePanel.class. + getResourceAsStream(StringUtil.classNameWithoutQualifiers( + AbstractPalettePanel.class.getName()) + ".xml"); + InputStreamReader reader = new InputStreamReader(stream)){ + + basicStyleList = ((BasicStyleList) new XML2Java().read(reader, BasicStyleList.class)); + + } catch (Exception e) { + e.printStackTrace(System.err); + Assert.shouldNeverReachHere(); + return null; } - } catch (Exception e) { - e.printStackTrace(System.err); - Assert.shouldNeverReachHere(); - return null; } return basicStyleList.getBasicStyles(); } ------------------------------------------------------------------------------ The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel