
|
VerifyError: Error #1068: components.SidePanel and components.SidePanel cannot be reconciled. at components: idePanel/performSearch() |
it occurred when calling this method:
public function performSearch(query:String):void { if (query == null || gLayer == null || geoData == null) return; gLayer.clear(); resultSet.removeAll(); var words:Array = query.split(/\s/); for each (var x:GeoObject in geoData) { for each (var y:String in words) { if (x.oID.search(new RegExp(y, “i”)) > -1) { switch (x.oType) { case “Network”: { if (!resultSet.contains(x)) { resultSet.addItem(x); } //break; } case “Area”: { for each (var z:GeoObject in x.recursiveChildren) { if (!resultSet.contains(z)) { resultSet.addItem(z); } } break; } default: { if (!resultSet.contains(x)) { resultSet.addItem(x); } } } } } } for each (var x:GeoObject in resultSet) { var z:GeoObject = x.rootParent; if (!gLayer.contains(z.graphic)) { z.visibleOnLayer = true; } } if (resultSet.length == 0) { resultSet.addItem(“no results”); mainApp.showAll(); } results.list.dataProvider = resultSet; mainApp.applyExtent(null); //map.extent = poly.extent; setVisibility(); }
As ist seems the error occurs on call of the method; not during execution.
I want to execute the code of the case "Area" additionally to the case "Network". That’s why i don’t use "break" at the end of case "Network".
The weird thing in my eyes is, that everything works fine, if i copy the code from "area" to "network" und use "break" after "network".
After playing around a little i found out that the following code works:
switch (x.oType) { case “Network”: { if (!resultSet.contains(x)) { resultSet.addItem(x); } /* for each (var z:GeoObject in x.recursiveChildren) { if (!resultSet.contains(z)) { resultSet.addItem(z); } } */ break; } case “Area”: { /* for each (var z:GeoObject in x.recursiveChildren) { if (!resultSet.contains(z)) { resultSet.addItem(z); } }*/ break; } default: { if (!resultSet.contains(x)) { resultSet.addItem(x); } } }
this doesn’t:
switch (x.oType) { case “Network”: { if (!resultSet.contains(x)) { resultSet.addItem(x); } /* for each (var z:GeoObject in x.recursiveChildren) { if (!resultSet.contains(z)) { resultSet.addItem(z); } } */ //break; } case “Area”: { /* for each (var z:GeoObject in x.recursiveChildren) { if (!resultSet.contains(z)) { resultSet.addItem(z); } }*/ break; } default: { if (!resultSet.contains(x)) { resultSet.addItem(x); } } }
but this one does:
switch (x.oType) { case “Network”: { if (!resultSet.contains(x)) { resultSet.addItem(x); } for each (var z:GeoObject in x.recursiveChildren) { if (!resultSet.contains(z)) { resultSet.addItem(z); } } //break; } case “Area”: { /* for each (var z:GeoObject in x.recursiveChildren) { if (!resultSet.contains(z)) { resultSet.addItem(z); } }*/ break; } default: { if (!resultSet.contains(x)) { resultSet.addItem(x); } } }
The following works too:
switch (x.oType) { case “Network”: { if (!resultSet.contains(x)) { resultSet.addItem(x); } for each (var z:GeoObject in x.recursiveChildren) { if (!resultSet.contains(z)) { resultSet.addItem(z); } } //break; } case “Area”: { for each (var z:GeoObject in x.recursiveChildren) { if (!resultSet.contains(z)) { resultSet.addItem(z); } } break; } default: { if (!resultSet.contains(x)) { resultSet.addItem(x); } } }
And the last one also works although it is the same logic as the initial version seen in the full method i posted at the beginning of this
switch (x.oType) { case “Network”: { if (!resultSet.contains(x)) { resultSet.addItem(x); } for each (var z:GeoObject in x.recursiveChildren) { if (!resultSet.contains(z)) { resultSet.addItem(z); } } break; } case “Area”: { for each (var z:GeoObject in x.recursiveChildren) { if (!resultSet.contains(z)) { resultSet.addItem(z); } } break; } default: { if (!resultSet.contains(x)) { resultSet.addItem(x); } } }
Can somebody tell me where the problem is? Until now it looks to me somewhat like a compiler error.
If you would like to make a comment, please fill out the form below.
Recent Comments