Author: scabanovich
Date: 2009-12-25 11:50:30 -0500 (Fri, 25 Dec 2009)
New Revision: 19588
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.xml.ui/src/org/jboss/tools/hibernate/ui/xml/editor/HibernatePropertiesContentAssistProcessor.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.xml.ui/src/org/jboss/tools/hibernate/ui/xml/editor/HibernatePropertiesContentProposalProvider.java
Log:
JBIDE-4916
optimization
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.xml.ui/src/org/jboss/tools/hibernate/ui/xml/editor/HibernatePropertiesContentAssistProcessor.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.xml.ui/src/org/jboss/tools/hibernate/ui/xml/editor/HibernatePropertiesContentAssistProcessor.java 2009-12-25
16:49:28 UTC (rev 19587)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.xml.ui/src/org/jboss/tools/hibernate/ui/xml/editor/HibernatePropertiesContentAssistProcessor.java 2009-12-25
16:50:30 UTC (rev 19588)
@@ -15,16 +15,8 @@
import java.util.Map;
import java.util.TreeMap;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.ui.text.javadoc.JavadocContentAccess2;
-import org.eclipse.jface.fieldassist.IContentProposal;
-import org.eclipse.jface.fieldassist.IContentProposalProvider;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.CompletionProposal;
import org.jboss.tools.common.meta.XAttribute;
import org.jboss.tools.common.meta.XChild;
import org.jboss.tools.common.meta.XModelEntity;
@@ -32,10 +24,7 @@
import org.jboss.tools.common.meta.constraint.impl.XAttributeConstraintAList;
import org.jboss.tools.common.meta.key.WizardKeys;
import org.jboss.tools.common.model.XModelObject;
-import org.jboss.tools.common.model.ui.attribute.adapter.JavaClassContentAssistProvider;
import
org.jboss.tools.common.model.ui.texteditors.propertyeditor.AbstractPropertiesContentAssistProcessor;
-import org.jboss.tools.common.model.util.EclipseJavaUtil;
-import org.jboss.tools.common.model.util.EclipseResourceUtil;
import org.jboss.tools.hibernate.ui.xml.form.HibConfig3PropertyFormLayoutData;
import org.jboss.tools.hibernate.xml.model.impl.HibConfigComplexPropertyImpl;
@@ -52,7 +41,6 @@
public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer,
int offset) {
Context context = getContext(viewer, offset);
- String text = viewer.getDocument().get();
List<ICompletionProposal> result = new ArrayList<ICompletionProposal>();
@@ -62,28 +50,15 @@
return new ICompletionProposal[0];
}
if(context.isInPropertyName()) {
- int nameOffset = context.getNameOffset();
- String namePrefix = nameOffset < offset ? text.substring(nameOffset, offset) :
""; //$NON-NLS-1$
String[] ps = attributes.keySet().toArray(new String[0]);
for (int i = 0; i < ps.length; i++) {
- if(context.hasProperty(ps[i])) continue;
- String description = getDescription(ps[i]);
- if(ps[i].startsWith(namePrefix)) {
- CompletionProposal proposal = new CompletionProposal(
- ps[i],
- nameOffset,
- context.getNameLength(),
- ps[i].length(),
- null,
- ps[i],
- null,
- description);
+ String description = getDescription(ps[i]); //set more substantial description
+ ICompletionProposal proposal = getNameProposal(ps[i], description, context);
+ if(proposal != null) {
result.add( proposal);
}
}
} else if(context.isInValue()) {
- int valueOffset = context.getValueOffset();
- String valuePrefix = valueOffset < offset && valueOffset >= 0 ?
text.substring(valueOffset, offset) : ""; //$NON-NLS-1$
String propertyName = context.getPropertyName();
if(attributes.containsKey(propertyName)) {
XAttribute attr = attributes.get(propertyName);
@@ -95,40 +70,14 @@
String[] vs = ((XAttributeConstraintAList)c).getValues();
for (int i = 0; i < vs.length; i++) {
if(vs[i].length() == 0) continue;
- if(vs[i].startsWith(valuePrefix)) {
- CompletionProposal proposal = new CompletionProposal(
- vs[i],
- valueOffset,
- context.getValueLength(),
- vs[i].length(),
- null,
- vs[i],
- null,
- vs[i]); //should we put more substantial description?
+ String description = vs[i]; //set more substantial description
+ ICompletionProposal proposal = getValueProposal(vs[i], description, context);
+ if(proposal != null) {
result.add( proposal);
}
}
} else if("AccessibleJava".equals(attr.getEditor().getName())) {
//$NON-NLS-1$
- JavaClassContentAssistProvider p = new JavaClassContentAssistProvider();
- p.init(object, null, attr);
- IContentProposalProvider pp = p.getContentProposalProvider();
- IContentProposal[] ps = pp.getProposals(valuePrefix, valuePrefix.length());
- IProject project = EclipseResourceUtil.getProject(object);
- IJavaProject jp = EclipseResourceUtil.getJavaProject(project);
- if(ps != null) for (int i = 0; i < ps.length; i++) {
- String value = ps[i].getContent();
- String descr = getDescription(jp, value);
- CompletionProposal proposal = new CompletionProposal(
- value,
- valueOffset,
- context.getValueLength(),
- value.length(),
- null,
- ps[i].getLabel(),
- null,
- descr != null ? descr : ps[i].getDescription());
- result.add(proposal);
- }
+ result.addAll(getJavaTypeContentProposals(attr, context));
} else {
//TODO
}
@@ -173,14 +122,4 @@
return description;
}
- public static String getDescription(IJavaProject jp, String value) {
- String descr = null;
- if(jp != null) try {
- IType type = EclipseJavaUtil.findType(jp, value);
- if(type != null) descr = JavadocContentAccess2.getHTMLContent(type, true);
- } catch (JavaModelException e) {
- //ignore
- }
- return descr;
- }
}
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.xml.ui/src/org/jboss/tools/hibernate/ui/xml/editor/HibernatePropertiesContentProposalProvider.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.xml.ui/src/org/jboss/tools/hibernate/ui/xml/editor/HibernatePropertiesContentProposalProvider.java 2009-12-25
16:49:28 UTC (rev 19587)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.xml.ui/src/org/jboss/tools/hibernate/ui/xml/editor/HibernatePropertiesContentProposalProvider.java 2009-12-25
16:50:30 UTC (rev 19588)
@@ -78,22 +78,7 @@
}
}
} else if("AccessibleJava".equals(attr.getEditor().getName())) {
//$NON-NLS-1$
- JavaClassContentAssistProvider p = new JavaClassContentAssistProvider();
- p.init(object, null, attr);
- IContentProposalProvider pp = p.getContentProposalProvider();
- IContentProposal[] ps = pp.getProposals(valuePrefix, valuePrefix.length());
- IJavaProject jp = getJavaProject();
- for (int i = 0; i < ps.length; i++) {
- String descr = ps[i].getDescription();
- if(descr == null || descr.length() == 0) {
- String value = ps[i].getContent();
- descr = HibernatePropertiesContentAssistProcessor.getDescription(jp, value);
- IContentProposal p2 =
AttributeContentProposalProviderFactory.makeContentProposal(value, ps[i].getLabel(),
descr);
- result.add(p2);
- } else {
- result.add(ps[i]);
- }
- }
+ result.addAll(getJavaTypeContentProposals(contents, position));
} else {
//TODO
}
@@ -103,27 +88,8 @@
return result.toArray(new IContentProposal[0]);
}
- boolean isNameAttribute() {
- return attribute.getName().equals(XModelObjectConstants.ATTR_NAME);
+ protected boolean isPropertyEntity(String entity) {
+ return super.isPropertyEntity(entity) ||
HibConfigComplexPropertyImpl.ENT_PROPERTY.equals(entity);
}
- String getPropertyName() {
- String value = null;
- if(data != null) {
- value = data.getValue(XModelObjectConstants.ATTR_NAME);
-
- } else if(object != null
- && (object.getModelEntity().getName().equals(PropertiesLoader.ENT_PROPERTY)
- ||
object.getModelEntity().getName().equals(HibConfigComplexPropertyImpl.ENT_PROPERTY))) {
- value = object.getAttributeValue(XModelObjectConstants.ATTR_NAME);
-
- }
- return value;
-
- }
-
- IJavaProject getJavaProject() {
- IProject project = EclipseResourceUtil.getProject(object);
- return EclipseResourceUtil.getJavaProject(project);
- }
}