Author: vrubezhny
Date: 2011-07-27 11:33:01 -0400 (Wed, 27 Jul 2011)
New Revision: 33248
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/international/el/CDIInternationalMessagesELResolver.java
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFMessageELCompletionEngine.java
Log:
JBIDE-9087
Support of Bundles bean in CDI projects with Seam International module.
Fixed few resolution issues that break the resolution on long-named properties and bundle
names
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/international/el/CDIInternationalMessagesELResolver.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/international/el/CDIInternationalMessagesELResolver.java 2011-07-27
15:22:17 UTC (rev 33247)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/international/el/CDIInternationalMessagesELResolver.java 2011-07-27
15:33:01 UTC (rev 33248)
@@ -122,15 +122,12 @@
if (bundleModel == null)
return null;
IResourceBundle[] bundles = findResourceBundles(bundleModel);
-
- IDocument document = null;
-
if (bundles == null)
- bundles = new IResourceBundle[0];
+ return null;
List<TextProposal> proposals = null;
try {
- proposals = getCompletions(context.getResource(), document, elString.subSequence(0,
elString.length()), position, returnEqualedVariablesOnly, bundles);
+ proposals = getCompletions(context.getResource(), null, elString.subSequence(0,
elString.length()), position, returnEqualedVariablesOnly, bundles);
} catch (StringIndexOutOfBoundsException e) {
log(e);
} catch (BadLocationException e) {
@@ -217,8 +214,29 @@
// but we have to resolve arguments of probably a message component
if (resolvedVariables != null && !resolvedVariables.isEmpty()) {
resolution.setLastResolvedToken(left);
-
- ELSegmentImpl segment = new MessagePropertyELSegmentImpl(left.getFirstToken());
+ // Create a combined lexical token to store all the variable name (not only the name
before first dot, but all the name including all the words and dots)
+ int variableTokenType = left.getFirstToken().getType();
+ int variableTokenStart = left.getFirstToken().getStart();
+ int variableTokenLength = 0;
+ StringBuffer variableTokenText = new StringBuffer();
+ LexicalToken current = left.getFirstToken();
+ LexicalToken variableTokenNext = null;
+ while (current != null && current != left.getLastToken()) {
+ variableTokenText.append(current.getText());
+ variableTokenLength += current.getLength();
+ variableTokenNext = current.getNextToken();
+ current = variableTokenNext;
+ }
+ if (current != null) {
+ variableTokenText.append(current.getText());
+ variableTokenLength += current.getLength();
+ variableTokenNext = current.getNextToken();
+ }
+
+ LexicalToken variableToken = new LexicalToken(variableTokenStart,
variableTokenLength, variableTokenText, variableTokenType);
+ variableToken.setNextToken(variableTokenNext);
+
+ ELSegmentImpl segment = new MessagePropertyELSegmentImpl(variableToken);
processMessageBundleSegment(expr, (MessagePropertyELSegmentImpl)segment,
resolvedVariables);
segment.setResolved(true);
@@ -545,7 +563,7 @@
String propertyName = segment.getToken().getText();
- IProperty prop = bundle.getProperty(propertyName);
+ IProperty prop = bundle.getProperty(trimQuotes(propertyName));
if(prop == null) continue;
Map<String, LocalizedValue> values = ((PropertyImpl)prop).getValues();
for (LocalizedValue value: values.values()) {
Modified:
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java 2011-07-27
15:22:17 UTC (rev 33247)
+++
trunk/common/plugins/org.jboss.tools.common.el.core/src/org/jboss/tools/common/el/core/ca/AbstractELCompletionEngine.java 2011-07-27
15:33:01 UTC (rev 33248)
@@ -1094,4 +1094,24 @@
present.clear();
return unique;
}
+
+ /**
+ * Cuts of the starting and ending quotes from a given text value
+ *
+ * @param Quoted text value
+ * @return Non-quoted text value
+ */
+ public static String trimQuotes(String value) {
+ if(value == null)
+ return null;
+
+ if(value.startsWith("'") || value.startsWith("\"")) {
//$NON-NLS-1$ //$NON-NLS-2$
+ value = value.substring(1);
+ }
+
+ if(value.endsWith("'") || value.endsWith("\"")) {
//$NON-NLS-1$ //$NON-NLS-2$
+ value = value.substring(0, value.length() - 1);
+ }
+ return value;
+ }
}
\ No newline at end of file
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFMessageELCompletionEngine.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFMessageELCompletionEngine.java 2011-07-27
15:22:17 UTC (rev 33247)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/JSFMessageELCompletionEngine.java 2011-07-27
15:33:01 UTC (rev 33248)
@@ -19,11 +19,9 @@
import java.util.TreeSet;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
import org.eclipse.swt.graphics.Image;
import org.jboss.tools.common.el.core.ca.AbstractELCompletionEngine;
import org.jboss.tools.common.el.core.model.ELArgumentInvocation;
@@ -52,7 +50,6 @@
import org.jboss.tools.common.text.TextProposal;
import org.jboss.tools.common.text.ext.util.StructuredModelWrapper;
import org.jboss.tools.common.text.ext.util.Utils;
-import org.jboss.tools.common.util.FileUtil;
import org.jboss.tools.jsf.JSFModelPlugin;
import org.jboss.tools.jsf.model.helpers.converter.OpenKeyHelper;
import org.jboss.tools.jst.web.kb.IPageContext;
@@ -602,20 +599,6 @@
}
}
- private String trimQuotes(String value) {
- if(value == null)
- return null;
-
- if(value.startsWith("'") || value.startsWith("\"")) {
//$NON-NLS-1$ //$NON-NLS-2$
- value = value.substring(1);
- }
-
- if(value.endsWith("'") || value.endsWith("\"")) {
//$NON-NLS-1$ //$NON-NLS-2$
- value = value.substring(0, value.length() - 1);
- }
- return value;
- }
-
public boolean findPropertyLocation(XModelObject property, String content,
MessagePropertyELSegmentImpl segment) {
String name = property.getAttributeValue("name"); //$NON-NLS-1$
String nvs = property.getAttributeValue("name-value-separator");
//$NON-NLS-1$
Show replies by date