From 32e465bb26e42e851a36bb5d65c25c862a4153e9 Mon Sep 17 00:00:00 2001
From: Kalle Lampila <kalle.lampila@iki.fi>
Date: Sun, 27 Nov 2011 20:20:51 +0200
Subject: [PATCH] fix #6953 - Make sure that only selectable primitives are
 select via validator

Signed-off-by: Kalle Lampila <kalle.lampila@iki.fi>
---
 .../josm/data/validation/TestError.java            |   16 ++++++++++++++++
 .../josm/gui/dialogs/ValidatorDialog.java          |    2 +-
 2 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/src/org/openstreetmap/josm/data/validation/TestError.java b/src/org/openstreetmap/josm/data/validation/TestError.java
index 1448d3e..385b902 100644
--- a/src/org/openstreetmap/josm/data/validation/TestError.java
+++ b/src/org/openstreetmap/josm/data/validation/TestError.java
@@ -8,6 +8,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.TreeSet;
+import java.util.ArrayList;
 
 import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.data.osm.Node;
@@ -121,6 +122,21 @@ public class TestError {
     }
 
     /**
+     * Gets the list of primitives affected by this error and are selectable
+     * @return the list of selectable primitives affected by this error
+     */
+    public Collection<? extends OsmPrimitive> getSelectablePrimitives() {
+	List<OsmPrimitive> selectablePrimitives = new ArrayList<OsmPrimitive>(primitives.size());
+	for (OsmPrimitive o : primitives) {
+	    if (o.isSelectable()) {
+		selectablePrimitives.add(o);
+	    }
+	}
+        return selectablePrimitives;
+    }
+
+
+    /**
      * Sets the list of primitives affected by this error
      * @param primitives the list of primitives affected by this error
      */
diff --git a/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java b/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java
index f28608b..4dffbf4 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java
@@ -328,7 +328,7 @@ public class ValidatorDialog extends ToggleDialog implements ActionListener, Sel
                 Object nodeInfo = childNode.getUserObject();
                 if (nodeInfo instanceof TestError) {
                     TestError error = (TestError) nodeInfo;
-                    sel.addAll(error.getPrimitives());
+                    sel.addAll(error.getSelectablePrimitives());
                 }
             }
         }
-- 
1.7.7.3

