fixed bug of displaying types by namespaces
diff --git a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/AbstractSearchQueryOperation.java b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/AbstractSearchQueryOperation.java
index ae56048..2835558 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/AbstractSearchQueryOperation.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/AbstractSearchQueryOperation.java
@@ -95,11 +95,31 @@
return searchParams.getGroupingHierarchy().equals(AbstractLocalDefinitionsSearchProvider.BY_FILES);
}
- protected void chooseParentForNamespaceNode(RootTreeNode rootTreeNode, FileNode fileNode, NamespaceNode namespaceNode) {
- if (namespaceNode.hasChildren()) {
- if (isByFilesHierarchy()) {
- fileNode.addChild(namespaceNode);
- } else {
+ protected void addNamespaceNodeContentToTree(RootTreeNode rootTreeNode, FileNode fileNode, NamespaceNode namespaceNode) {
+ if (!namespaceNode.hasChildren()) {
+ return;
+ }
+
+ if (isByFilesHierarchy()) {
+ fileNode.addChild(namespaceNode);
+ } else {
+ boolean foundExistingNamespaceNode = false;
+
+ for (Object treeNode : rootTreeNode.getChildren()) {
+ if (!(treeNode instanceof NamespaceNode)) {
+ continue;
+ }
+
+ NamespaceNode rootNodeNamespaceChildNode = (NamespaceNode) treeNode;
+ if (rootNodeNamespaceChildNode.getTreeDisplayText().equals(namespaceNode.getTreeDisplayText())) {
+ foundExistingNamespaceNode = true;
+ for (Object namespaceChild : namespaceNode.getChildren()) {
+ rootNodeNamespaceChildNode.addChild((ITreeNode) namespaceChild);
+ }
+ }
+ }
+
+ if (!foundExistingNamespaceNode) {
rootTreeNode.addChild(namespaceNode);
}
}
diff --git a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/wsdl/WsdlSearchQueryOperation.java b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/wsdl/WsdlSearchQueryOperation.java
index 970db1b..099b8bf 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/wsdl/WsdlSearchQueryOperation.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/wsdl/WsdlSearchQueryOperation.java
@@ -46,7 +46,7 @@
if (isByNamespaceHierarchy() || isByFilesHierarchy()) {
NamespaceNode namespaceNode = new NamespaceNode(wsdlModelRoot.getDescription(), fileNode);
addInterfacesToNamespaceNode(wsdlModelRoot, namespaceNode);
- chooseParentForNamespaceNode(rootTreeNode, fileNode, namespaceNode);
+
} else {
addInterfacesToNamespaceNode(wsdlModelRoot, rootTreeNode);
}
diff --git a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/xsd/XsdSearchQueryOperation.java b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/xsd/XsdSearchQueryOperation.java
index c470156..4d617fe 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/xsd/XsdSearchQueryOperation.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/xsd/XsdSearchQueryOperation.java
@@ -67,7 +67,7 @@
if (isByNamespaceHierarchy() || isByFilesHierarchy()) {
NamespaceNode namespaceNode = new NamespaceNode(schema, fileNode);
addTypesToParentNode(schema, namespaceNode, treeNodeMapper);
- chooseParentForNamespaceNode(rootTreeNode, fileNode, namespaceNode);
+ addNamespaceNodeContentToTree(rootTreeNode, fileNode, namespaceNode);
} else {
addTypesToParentNode(schema, rootTreeNode, treeNodeMapper);
}
diff --git a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/ui/tree/NamespaceNode.java b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/ui/tree/NamespaceNode.java
index 2407de5..f0f2c1d 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/ui/tree/NamespaceNode.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/ui/tree/NamespaceNode.java
@@ -58,5 +58,4 @@
public String getTypeDisplayText() {
return getNamespaceDisplayText();
}
-
}