Example usage for org.eclipse.jdt.core IJavaProject findType

List of usage examples for org.eclipse.jdt.core IJavaProject findType

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaProject findType.

Prototype

IType findType(String fullyQualifiedName) throws JavaModelException;

Source Link

Document

Returns the first type (excluding secondary types) found following this project's classpath with the given fully qualified name or null if none is found.

Usage

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();
    }
}