Author: scabanovich
Date: 2008-10-01 11:35:28 -0400 (Wed, 01 Oct 2008)
New Revision: 10603
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/actions/SeamFindQuickAssistProcessor.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchEngine.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchQuery.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchVisitor.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/text/java/SeamELProposalProcessor.java
Log:
JBIDE-1497.
Refactoring
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/actions/SeamFindQuickAssistProcessor.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/actions/SeamFindQuickAssistProcessor.java 2008-10-01
15:34:53 UTC (rev 10602)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/actions/SeamFindQuickAssistProcessor.java 2008-10-01
15:35:28 UTC (rev 10603)
@@ -89,7 +89,8 @@
private String[] getVariableNames(ISeamProject seamProject, IDocument document, int
offset,
int start, int end) {
- ELInvocationExpression tokens = SeamELCompletionEngine.findExpressionAtOffset(
+ SeamELCompletionEngine engine = new SeamELCompletionEngine(seamProject);
+ ELInvocationExpression tokens = engine.findExpressionAtOffset(
document, offset, start, end);
if (tokens == null)
@@ -116,8 +117,10 @@
ISeamProject seamProject = getSeamProject(context);
if (seamProject == null)
return result;
+
+ SeamELCompletionEngine engine = new SeamELCompletionEngine(seamProject);
- ELInvocationExpression tokens = SeamELCompletionEngine.findExpressionAtOffset(
+ ELInvocationExpression tokens = engine.findExpressionAtOffset(
document,
context.getSelectionOffset(),
0, //TODO compute region start
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchEngine.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchEngine.java 2008-10-01
15:34:53 UTC (rev 10602)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchEngine.java 2008-10-01
15:35:28 UTC (rev 10603)
@@ -37,12 +37,12 @@
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.search.core.text.TextSearchEngine;
import org.jboss.tools.common.el.core.model.ELInvocationExpression;
+import org.jboss.tools.common.el.core.resolver.ElVarSearcher;
+import org.jboss.tools.common.el.core.resolver.Var;
import org.jboss.tools.seam.core.ISeamContextVariable;
import org.jboss.tools.seam.core.ISeamProject;
import org.jboss.tools.seam.core.SeamCorePlugin;
-import org.jboss.tools.seam.internal.core.el.ElVarSearcher;
import org.jboss.tools.seam.internal.core.el.SeamELCompletionEngine;
-import org.jboss.tools.seam.internal.core.el.Var;
import org.jboss.tools.seam.ui.SeamGuiPlugin;
import org.jboss.tools.seam.ui.SeamUIMessages;
@@ -90,14 +90,13 @@
return Status.OK_STATUS;
}
- SeamELCompletionEngine engine = new SeamELCompletionEngine();
-
IProject project = (sourceFile == null ? null : sourceFile.getProject());
ISeamProject seamProject = SeamCorePlugin.getSeamProject(project, true);
if (seamProject == null)
return Status.OK_STATUS;
+ SeamELCompletionEngine engine = new SeamELCompletionEngine(seamProject);
//Find Seam variable names
@@ -126,7 +125,7 @@
}
// Try to find a local Var (a pair of variable-value attributes)
- ElVarSearcher varSearcher = new ElVarSearcher(seamProject, sourceFile, new
SeamELCompletionEngine());
+ ElVarSearcher varSearcher = new ElVarSearcher(sourceFile, engine);
// Find a Var in the EL
int start = tokens.getStartPosition();
int end = tokens.getEndPosition();
@@ -137,11 +136,11 @@
if (elText == null || elText.length() == 0)
return Status.OK_STATUS;
- List<Var> allVars= ElVarSearcher.findAllVars(sourceFile,
tokens.getStartPosition());
+ List<Var> allVars= varSearcher.findAllVars(sourceFile,
tokens.getStartPosition());
Var var = varSearcher.findVarForEl(elText.toString(), allVars, true);
if (var == null) {
// Find a Var in the current offset assuming that it's a node with var/value
attribute pair
- var = ElVarSearcher.findVar(sourceFile, tokens.getStartPosition());
+ var = varSearcher.findVar(sourceFile, tokens.getStartPosition());
}
if (var == null)
return Status.OK_STATUS;
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchQuery.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchQuery.java 2008-10-01
15:34:53 UTC (rev 10602)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchQuery.java 2008-10-01
15:35:28 UTC (rev 10603)
@@ -263,14 +263,14 @@
private IStatus queryByTokens(AbstractTextSearchResult textResult,
final IProgressMonitor monitor) {
- SeamELCompletionEngine engine = new SeamELCompletionEngine();
-
IProject project = (fSourceFile == null ? null : fSourceFile.getProject());
ISeamProject seamProject = SeamCorePlugin.getSeamProject(project, true);
if (seamProject == null)
return Status.OK_STATUS;
+ SeamELCompletionEngine engine = new SeamELCompletionEngine(seamProject);
+
// List<IJavaElement> elements =
engine.getJavaElementsForELOperandTokens(seamProject, fSourceFile, fTokens)
SeamSearchResultCollector collector= new SeamSearchResultCollector(textResult,
getParentRequestor());
return SeamSearchEngine.getInstance().search(fScope, collector, fSourceFile, fTokens,
monitor);
@@ -279,14 +279,14 @@
private IStatus queryByJavaElements(
AbstractTextSearchResult textResult,
final IProgressMonitor monitor) {
- SeamELCompletionEngine engine = new SeamELCompletionEngine();
-
IProject project = (fSourceFile == null ? null : fSourceFile.getProject());
ISeamProject seamProject = SeamCorePlugin.getSeamProject(project, true);
if (seamProject == null)
return Status.OK_STATUS;
+ SeamELCompletionEngine engine = new SeamELCompletionEngine(seamProject);
+
SeamSearchResultCollector collector= new SeamSearchResultCollector(textResult,
getParentRequestor());
return SeamSearchEngine.getInstance().search(fScope, collector, fSourceFile,
fJavaElements, monitor);
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchVisitor.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchVisitor.java 2008-10-01
15:34:53 UTC (rev 10602)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/search/SeamSearchVisitor.java 2008-10-01
15:35:28 UTC (rev 10603)
@@ -97,6 +97,9 @@
import org.jboss.tools.common.el.core.model.ELModel;
import org.jboss.tools.common.el.core.parser.ELParser;
import org.jboss.tools.common.el.core.parser.ELParserFactory;
+import org.jboss.tools.common.el.core.parser.ELParserUtil;
+import org.jboss.tools.common.el.core.resolver.ElVarSearcher;
+import org.jboss.tools.common.el.core.resolver.Var;
import org.jboss.tools.common.model.util.EclipseJavaUtil;
import org.jboss.tools.seam.core.BijectedAttributeType;
import org.jboss.tools.seam.core.IBijectedAttribute;
@@ -113,9 +116,7 @@
import org.jboss.tools.seam.core.SeamCorePlugin;
import org.jboss.tools.seam.internal.core.AbstractSeamDeclaration;
import org.jboss.tools.seam.internal.core.SeamComponent;
-import org.jboss.tools.seam.internal.core.el.ElVarSearcher;
import org.jboss.tools.seam.internal.core.el.SeamELCompletionEngine;
-import org.jboss.tools.seam.internal.core.el.Var;
import org.jboss.tools.seam.internal.core.scanner.ScannerException;
import org.jboss.tools.seam.internal.core.scanner.java.AnnotatedASTNode;
import org.jboss.tools.seam.internal.core.scanner.java.ResolvedAnnotation;
@@ -151,7 +152,6 @@
private IFile fCurrentFile;
private final FileCharSequenceProvider fFileCharSequenceProvider;
- private final SeamELCompletionEngine fCompletionEngine;
interface ISeamMatcher {
String getName();
@@ -327,7 +327,6 @@
}
fFileCharSequenceProvider= new FileCharSequenceProvider();
fMatchAccess= new ReusableMatchAccess();
- fCompletionEngine = new SeamELCompletionEngine();
}
/**
@@ -351,7 +350,6 @@
}
fFileCharSequenceProvider= new FileCharSequenceProvider();
fMatchAccess= new ReusableMatchAccess();
- fCompletionEngine = new SeamELCompletionEngine();
}
/**
@@ -375,7 +373,6 @@
}
fFileCharSequenceProvider= new FileCharSequenceProvider();
fMatchAccess= new ReusableMatchAccess();
- fCompletionEngine = new SeamELCompletionEngine();
}
@@ -478,8 +475,9 @@
}
}
-
- fELVarSearcher = new ElVarSearcher(project, fCompletionEngine);
+
+ SeamELCompletionEngine fCompletionEngine = new SeamELCompletionEngine(project);
+ fELVarSearcher = new ElVarSearcher(fCompletionEngine);
fDocumentsInEditors= evalNonFileBufferDocuments();
boolean res= true;
for (int i = 0; files != null && i < files.length; i++) {
@@ -597,7 +595,7 @@
private void locateMatchesInChildNodes(IFile file, Node parent, CharSequence content)
throws CoreException {
- Var var = ElVarSearcher.findVar(parent);
+ Var var = fELVarSearcher.findVar(parent);
if(var!=null) {
fVarListForCurentValidatedNode.add(var);
}
@@ -696,7 +694,7 @@
private void locateMatchesInString(IFile file, String string, int offset, CharSequence
content) throws CoreException {
int startEl = string.indexOf("#{"); //$NON-NLS-1$
if(startEl>-1) {
- ELParser parser = ELParserFactory.createJbossParser();
+ ELParser parser = ELParserUtil.getJbossFactory().createParser();
ELModel model = parser.parse(string);
List<ELInstance> is = model.getInstances();
for (ELInstance i: is) {
@@ -718,6 +716,7 @@
ELInvocationExpression expr = token;
while(expr != null) {
List<IJavaElement> elements = null;
+ SeamELCompletionEngine fCompletionEngine = new
SeamELCompletionEngine(fCurrentSeamProject);
try {
elements =
fCompletionEngine.getJavaElementsForELOperandTokens(fCurrentSeamProject, file, expr);
} catch (StringIndexOutOfBoundsException e) {
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/text/java/SeamELProposalProcessor.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/text/java/SeamELProposalProcessor.java 2008-10-01
15:34:53 UTC (rev 10602)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/text/java/SeamELProposalProcessor.java 2008-10-01
15:35:28 UTC (rev 10603)
@@ -54,14 +54,14 @@
import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
import org.eclipse.wst.xml.ui.internal.contentassist.AbstractContentAssistProcessor;
import org.eclipse.wst.xml.ui.internal.util.SharedXMLEditorPluginImageHelper;
+import org.jboss.tools.common.el.core.resolver.ElVarSearcher;
+import org.jboss.tools.common.el.core.resolver.Var;
import org.jboss.tools.common.model.ui.texteditors.xmleditor.XMLTextEditor;
import org.jboss.tools.common.text.ext.IEditorWrapper;
import org.jboss.tools.common.text.ext.util.Utils;
import org.jboss.tools.seam.core.ISeamProject;
import org.jboss.tools.seam.core.SeamCorePlugin;
-import org.jboss.tools.seam.internal.core.el.ElVarSearcher;
import org.jboss.tools.seam.internal.core.el.SeamELCompletionEngine;
-import org.jboss.tools.seam.internal.core.el.Var;
import org.jboss.tools.seam.ui.SeamGuiPlugin;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
@@ -263,8 +263,6 @@
}
- private final SeamELCompletionEngine fEngine= new SeamELCompletionEngine();
-
/**
* Creates a new Seam EL completion proposal computer.
*/
@@ -350,7 +348,9 @@
//TODO Now this will work only for EL.
// If we need CA for expressions/variables without #{}, it should be handled
separately.
- String prefix= SeamELCompletionEngine.getPrefix(viewer, offset, start, end);
+
+ SeamELCompletionEngine engine = new SeamELCompletionEngine(seamProject);
+ String prefix= engine.getPrefix(viewer, offset, start, end);
prefix = (prefix == null ? "" : prefix); //$NON-NLS-1$
String proposalPrefix = "";
@@ -388,11 +388,13 @@
proposalSufix = "}";
}
- List<Var> vars = ElVarSearcher.findAllVars(viewer, offset);
+ ElVarSearcher varSearcher = new ElVarSearcher(engine);
+ List<Var> vars = varSearcher.findAllVars(viewer, offset);
//TODO
- List<String> suggestions = fEngine.getCompletions(seamProject, file, document,
prefix, offset + proposalPrefix.length() - prefix.length(), false, vars, start, end);
+ SeamELCompletionEngine fEngine= new SeamELCompletionEngine(seamProject);
+ List<String> suggestions = fEngine.getCompletions(file, document, prefix, offset
+ proposalPrefix.length() - prefix.length(), false, vars, start, end);
List<String> uniqueSuggestions = fEngine.makeUnique(suggestions);
List<ICompletionProposal> result= new ArrayList<ICompletionProposal>();