Author: vrubezhny
Date: 2010-09-07 13:30:18 -0400 (Tue, 07 Sep 2010)
New Revision: 24775
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/ca/BeansXmlCompletionProposalComputer.java
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/META-INF/MANIFEST.MF
trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.properties
trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.xml
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/KbQuery.java
Log:
JBIDE-2704: Code completion of annotations in beans.xml
CDI Class computer is created.
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/META-INF/MANIFEST.MF 2010-09-07 16:57:00 UTC
(rev 24774)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/META-INF/MANIFEST.MF 2010-09-07 17:30:18 UTC
(rev 24775)
@@ -27,7 +27,8 @@
org.jboss.tools.common.model.ui;bundle-version="2.0.0",
org.jboss.tools.jst.web.ui;bundle-version="2.0.0",
org.eclipse.core.expressions;bundle-version="3.4.100",
- org.eclipse.ltk.core.refactoring;bundle-version="3.5.0"
+ org.eclipse.ltk.core.refactoring;bundle-version="3.5.0",
+ org.jboss.tools.jst.jsp;bundle-version="3.2.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: %Bundle-Vendor.0
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.properties
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.properties 2010-09-07 16:57:00 UTC
(rev 24774)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.properties 2010-09-07 17:30:18 UTC
(rev 24775)
@@ -7,4 +7,6 @@
PreferencePage_CDI=CDI
Bundle-Vendor.0 = JBoss by Red Hat
-Bundle-Name.0 = Context and Dependency Injection UI
\ No newline at end of file
+Bundle-Name.0 = Context and Dependency Injection UI
+
+proposalCategory.cdiClass= JBoss CDI Class Proposals
\ No newline at end of file
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.xml
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.xml 2010-09-07 16:57:00 UTC (rev
24774)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.xml 2010-09-07 17:30:18 UTC (rev
24775)
@@ -205,4 +205,28 @@
</extension>
+ <extension
+ point="org.eclipse.wst.sse.ui.completionProposal">
+ <proposalCategory
+ icon="icons/cdi16.png"
+ id="org.jboss.tools.cdi.ui.proposalCategory.cdiClass"
+ name="%proposalCategory.cdiClass">
+ </proposalCategory>
+ <proposalComputer
+ activate="true"
+ categoryId="org.jboss.tools.cdi.ui.proposalCategory.cdiClass"
+ class="org.jboss.tools.cdi.ui.ca.BeansXmlCompletionProposalComputer"
+ id="org.jboss.tools.cdi.ui.proposalComputer.cdiClass">
+ <contentType id="org.eclipse.core.runtime.xml">
+ <partitionType id="org.eclipse.wst.xml.XML_DEFAULT" />
+ </contentType>
+ <contentType id="org.eclipse.wst.xml.core.xmlsource">
+ <partitionType id="org.eclipse.wst.xml.XML_DEFAULT" />
+ </contentType>
+ <contentType id="org.jboss.tools.common.model.ui.xml">
+ <partitionType id="org.eclipse.wst.xml.XML_DEFAULT" />
+ </contentType>
+ </proposalComputer>
+ </extension>
+
</plugin>
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/ca/BeansXmlCompletionProposalComputer.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/ca/BeansXmlCompletionProposalComputer.java
(rev 0)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/ca/BeansXmlCompletionProposalComputer.java 2010-09-07
17:30:18 UTC (rev 24775)
@@ -0,0 +1,136 @@
+package org.jboss.tools.cdi.ui.ca;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jface.text.contentassist.IContextInformation;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.sse.ui.contentassist.CompletionProposalInvocationContext;
+import org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest;
+import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
+import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
+import org.jboss.tools.cdi.internal.core.ca.BeansXmlProcessor;
+import org.jboss.tools.common.el.core.resolver.ELContext;
+import org.jboss.tools.common.text.TextProposal;
+import org.jboss.tools.jst.jsp.contentassist.AutoContentAssistantProposal;
+import org.jboss.tools.jst.jsp.contentassist.computers.XmlTagCompletionProposalComputer;
+import org.jboss.tools.jst.web.kb.KbQuery;
+import org.jboss.tools.jst.web.kb.PageProcessor;
+import org.jboss.tools.jst.web.kb.KbQuery.Type;
+
+
+public class BeansXmlCompletionProposalComputer extends XmlTagCompletionProposalComputer
{
+
+ @Override
+ protected void addTagInsertionProposals(
+ ContentAssistRequest contentAssistRequest, int childPosition,
+ CompletionProposalInvocationContext context) {
+ // TODO Auto-generated method stub
+ System.out.println("addTagInsertionProposals: CDI Beans.xml proposals are to be
placed here!");
+
+ String prefix = getTagPrefix();
+ String uri = getTagUri();
+
+ String query = contentAssistRequest.getMatchString();
+
+ if (query == null)
+ query = ""; //$NON-NLS-1$
+ String stringQuery = query; //$NON-NLS-1$
+
+ ELContext elContext = getContext();
+ IProject project = elContext == null || elContext.getResource() == null ? null :
+ elContext.getResource().getProject();
+
+ if (project == null)
+ return;
+
+ KbQuery kbQuery = createKbQuery(Type.TAG_BODY, query, stringQuery, prefix, uri);
+ TextProposal[] proposals = BeansXmlProcessor.getInstance().getProposals(kbQuery,
project);
+
+ for (int i = 0; proposals != null && i < proposals.length; i++) {
+ TextProposal textProposal = proposals[i];
+ boolean useAutoActivation = true;
+
+ String replacementString = textProposal.getReplacementString();
+ String closingTag = textProposal.getLabel();
+// if (closingTag != null && closingTag.startsWith("<")) {
//$NON-NLS-1$
+// closingTag = closingTag.substring(1);
+// }
+
+// if (!insertTagOpenningCharacter &&
replacementString.startsWith("<")) { //$NON-NLS-1$
+ // Because the tag starting char is already in the text
+// replacementString = replacementString.substring(1);
+// }
+// if (!replacementString.endsWith("/>")) { //$NON-NLS-1$
+// replacementString += "</" + closingTag + ">";
//$NON-NLS-1$ //$NON-NLS-2$
+// useAutoActivation = false; // JBIDE-6285: Don't invoke code assist automaticly
if user inserts <tag></tag>.
+// }
+
+
+ int replacementOffset = contentAssistRequest.getReplacementBeginPosition();
+ int replacementLength = contentAssistRequest.getReplacementLength();
+ int cursorPosition = getCursorPositionForProposedText(replacementString);
+ Image image = textProposal.getImage();
+ if (image == null) {
+ image =
XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_GENERIC);
+ }
+
+ String displayString = closingTag;
+ IContextInformation contextInformation = null;
+ String additionalProposalInfo = textProposal.getContextInfo();
+ int relevance = textProposal.getRelevance();
+ if (relevance == TextProposal.R_NONE) {
+// relevance = defaultRelevance == TextProposal.R_NONE? TextProposal.R_TAG_INSERTION :
defaultRelevance;
+ }
+
+ AutoContentAssistantProposal proposal = new
AutoContentAssistantProposal(useAutoActivation, replacementString,
+ replacementOffset, replacementLength, cursorPosition, image, displayString,
+ contextInformation, additionalProposalInfo, relevance);
+
+ contentAssistRequest.addProposal(proposal);
+ }
+
+ }
+
+ @Override
+ protected void addAttributeNameProposals(
+ ContentAssistRequest contentAssistRequest,
+ CompletionProposalInvocationContext context) {
+ // No actions required
+ }
+
+ @Override
+ protected void addAttributeValueProposals(
+ ContentAssistRequest contentAssistRequest,
+ CompletionProposalInvocationContext context) {
+ // No actions required
+ }
+
+ @Override
+ protected void addTagNameProposals(
+ ContentAssistRequest contentAssistRequest, int childPosition,
+ CompletionProposalInvocationContext context) {
+ // No actions required
+ }
+
+ @Override
+ protected void addTagNameProposals(
+ ContentAssistRequest contentAssistRequest, int childPosition,
+ boolean insertTagOpenningCharacter,
+ CompletionProposalInvocationContext context) {
+ // No actions required
+ }
+
+ @Override
+ protected void addAttributeValueELProposals(
+ ContentAssistRequest contentAssistRequest,
+ CompletionProposalInvocationContext context) {
+ // No actions required
+ }
+
+ @Override
+ protected void addTextELProposals(
+ ContentAssistRequest contentAssistRequest,
+ CompletionProposalInvocationContext context) {
+ // No actions required
+ }
+}
+
Property changes on:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/ca/BeansXmlCompletionProposalComputer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/KbQuery.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/KbQuery.java 2010-09-07
16:57:00 UTC (rev 24774)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/KbQuery.java 2010-09-07
17:30:18 UTC (rev 24775)
@@ -36,7 +36,8 @@
TEXT,
TAG_NAME,
ATTRIBUTE_NAME,
- ATTRIBUTE_VALUE
+ ATTRIBUTE_VALUE,
+ TAG_BODY
}
public KbQuery() {