[125668] fix up some ugly participant initialization bugs
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchParticipant.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchParticipant.java index 8657076..c0a8b1c 100644 --- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchParticipant.java +++ b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchParticipant.java
@@ -49,14 +49,14 @@ */ public abstract class XMLSearchParticipant extends SearchParticipant { - String[] supportedContentTypes; - protected static final boolean debugPerf = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.xml.core.internal.search/perf")); //$NON-NLS-1$ //$NON-NLS-2$ public XMLSearchParticipant() { super(); } + + /* public boolean initialize(SearchPattern pattern, String[] contentTypes){ super.initialize(pattern, contentTypes); @@ -66,11 +66,11 @@ return true; } return false; - } + }*/ - public SearchDocument getDocument(String documentPath) { + public SearchDocument createSearchDocument(String documentPath) { return new XMLSearchDocument(documentPath, this); @@ -223,9 +223,7 @@ * @param pattern the search pattern that is searched for * @return content type's unique identifiers that could be searched for the given pattern. */ - public String[] getSupportedContentTypes(){ - return supportedContentTypes; - } + public abstract String[] getSupportedContentTypes(); public void populateSearchDocument(SearchDocument document, SearchPattern pattern) { @@ -259,6 +257,8 @@ IFile file = files[i]; String path = file.getLocation().toString(); SearchDocument document = documentSet.getSearchDocument(path, id); + if (document != null) + { Entry[] entries = document.getEntries(getSearchEntryCategory(pattern), null, 0); if(entries != null && entries.length > 0) { @@ -289,6 +289,7 @@ this.locateMatches(pattern, document, requestor, monitor); } } + } }
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java index 34e7dc5..4cfb9dc 100644 --- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java +++ b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java
@@ -26,24 +26,24 @@ */ public class XMLQuickScan { - + /* public static String getTargetNamespace(String fullFilePath) { XMLQuickScanContentHandler handler = new XMLQuickScanContentHandler(); parseFile(fullFilePath, handler); return handler.getTargetNamespace(); - } + }*/ /* * Returns information about matches encountered based on the criteria * provided. - */ + * public static boolean hasMatch(String fullFilePath, PatternMatcher matcher, SearchPattern pattern) { XMLQuickScanContentHandler handler = new XMLQuickScanContentHandler(matcher, pattern); parseFile(fullFilePath, handler); return handler.hasMatch(); - } + }*/ public static boolean populateSearchDocument(SearchDocument document, PatternMatcher matcher, SearchPattern pattern) { @@ -60,8 +60,8 @@ { inputStream = new FileInputStream(new File(fullFilePath)); SAXParser parser = SAXParserFactory.newInstance().newSAXParser(); - XMLReader reader = parser.getXMLReader(); + //System.out.println("parseFile" + reader + " (" + fullFilePath + ")"); reader.setFeature("http://xml.org/sax/features/namespaces", true); reader.setContentHandler(handler); reader.parse(new InputSource(inputStream));
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/XSDSearchParticipant.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/XSDSearchParticipant.java index c148c95..8025be6 100644 --- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/XSDSearchParticipant.java +++ b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/search/XSDSearchParticipant.java
@@ -20,10 +20,20 @@ private static String ID = "org.eclipse.wst.xsd.search.XSDSearchParticipant"; - public boolean initialize(SearchPattern pattern, String[] contentTypes){ - - super.initialize(pattern, contentTypes); - id = ID; + public XSDSearchParticipant() + { + super(); + id = ID; + } + + public String[] getSupportedContentTypes() + { + String[] result = { "org.eclipse.wst.xsd.core.xsdsource" }; + return result; + } + + public boolean isApplicable(SearchPattern pattern) + { if(pattern instanceof XMLComponentSearchPattern ){ XMLComponentSearchPattern componentPattern = (XMLComponentSearchPattern)pattern; String namespace = componentPattern.getMetaName().getNamespace(); @@ -33,11 +43,8 @@ } return false; } - - - public ComponentSearchContributor getSearchContributor() { + public ComponentSearchContributor getSearchContributor() { return new XSDSearchContributor(); } - }
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/common/ComponentSelectionDialog.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/common/ComponentSelectionDialog.java index 77ce6ad..3ebe1f2 100644 --- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/common/ComponentSelectionDialog.java +++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/common/ComponentSelectionDialog.java
@@ -364,6 +364,7 @@ fireUpdateList(componentList); } catch (Exception e) { + e.printStackTrace(); } return Status.OK_STATUS; }
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDComponentFinder.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDComponentFinder.java index e52e53d..bedf16e 100644 --- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDComponentFinder.java +++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/dialogs/types/xsd/XSDComponentFinder.java
@@ -13,6 +13,8 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; + +import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.wst.common.core.search.SearchEngine; @@ -46,6 +48,7 @@ XMLComponentDeclarationPattern pattern = new XMLComponentDeclarationPattern(new QualifiedName("*", "*"), metaName, SearchPattern.R_PATTERN_MATCH); SearchParticipant particpant = SearchPlugin.getDefault().getSearchParticipant("org.eclipse.wst.xsd.search.XSDSearchParticipant"); + Assert.isNotNull(particpant); // for now we assume that we only want to include the xsd related participant // that way we don't get SearchMatches for things withing WSDL files