List of usage examples for org.eclipse.jdt.core IJavaProject findType
IType findType(String fullyQualifiedName) throws JavaModelException;
null
if none is found. From source file:ar.com.tadp.xml.rinzo.jdt.JDTUtils.java
License:Open Source License
/** * @return the IType for the candidate class name in the workspace or null if not available. *//*from w w w. j av a2s.c o m*/ public static IType findType(String classNameCandidate, IJavaProject activeJavaProject) { IJavaProject[] projects = getWorkspaceProjects(); IType type = null; // Busco primero en el proyectos actual try { type = activeJavaProject.findType(classNameCandidate); } catch (Exception e) { // TODO: At this moment I don't care about any explotion here, because it could be caused by trying to // open a type in a file without associated project such as files external to the workspace } // Si no lo encuentro ah, entonces busco en el resto de los proyectos // del workspace if (type == null) { for (int i = 0; i < projects.length; i++) { IJavaProject project = projects[i]; if (project != activeJavaProject) { try { type = project.findType(classNameCandidate); } catch (JavaModelException exception) { // Don't mind about this one. } if (type != null) { break; } } } } return type; }
From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java
License:Open Source License
@Override public void completeElement_DefaultChildren(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { try {/*from w w w .j av a 2 s. c o m*/ Element el = (Element) model; // Happens when we are in the default section and user typed // something if ("void".equals(el.getType().getQualifiedName())) { if (!(model.eContainer() instanceof Element)) { return; } el = (Element) model.eContainer(); } IJavaProject javaProject = projectProvider.getJavaProject(el.eResource().getResourceSet()); IType type = javaProject.findType(el.getType().getQualifiedName()); if (type != null) { IFXClass fxClazz = FXPlugin.getClassmodel().findClass(javaProject, type); if (fxClazz != null) { IFXProperty prop = fxClazz.getDefaultProperty(); if (prop != null) { completeElement_DefaultChildrenProposals(prop, el, context, FXGraphPackage.Literals.ELEMENT__DEFAULT_CHILDREN, acceptor); } } } } catch (JavaModelException e) { LOGGER.error("Failed to complete default children", e); } }
From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java
License:Open Source License
@Override public void completeElement_Properties(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { try {//w w w .java2 s. com Element el = (Element) model; // Happens when we are in the default section and user typed // something if ("void".equals(el.getType().getQualifiedName())) { if (!(model.eContainer() instanceof Element)) { return; } el = (Element) model.eContainer(); } { IJavaProject javaProject = projectProvider.getJavaProject(el.eResource().getResourceSet()); IType type = javaProject.findType(el.getType().getQualifiedName()); if (type != null) { IFXClass fxClazz = FXPlugin.getClassmodel().findClass(javaProject, type); if (fxClazz != null) { Map<String, IFXProperty> map = fxClazz.getAllProperties(); for (IFXProperty p : map.values()) { // // The id-attribute is defined through the id keyword // if (!"id".equals(p.getName())) { completeElement_PropertiesProposals(p, el, context, FXGraphPackage.Literals.ELEMENT__PROPERTIES, acceptor); // } } } } } EObject o = el; el = null; while (o.eContainer() != null) { if (o.eContainer() instanceof Element) { el = (Element) o.eContainer(); break; } if (o.eContainer() instanceof MapValueProperty) { el = null; break; } o = o.eContainer(); } if (el instanceof Element) { el = (Element) el; IJavaProject javaProject = projectProvider.getJavaProject(el.eResource().getResourceSet()); IType type = javaProject.findType(el.getType().getQualifiedName()); if (type != null) { IFXClass fxClazz = FXPlugin.getClassmodel().findClass(javaProject, type); if (fxClazz != null) { Map<String, IFXProperty> map = fxClazz.getAllStaticProperties(); for (IFXProperty p : map.values()) { completeElement_PropertiesProposals(p, el, context, FXGraphPackage.Literals.ELEMENT__STATIC_PROPERTIES, acceptor); } } } } } catch (JavaModelException e) { LOGGER.error("Failed to complete properties", e); } }
From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java
License:Open Source License
@Override public void completeProperty_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { Property prop;/*from w w w . j a v a 2 s .c om*/ if (model instanceof Property) { prop = (Property) model; } else if (model instanceof Element) { prop = (Property) model.eContainer(); } else { return; } if (prop.eContainer() instanceof Element) { Element el = (Element) prop.eContainer(); try { IJavaProject javaProject = projectProvider.getJavaProject(el.eResource().getResourceSet()); IType type = javaProject.findType(el.getType().getQualifiedName()); if (type != null) { IFXClass fxClazz = FXPlugin.getClassmodel().findClass(javaProject, type); IFXProperty fxProp = fxClazz.getProperty(prop.getName()); if (fxProp != null) { completeProperty_ValueProposals(fxProp, model, context, FXGraphPackage.Literals.PROPERTY__VALUE, acceptor); } } } catch (JavaModelException e) { LOGGER.error("Failed to retrieve property value proposals", e); } } else if (prop.eContainer() instanceof MapValueProperty) { // TODO Can we provide a proposal here? } }
From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java
License:Open Source License
@Override public void completeBindValueProperty_Attribute(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { BindValueProperty b = (BindValueProperty) model; if (b.getElementReference() != null && b.getElementReference().getType() != null) { Property property = (Property) b.eContainer(); Element targetClass = (Element) property.eContainer(); Element element = b.getElementReference(); try {//from w w w . j a v a2s. c om IJavaProject javaProject = projectProvider.getJavaProject(element.eResource().getResourceSet()); IType sourceType = javaProject.findType(element.getType().getQualifiedName()); IType targetType = javaProject.findType(targetClass.getType().getQualifiedName()); IFXClass fxSourceClazz = FXPlugin.getClassmodel().findClass(javaProject, sourceType); IFXClass fxTargetClass = FXPlugin.getClassmodel().findClass(javaProject, targetType); IFXProperty targetProperty = fxTargetClass.getProperty(property.getName()); if (targetProperty instanceof IFXPrimitiveProperty) { IFXPrimitiveProperty pp = (IFXPrimitiveProperty) targetProperty; for (IFXProperty sourceProp : fxSourceClazz.getAllProperties().values()) { if (sourceProp instanceof IFXEventHandlerProperty) { continue; } boolean select = false; if (pp.getType() == Type.STRING) { select = true; } else { if (sourceProp instanceof IFXPrimitiveProperty) { IFXPrimitiveProperty sp = (IFXPrimitiveProperty) sourceProp; if (pp.getType() == Type.BOOLEAN) { select = sp.getType() == Type.BOOLEAN; } else if (sp.getType() != Type.STRING && sp.getType() != Type.BOOLEAN) { select = true; } } } if (select) { String typeName = ""; if (sourceProp instanceof IFXPrimitiveProperty) { IFXPrimitiveProperty sp = (IFXPrimitiveProperty) sourceProp; if (sp.getType() == Type.STRING) { typeName = "String"; } else { typeName = sp.getType().jvmType(); } } else if (sourceProp instanceof IFXCollectionProperty) { typeName = ((IFXCollectionProperty) sourceProp).getCollectionAsString(); } else if (sourceProp instanceof IFXEnumProperty) { typeName = ((IFXEnumProperty) sourceProp).getEnumTypeAsString(false); } else if (sourceProp instanceof IFXMapProperty) { typeName = "{}"; } else if (sourceProp instanceof IFXObjectProperty) { typeName = ((IFXObjectProperty) sourceProp).getElementTypeAsString(false); } StyledString s = new StyledString(sourceProp.getName() + " : " + typeName); s.append(" - " + sourceProp.getFXClass().getSimpleName(), StyledString.QUALIFIER_STYLER); ICompletionProposal cp = createCompletionProposal(sourceProp.getName(), s, IconKeys.getIcon(IconKeys.FIELD_KEY), getPropertiesProposalsProposals(), context.getPrefix(), context); acceptor.accept(cp); } } } } catch (JavaModelException e1) { LOGGER.error("Unable to extract java informations", e1); } } }
From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java
License:Open Source License
@Override public void completeListValueProperty_Value(EObject m, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { ListValueProperty listProp = null;/*from www. ja v a 2 s. co m*/ if (m instanceof ListValueProperty) { listProp = (ListValueProperty) m; } else if (m instanceof Element && m.eContainer() instanceof ListValueProperty) { // If at least one char is already typed listProp = (ListValueProperty) m.eContainer(); } if (listProp != null) { if (listProp.eContainer() instanceof Property) { Property property = (Property) listProp.eContainer(); if (property.eContainer() instanceof Element) { try { Element element = (Element) property.eContainer(); IJavaProject javaProject = projectProvider .getJavaProject(element.eResource().getResourceSet()); IType ownerType = javaProject.findType(element.getType().getQualifiedName()); IFXClass fxOwnerClazz = FXPlugin.getClassmodel().findClass(javaProject, ownerType); IFXProperty ownerProperty = fxOwnerClazz.getProperty(property.getName()); if (ownerProperty instanceof IFXCollectionProperty) { IFXCollectionProperty cp = (IFXCollectionProperty) ownerProperty; String type = cp.getElementType().getElementName(); if ("String".equals(type)) { ICompletionProposal p = createCompletionProposal("\"\"", new StyledString("\"<String>\""), IconKeys.getIcon(IconKeys.CLASS_KEY), context); if (p instanceof ConfigurableCompletionProposal) { ConfigurableCompletionProposal ccp = (ConfigurableCompletionProposal) p; ccp.setAdditionalProposalInfo(listProp); ccp.setHover(new HoverImpl(ownerProperty.getJavaElement())); ccp.setCursorPosition(ccp.getCursorPosition() - 1); } acceptor.accept(p); } else if ("Double".equals(type)) { ICompletionProposal p = createCompletionProposal("1.0", context); if (p instanceof ConfigurableCompletionProposal) { ConfigurableCompletionProposal ccp = (ConfigurableCompletionProposal) p; ccp.setAdditionalProposalInfo(listProp); ccp.setHover(new HoverImpl(ownerProperty.getJavaElement())); } acceptor.accept(p); } else if ("Integer".equals(type)) { ICompletionProposal p = createCompletionProposal("1", context); if (p instanceof ConfigurableCompletionProposal) { ConfigurableCompletionProposal ccp = (ConfigurableCompletionProposal) p; ccp.setAdditionalProposalInfo(listProp); ccp.setHover(new HoverImpl(ownerProperty.getJavaElement())); } acceptor.accept(p); } else if ("Boolean".equals(type)) { ICompletionProposal p = createCompletionProposal("true", context); if (p instanceof ConfigurableCompletionProposal) { ConfigurableCompletionProposal ccp = (ConfigurableCompletionProposal) p; ccp.setAdditionalProposalInfo(listProp); ccp.setHover(new HoverImpl(ownerProperty.getJavaElement())); } acceptor.accept(p); p = createCompletionProposal("false", context); if (p instanceof ConfigurableCompletionProposal) { ConfigurableCompletionProposal ccp = (ConfigurableCompletionProposal) p; ccp.setAdditionalProposalInfo(listProp); ccp.setHover(new HoverImpl(ownerProperty.getJavaElement())); } acceptor.accept(p); } else { createCollectionClassProposals(cp, listProp, context, FXGraphPackage.Literals.LIST_VALUE_PROPERTY__VALUE, acceptor); } } } catch (JavaModelException e) { LOGGER.error("Unable to autocomplete list value", e); } } } } }
From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java
License:Open Source License
@Override public void completeControllerHandledValueProperty_Methodname(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { if (!model.eResource().getContents().isEmpty()) { Model m = (Model) model.eResource().getContents().get(0); if (m.getComponentDef() != null) { if (m.getComponentDef().getController() != null) { if (model.eContainer() instanceof Property) { Property property = (Property) model.eContainer(); if (property.eContainer() instanceof Element) { try { Element element = (Element) property.eContainer(); IJavaProject javaProject = projectProvider .getJavaProject(element.eResource().getResourceSet()); IType ownerType = javaProject.findType(element.getType().getQualifiedName()); IFXClass fxOwnerClazz = FXPlugin.getClassmodel().findClass(javaProject, ownerType); IFXProperty ownerProperty = fxOwnerClazz.getProperty(property.getName()); if (ownerProperty instanceof IFXEventHandlerProperty) { IFXEventHandlerProperty p = (IFXEventHandlerProperty) ownerProperty; IType ctrlType = javaProject .findType(m.getComponentDef().getController().getQualifiedName()); IFXCtrlClass ctrlClass = FXPlugin.getClassmodel().findCtrlClass(javaProject, ctrlType); for (IFXCtrlEventMethod ctrlMethod : ctrlClass.getAllEventMethods().values()) { StyledString s = null; if (!ctrlMethod.hasArgument()) { s = new StyledString(ctrlMethod.getName() + "()"); } else { if (Util.assignable(p.getEventType(), ctrlMethod.getArgumentType())) { s = new StyledString(ctrlMethod.getName() + "(" + p.getEventTypeAsString(false) + ")"); } }// ww w .j a va2s. co m if (s != null) { s.append(" - " + ctrlClass.getSimpleName(), StyledString.QUALIFIER_STYLER); Image img = null; switch (ctrlMethod.getVisibility()) { case PUBLIC: img = IconKeys.getIcon(IconKeys.METHOD_PUBLIC_KEY); break; case PACKAGE: img = IconKeys.getIcon(IconKeys.METHOD_DEFAULT_KEY); break; case PROTECTED: img = IconKeys.getIcon(IconKeys.METHOD_PROTECTED_KEY); break; default: img = IconKeys.getIcon(IconKeys.METHOD_PRIVATE_KEY); break; } ICompletionProposal cp = createCompletionProposal(ctrlMethod.getName(), s, img, context); acceptor.accept(cp); } } } } catch (JavaModelException e) { LOGGER.error("Unable to autocomplete list value", e); } } } } } } }
From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java
License:Open Source License
@Override public void completeReferenceValueProperty_Reference(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { if (!model.eResource().getContents().isEmpty()) { Model m = (Model) model.eResource().getContents().get(0); if (m.getComponentDef() != null) { for (Define d : m.getComponentDef().getDefines()) { Element element = d.getElement(); boolean includeType = false; if (element == null) { element = d.getIncludeElement().getSource().getRootNode(); includeType = true;/*from w w w. j a v a2 s . c om*/ } IJavaProject javaProject = projectProvider.getJavaProject(element.eResource().getResourceSet()); try { IType defType = javaProject.findType(element.getType().getQualifiedName()); ReferenceValueProperty rp = (ReferenceValueProperty) model; IType targetType = null; if (rp.eContainer() instanceof Property) { Property p = (Property) rp.eContainer(); if (p.eContainer() instanceof Element) { Element e = (Element) p.eContainer(); IType ownerType = javaProject.findType(e.getType().getQualifiedName()); IFXClass ownerClass = FXPlugin.getClassmodel().findClass(javaProject, ownerType); IFXProperty ownerProp = ownerClass.getProperty(p.getName()); if (ownerProp instanceof IFXObjectProperty) { targetType = ((IFXObjectProperty) ownerProp).getElementType(); } } } else if (rp.eContainer() instanceof StaticCallValueProperty) { LOGGER.warn("Unable to extract type for " + rp.eContainer()); } else if (rp.eContainer() instanceof ListValueProperty) { ListValueProperty lvp = (ListValueProperty) rp.eContainer(); if (lvp.eContainer() instanceof Property) { Property p = (Property) lvp.eContainer(); if (p.eContainer() instanceof Element) { Element e = (Element) p.eContainer(); IType ownerType = javaProject.findType(e.getType().getQualifiedName()); IFXClass ownerClass = FXPlugin.getClassmodel().findClass(javaProject, ownerType); IFXProperty ownerProp = ownerClass.getProperty(p.getName()); if (ownerProp instanceof IFXCollectionProperty) { targetType = ((IFXCollectionProperty) ownerProp).getElementType(); } } } else { LOGGER.warn("Unable to extract type for " + rp.eContainer()); } } if (targetType != null) { if (Util.assignable(defType, targetType)) { StyledString s = new StyledString( includeType ? d.getIncludeElement().getName() : element.getName()); s.append(" - " + defType.getElementName(), StyledString.QUALIFIER_STYLER); acceptor.accept(createCompletionProposal( includeType ? d.getIncludeElement().getName() : element.getName(), s, IconKeys.getIcon(IconKeys.CLASS_KEY), context)); } } } catch (JavaModelException e) { LOGGER.error("Unable to extract define type", e); } } } } }
From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java
License:Open Source License
@Override public void completeStaticCallValueProperty_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { StaticCallValueProperty staticProperty = (StaticCallValueProperty) model; try {/*from w w w. java2 s . c o m*/ IJavaProject javaProject = projectProvider.getJavaProject(staticProperty.eResource().getResourceSet()); IType type = javaProject.findType(staticProperty.getType().getQualifiedName()); if (type != null) { IFXClass fxClazz = FXPlugin.getClassmodel().findClass(javaProject, type); if (fxClazz != null) { Map<String, IFXProperty> map = fxClazz.getAllStaticProperties(); for (IFXProperty p : map.values()) { completeElement_PropertiesProposals(p, model, context, FXGraphPackage.Literals.STATIC_CALL_VALUE_PROPERTY__NAME, acceptor); } } } } catch (JavaModelException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java
License:Open Source License
@Override public void completeStaticCallValueProperty_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { StaticCallValueProperty staticProperty = null; if (model instanceof Element) { staticProperty = (StaticCallValueProperty) model.eContainer(); } else {//from www.j ava 2 s . c om staticProperty = (StaticCallValueProperty) model; } try { IJavaProject javaProject = projectProvider.getJavaProject(staticProperty.eResource().getResourceSet()); IType type = javaProject.findType(staticProperty.getType().getQualifiedName()); if (type != null) { IFXClass fxClazz = FXPlugin.getClassmodel().findClass(javaProject, type); if (fxClazz != null) { IFXProperty fxProp = fxClazz.getStaticProperty(staticProperty.getName()); if (fxProp != null) { completeProperty_ValueProposals(fxProp, model, context, FXGraphPackage.Literals.STATIC_CALL_VALUE_PROPERTY__VALUE, acceptor); } } } } catch (JavaModelException e) { // TODO Auto-generated catch block e.printStackTrace(); } }