Example usage for org.eclipse.jdt.core CompletionProposal FIELD_REF

List of usage examples for org.eclipse.jdt.core CompletionProposal FIELD_REF

Introduction

In this page you can find the example usage for org.eclipse.jdt.core CompletionProposal FIELD_REF.

Prototype

int FIELD_REF

To view the source code for org.eclipse.jdt.core CompletionProposal FIELD_REF.

Click Source Link

Document

Completion is a reference to a field.

Usage

From source file:at.bestsolution.fxide.jdt.editor.JDTJavaDocSupport.java

License:Open Source License

public static HtmlString toHtml(CompletionProposal proposal, IJavaProject jProject) throws JavaModelException {
    String content = null;//from w  ww. ja  va  2 s  .  co  m
    if (proposal.getKind() == org.eclipse.jdt.core.CompletionProposal.FIELD_REF) {
        IType jType = getOwnerType(proposal, jProject);
        if (jType != null) {
            IField field = jType.getField(String.valueOf(proposal.getName()));
            if (field != null && field.exists()) {
                try {
                    content = JavadocContentAccess2.getHTMLContent(field, true);
                } catch (CoreException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    } else if (proposal.getKind() == org.eclipse.jdt.core.CompletionProposal.METHOD_REF) {
        IType jType = getOwnerType(proposal, jProject);
        if (jType != null) {
            MethodUtil m = new MethodUtil(proposal, jType);
            IMethod method = m.resolve();
            if (method != null && method.exists()) {
                try {
                    content = JavadocContentAccess2.getHTMLContent(method, true);
                    if (content != null) {
                        content = content.replace("<pre><code>",
                                "<pre class=\"prettyprint\"><code class=\"language-java\">");
                    }
                } catch (CoreException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

    if (content != null) {
        return new HtmlString("<html><header><style>"
                + ("theme.dark".equals(themeMgr.getCurrentTheme().getId()) ? darkCSS : defaultCSS)
                + "</style><script>" + prettifyJS + "\n</script></header><body onload='PR.prettyPrint();'>"
                + content + "</body></html>");
    }

    return null;
}

From source file:at.bestsolution.javafx.ide.jdt.internal.JavaEditor.java

License:Open Source License

@Inject
public JavaEditor(BorderPane pane, IEditorInput input) {
    editor = new SourceEditor();
    pane.setCenter(editor);/*ww  w. j a  va 2  s .  c om*/

    IResourceFileInput fsInput = (IResourceFileInput) input;
    try {
        unit = ((ICompilationUnit) JavaCore.create(fsInput.getFile()))
                .getWorkingCopy(new FXWorkingCopyOwner(new IProblemRequestor() {
                    private List<ProblemMarker> l = new ArrayList<>();

                    @Override
                    public boolean isActive() {
                        // TODO Auto-generated method stub
                        return true;
                    }

                    @Override
                    public void endReporting() {
                        setMarkers(l);
                    }

                    @Override
                    public void beginReporting() {
                        l.clear();
                    }

                    @Override
                    public void acceptProblem(IProblem problem) {
                        int linenumber = problem.getSourceLineNumber();
                        int startCol = problem.getSourceStart();
                        int endCol = problem.getSourceEnd();

                        if (endCol == startCol) {
                            endCol++;
                        }

                        String description = problem.getMessage();
                        ProblemMarker marker = new ProblemMarker(
                                problem.isError() ? at.bestsolution.javafx.ide.editor.ProblemMarker.Type.ERROR
                                        : at.bestsolution.javafx.ide.editor.ProblemMarker.Type.WARNING,
                                linenumber, startCol, endCol, description);
                        l.add(marker);
                    }
                }), new NullProgressMonitor());
    } catch (JavaModelException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    final Document doc = createDocument(unit);
    editor.setDocument(doc);
    editor.setContentProposalComputer(new ContentProposalComputer() {

        @Override
        public List<Proposal> computeProposals(String line, String prefix, int offset) {
            final List<Proposal> l = new ArrayList<ContentProposalComputer.Proposal>();

            try {
                unit.codeComplete(offset, new CompletionRequestor() {

                    @Override
                    public void accept(CompletionProposal proposal) {
                        String completion = new String(proposal.getCompletion());

                        if (!Flags.isPublic(proposal.getFlags())) {
                            return;
                        }

                        if (proposal.getKind() == CompletionProposal.METHOD_REF) {
                            String sig = Signature.toString(new String(proposal.getSignature()),
                                    new String(proposal.getName()), null, false, false);
                            StyledString s = new StyledString(sig + " : " + Signature.getSimpleName(Signature
                                    .toString(Signature.getReturnType(new String(proposal.getSignature())))));
                            s.appendString(
                                    " - " + Signature.getSignatureSimpleName(
                                            new String(proposal.getDeclarationSignature())),
                                    Style.colored("#AAAAAA"));

                            l.add(new Proposal(Type.METHOD, completion, s));
                        } else if (proposal.getKind() == CompletionProposal.FIELD_REF) {
                            StyledString s = new StyledString(
                                    completion + " : "
                                            + (proposal.getSignature() != null
                                                    ? Signature.getSignatureSimpleName(
                                                            new String(proposal.getSignature()))
                                                    : "<unknown>"));
                            s.appendString(
                                    " - " + (proposal.getDeclarationSignature() != null
                                            ? Signature.getSignatureSimpleName(
                                                    new String(proposal.getDeclarationSignature()))
                                            : "<unknown>"),
                                    Style.colored("#AAAAAA"));
                            l.add(new Proposal(Type.FIELD, completion, s));
                        } else if (proposal.getKind() == CompletionProposal.TYPE_REF) {
                            if (proposal.getAccessibility() == IAccessRule.K_NON_ACCESSIBLE) {
                                return;
                            }

                            StyledString s = new StyledString(
                                    Signature.getSignatureSimpleName(new String(proposal.getSignature())));
                            s.appendString(" - " + new String(proposal.getDeclarationSignature()),
                                    Style.colored("#AAAAAA"));
                            l.add(new Proposal(Type.TYPE, new String(proposal.getCompletion()), s));
                        } else {
                            System.err.println(proposal);
                        }
                    }
                });
            } catch (JavaModelException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return l;
        }

    });
    editor.setSaveCallback(new Runnable() {

        @Override
        public void run() {
            try {
                unit.commitWorkingCopy(true, null);
            } catch (JavaModelException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });

    try {
        unit.reconcile(ICompilationUnit.NO_AST, true, null, null);
    } catch (JavaModelException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

From source file:com.google.gwt.eclipse.core.editors.java.contentassist.JsniCompletionProposal.java

License:Open Source License

/**
 * Return proposals only for references to a package, type, field, method or
 * constructor (and nothing else).// w w w .  jav  a2s . co  m
 */
public static IJavaCompletionProposal create(IJavaCompletionProposal jdtProposal,
        CompletionProposal wrappedProposal, IJavaProject javaProject, int replaceOffset, int replaceLength) {
    switch (wrappedProposal.getKind()) {
    case CompletionProposal.PACKAGE_REF:
    case CompletionProposal.TYPE_REF:
    case CompletionProposal.FIELD_REF:
    case CompletionProposal.METHOD_REF:
        return new JsniCompletionProposal(jdtProposal, wrappedProposal, javaProject, replaceOffset,
                replaceLength);
    default:
        return null;
    }
}

From source file:com.google.gwt.eclipse.core.editors.java.contentassist.JsniCompletionProposal.java

License:Open Source License

private String createReplaceString() {
    switch (wrappedProposal.getKind()) {
    case CompletionProposal.PACKAGE_REF:
        return computePackageCompletion();
    case CompletionProposal.TYPE_REF:
        return computeTypeCompletion();
    case CompletionProposal.FIELD_REF:
        return computeFieldCompletion();
    case CompletionProposal.METHOD_REF:
        if (wrappedProposal.isConstructor()) {
            return computeCtorCompletion();
        } else {/* w  w  w .ja  va2 s  . c o  m*/
            return computeMethodCompletion();
        }
    default:
        return "";
    }
}

From source file:com.google.gwt.eclipse.core.editors.java.contentassist.JsniCompletionProposalCollector.java

License:Open Source License

public static CompletionProposalCollector createPackageAndTypeProposalCollector(ICompilationUnit cu,
        int refOffset, int refLength) {
    CompletionProposalCollector collector = new JsniCompletionProposalCollector(cu, refOffset, refLength);
    collector.setIgnored(CompletionProposal.METHOD_REF, true);
    collector.setIgnored(CompletionProposal.FIELD_REF, true);
    return collector;
}

From source file:com.google.gwt.eclipse.core.editors.java.contentassist.JsniCompletionProposalCollector.java

License:Open Source License

@Override
protected IJavaCompletionProposal createJavaCompletionProposal(CompletionProposal proposal) {
    IJavaCompletionProposal defaultProposal = super.createJavaCompletionProposal(proposal);

    // For members of inner classes, there's a bug in the JDT which results in
    // the declaration signature of the proposal missing the outer classes, so
    // we have to manually set the signature instead.
    if (proposal.getKind() == CompletionProposal.METHOD_REF
            || proposal.getKind() == CompletionProposal.FIELD_REF) {
        char[] typeSignature = Signature.createTypeSignature(qualifiedTypeName, true).toCharArray();
        proposal.setDeclarationSignature(typeSignature);
    }//from  w w  w  . j a v a2s.  c  om

    return JsniCompletionProposal.create(defaultProposal, proposal, getCompilationUnit().getJavaProject(),
            refOffset, refLength);
}

From source file:com.google.gwt.eclipse.core.uibinder.contentassist.computers.ProposalComputerFactory.java

License:Open Source License

/**
 * Creates a proposal computer for autocompleting the java classes for the
 * <ui:import field="___" />/*from  ww  w.  j  av a 2s  .  com*/
 */
public static IProposalComputer newUiImportFieldProposalComputer(ContentAssistRequest contentAssistRequest,
        IJavaProject javaProject, String packageName) {

    IDOMAttr attribute = XmlContentAssistUtilities.getAttribute(contentAssistRequest);
    if (attribute == null || attribute.getOwnerElement() == null) {
        return null;
    }

    // Ensure we are autocompleting an 'ui:import' element attribute
    if (!UiBinderConstants.UI_BINDER_IMPORT_ELEMENT_NAME.equals(attribute.getOwnerElement().getLocalName())) {
        return null;
    }

    // Ensure we are autocompleting the 'field' attribute
    if (!attribute.equals(UiBinderXmlModelUtilities.getFieldAttribute(attribute.getOwnerElement()))) {
        return null;
    }

    String attrValue = XmlContentAssistUtilities.getAttributeValueUsingMatchString(contentAssistRequest);

    CodeCompleteProposalComputer ccpc = new CodeCompleteProposalComputer(
            new int[] { CompletionProposal.TYPE_REF, CompletionProposal.PACKAGE_REF,
                    CompletionProposal.FIELD_IMPORT, CompletionProposal.FIELD_REF },
            javaProject, attrValue, XmlContentAssistUtilities.getAttributeValueOffset(contentAssistRequest),
            attrValue.length(), packageName, true);

    return ccpc;
}

From source file:com.google.gwt.eclipse.core.uibinder.contentassist.computers.ProposalGeneratingCompletionRequestor.java

License:Open Source License

protected ICompletionProposal createProposal(CompletionProposal javaProposal) {
    String completion = String.valueOf(javaProposal.getCompletion());
    int kind = javaProposal.getKind();
    if (kind == CompletionProposal.TYPE_REF) {
        // Make sure it is fully qualified
        completion = JavaContentAssistUtilities.getFullyQualifiedTypeName(javaProposal);
    }//  ww w. j  a va2s  .  c om

    if (forceFullyQualifiedFieldNames
            && (kind == CompletionProposal.FIELD_IMPORT || kind == CompletionProposal.FIELD_REF)) {
        char[] decSig = javaProposal.getDeclarationSignature();
        if (decSig != null && decSig.length > 2) {
            // declaration signatures for objects are like Ljava.lang.String;, so lop off first
            // and last chars
            completion = new String(decSig, 1, decSig.length - 2) + "."
                    + new String(javaProposal.getCompletion());
            completion = completion.replace('$', '.');
        }
    }

    ICompletionProposal jdtCompletionProposal = JavaContentAssistUtilities
            .getJavaCompletionProposal(javaProposal, context, javaProject);
    return ReplacementCompletionProposal.fromExistingCompletionProposal(completion, replaceOffset,
            replaceLength, jdtCompletionProposal);
}

From source file:com.google.gwt.eclipse.core.uibinder.contentassist.computers.ProposalGeneratingCompletionRequestor.java

License:Open Source License

private void ignoreAll() {
    int[] ignoredKinds = new int[] { CompletionProposal.ANONYMOUS_CLASS_DECLARATION,
            CompletionProposal.FIELD_REF, CompletionProposal.KEYWORD, CompletionProposal.LABEL_REF,
            CompletionProposal.LOCAL_VARIABLE_REF, CompletionProposal.METHOD_REF,
            CompletionProposal.METHOD_DECLARATION, CompletionProposal.PACKAGE_REF, CompletionProposal.TYPE_REF,
            CompletionProposal.VARIABLE_DECLARATION, CompletionProposal.POTENTIAL_METHOD_DECLARATION,
            CompletionProposal.METHOD_NAME_REFERENCE, CompletionProposal.ANNOTATION_ATTRIBUTE_REF,
            CompletionProposal.JAVADOC_FIELD_REF, CompletionProposal.JAVADOC_METHOD_REF,
            CompletionProposal.JAVADOC_TYPE_REF, CompletionProposal.JAVADOC_VALUE_REF,
            CompletionProposal.JAVADOC_PARAM_REF, CompletionProposal.JAVADOC_BLOCK_TAG,
            CompletionProposal.JAVADOC_INLINE_TAG, CompletionProposal.FIELD_IMPORT,
            CompletionProposal.METHOD_IMPORT, CompletionProposal.TYPE_IMPORT };

    for (int kind : ignoredKinds) {
        setIgnored(kind, true);//from  w  ww  .j a va 2s . co  m
    }
}

From source file:de.ovgu.featureide.core.CorePlugin.java

License:Open Source License

public List<CompletionProposal> extendedModules_getCompl(IFeatureProject featureProject, String featureName) {
    final LinkedList<CompletionProposal> ret_List = new LinkedList<CompletionProposal>();
    final ProjectSignatures signatures = featureProject.getProjectSignatures();

    if (signatures != null) {
        SignatureIterator it = signatures.iterator();
        it.addFilter(new ContextFilter(featureName, signatures));

        while (it.hasNext()) {
            AbstractSignature curMember = it.next();
            CompletionProposal pr = null;

            if (curMember instanceof AbstractMethodSignature) {
                pr = CompletionProposal.create(CompletionProposal.METHOD_REF, 0);
                final AbstractMethodSignature methSig = (AbstractMethodSignature) curMember;
                final List<String> sig = methSig.getParameterTypes();

                //TODO differentiate between possible types
                char[][] c = new char[][] { {} };
                if (sig.size() > 0) {
                    c = new char[sig.size()][];
                    int i = 0;
                    for (String parameterType : sig) {
                        String parameterTypeToChar = "L" + parameterType + ";";
                        c[i++] = parameterTypeToChar.toCharArray();
                    }//  ww  w  . j  a v a  2s  .  com
                }

                String returnType = "L" + methSig.getReturnType() + ";";
                pr.setSignature(Signature.createMethodSignature(c, returnType.toCharArray()));
                String declType = "L" + methSig.getFullName().replaceAll("." + methSig.getName(), "") + ";";
                pr.setDeclarationSignature(declType.toCharArray());
            } else if (curMember instanceof AbstractFieldSignature) {
                pr = CompletionProposal.create(CompletionProposal.FIELD_REF, 0);
            } else if (curMember instanceof AbstractClassSignature) {
                pr = CompletionProposal.create(CompletionProposal.TYPE_REF, 0);
                pr.setSignature(Signature.createTypeSignature(curMember.getFullName(), true).toCharArray());
            }

            if (pr != null) {
                pr.setFlags(getFlagOfSignature(curMember));
                pr.setName(curMember.getName().toCharArray());
                pr.setCompletion(curMember.getName().toCharArray());

                ret_List.add(pr);
            }
        }
    }
    return ret_List;
}