Author: vrubezhny
Date: 2009-07-16 12:00:38 -0400 (Thu, 16 Jul 2009)
New Revision: 16595
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.text.ext.richfaces/src/org/jboss/tools/jsf/text/ext/richfaces/hyperlink/RichfacesJSPBundleHyperlinkPartitioner.java
trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPBundleHyperlinkPartitioner.java
Log:
JBIDE-4559: OpenOn doesn't work for resource EL on xhtml page if it was declared using
<a4j:loadBundle />
The namespaces are used to get the XXX:loadBundle tags prefixes for xhtml-documents.
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPBundleHyperlinkPartitioner.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPBundleHyperlinkPartitioner.java 2009-07-16
11:45:36 UTC (rev 16594)
+++
trunk/jsf/plugins/org.jboss.tools.jsf.text.ext/src/org/jboss/tools/jsf/text/ext/hyperlink/JsfJSPBundleHyperlinkPartitioner.java 2009-07-16
16:00:38 UTC (rev 16595)
@@ -54,7 +54,14 @@
return prefixes.toArray(new String[prefixes.size()]);
}
- static Map<String, Set<String>> getNameSpaces(IDocument document, int
offset) {
+ /**
+ * Method collects the namespaces used in the document
+ *
+ * @param document
+ * @param offset
+ * @return
+ */
+ static public Map<String, Set<String>> getNameSpaces(IDocument document, int
offset) {
IStructuredModel sModel = StructuredModelManager
.getModelManager()
.getExistingModelForRead(document);
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf.text.ext.richfaces/src/org/jboss/tools/jsf/text/ext/richfaces/hyperlink/RichfacesJSPBundleHyperlinkPartitioner.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf.text.ext.richfaces/src/org/jboss/tools/jsf/text/ext/richfaces/hyperlink/RichfacesJSPBundleHyperlinkPartitioner.java 2009-07-16
11:45:36 UTC (rev 16594)
+++
trunk/jsf/plugins/org.jboss.tools.jsf.text.ext.richfaces/src/org/jboss/tools/jsf/text/ext/richfaces/hyperlink/RichfacesJSPBundleHyperlinkPartitioner.java 2009-07-16
16:00:38 UTC (rev 16595)
@@ -12,10 +12,13 @@
package org.jboss.tools.jsf.text.ext.richfaces.hyperlink;
import java.util.ArrayList;
+import java.util.Map;
+import java.util.Set;
import org.eclipse.jface.text.IDocument;
import org.jboss.tools.common.text.ext.util.TaglibManagerWrapper;
import org.jboss.tools.jsf.text.ext.hyperlink.JSPBundleHyperlinkPartitioner;
+import org.jboss.tools.jsf.text.ext.hyperlink.JsfJSPBundleHyperlinkPartitioner;
/**
*
@@ -41,17 +44,28 @@
* @Override
*/
protected String[] getLoadBundleTagPrefixes(IDocument document, int offset) {
+ ArrayList<String> prefixes = new ArrayList<String>();
TaglibManagerWrapper tmw = new TaglibManagerWrapper();
tmw.init(document, offset);
- if(!tmw.exists()) return null;
-
- ArrayList<String> prefixes = new ArrayList<String>();
- for (String uri : LoadBundleURIs) {
- String prefix = tmw.getPrefix(uri);
- if (prefix != null)
- prefixes.add(prefix);
+ if(tmw.exists()) {
+ for (String uri : LoadBundleURIs) {
+ String prefix = tmw.getPrefix(uri);
+ if (prefix != null)
+ prefixes.add(prefix);
+ }
}
- return (String[])prefixes.toArray(new String[prefixes.size()]);
+ // JBIDE-4559: For XHTML pages we should use alternate way to get the prefixes
+ Map<String, Set<String>> namespaces =
JsfJSPBundleHyperlinkPartitioner.getNameSpaces(document, offset);
+
+ if (namespaces != null) {
+ for (String uri : LoadBundleURIs) {
+ Set<String> altPrefixes = namespaces.get(uri);
+ if (altPrefixes != null)
+ prefixes.addAll(altPrefixes);
+ }
+ }
+
+ return (prefixes.size() == 0 ? null : (String[])prefixes.toArray(new
String[prefixes.size()]));
}
}
Show replies by date