Search in sources :

Example 31 with Document

use of javax.swing.text.Document in project cayenne by apache.

the class LineNumberedBorder method paintBorder.

public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
    java.awt.Rectangle clip = g.getClipBounds();
    FontMetrics fm = g.getFontMetrics();
    int fontHeight = fm.getHeight();
    int ybaseline = y + fm.getAscent();
    int startingLineNumber = (clip.y / fontHeight) + 1;
    if (ybaseline < clip.y) {
        ybaseline = y + startingLineNumber * fontHeight - (fontHeight - fm.getAscent());
    }
    int yend = ybaseline + height;
    if (yend > (y + height)) {
        yend = y + height;
    }
    int lnxstart = x;
    int widhtBorder = getLineNumberWidth() - 2;
    g.setColor(new Color(255, 255, 224));
    g.fillRect(lnxstart, 0, lnxstart + widhtBorder, yend);
    g.setColor(new Color(214, 214, 214));
    g.drawRect(lnxstart - 1, -1, lnxstart + widhtBorder, yend + 1);
    int end = pane.getEndPositionInDocument();
    Document doc = pane.getDocument();
    int endline = doc.getDefaultRootElement().getElementIndex(end) + 1;
    while (startingLineNumber <= endline) {
        g.setColor(Color.gray);
        g.drawString(startingLineNumber + " ", lnxstart + 1, ybaseline);
        ybaseline += fontHeight;
        startingLineNumber++;
    }
    setEtalon(startingLineNumber - 1);
}
Also used : FontMetrics(java.awt.FontMetrics) Color(java.awt.Color) Document(javax.swing.text.Document)

Example 32 with Document

use of javax.swing.text.Document in project knime-core by knime.

the class JavaSnippet method getCompilationUnits.

@Override
public Iterable<? extends JavaFileObject> getCompilationUnits() throws IOException {
    if (m_snippet == null || m_snippetFile == null || !m_snippetFile.exists()) {
        m_snippetFile = new File(m_tempClassPathDir, "JSnippet.java");
        // Note: this is a workaround for openWriter() not taking charset into account
        m_snippet = new EclipseFileObject("JSnippet", m_snippetFile.toURI(), Kind.SOURCE, StandardCharsets.UTF_8);
        m_dirty = true;
    }
    if (m_dirty) {
        try (final Writer out = new BufferedWriter(new OutputStreamWriter(m_snippet.openOutputStream(), StandardCharsets.UTF_8))) {
            try {
                final Document doc = getDocument();
                out.write(doc.getText(0, doc.getLength()));
                m_dirty = false;
            } catch (BadLocationException e) {
                // this should never happen.
                throw new IllegalStateException(e);
            }
        }
    }
    return Collections.singletonList(m_snippet);
}
Also used : EclipseFileObject(org.eclipse.jdt.internal.compiler.tool.EclipseFileObject) OutputStreamWriter(java.io.OutputStreamWriter) JavaSnippetDocument(org.knime.base.node.jsnippet.guarded.JavaSnippetDocument) GuardedDocument(org.knime.base.node.jsnippet.guarded.GuardedDocument) Document(javax.swing.text.Document) File(java.io.File) BundleFile(org.eclipse.osgi.storage.bundlefile.BundleFile) BufferedWriter(java.io.BufferedWriter) StringWriter(java.io.StringWriter) Writer(java.io.Writer) OutputStreamWriter(java.io.OutputStreamWriter) BadLocationException(javax.swing.text.BadLocationException) BufferedWriter(java.io.BufferedWriter)

Example 33 with Document

use of javax.swing.text.Document in project enclojure by EricThorsen.

the class ClojureCodeCompletion_Provider method createTask.

public CompletionTask createTask(int i, final JTextComponent jTextComponent) {
    // try {
    // RT.var("clojure.core", "require").invoke(Symbol.create("test.CodeCompletion.PW.cljcompletion"));
    // } catch (Throwable ex) {
    // Exceptions.printStackTrace(ex);
    // }
    final int ctype = i;
    if (i != CompletionProvider.COMPLETION_QUERY_TYPE && i != CompletionProvider.COMPLETION_ALL_QUERY_TYPE)
        return null;
    return new AsyncCompletionTask(new AsyncCompletionQuery() {

        protected void query(final CompletionResultSet completionResultSet, final Document document, final int caretOffset) {
            final StyledDocument bDoc = (StyledDocument) document;
            int startOffset = -1;
            class Operation implements Runnable {

                boolean showCompletion = false;

                boolean isDotPressed = false;

                String filter = null;

                int startOffset = caretOffset;

                String nameSpace = null;

                String lastAtom = null;

                public void run() {
                    nameSpace = null;
                    lastAtom = null;
                    final Iterator it;
                    final String ret;
                    try {
                        final int lineStartOffset = getRowFirstNonWhite(bDoc, caretOffset);
                        String line;
                        if (caretOffset > lineStartOffset)
                            line = bDoc.getText(lineStartOffset, caretOffset - lineStartOffset);
                        else
                            line = "";
                        int begLine = indexOfSpace(line);
                        String filter = line.substring(begLine);
                        isDotPressed = dotPressed(filter);
                        int layout = getLayout(filter, isDotPressed);
                        begLine = lineStartOffset + begLine;
                        Hashtable processInfo = new Hashtable();
                        processInfo.put("layout", layout);
                        processInfo.put("filter", filter);
                        processInfo.put("begLine", begLine);
                        processInfo.put("isClojure", isClojure);
                        it = processLayout(processInfo);
                        filter = (String) processInfo.get("filter");
                        begLine = (Integer) processInfo.get("begLine");
                        if (it != null) {
                            handleMaps(it, completionResultSet, processInfo, filter, begLine);
                        // 
                        }
                        if ((layout != backSlashAfterParen && layout != backSlashNoParen) && !isDotPressed) {
                            // now add hippie completion results
                            processInfo.put("isClojure", true);
                            processInfo.put("priority", 3);
                            processInfo.put("isMethodOrFunction", true);
                            processInfo.put("source", "Hippie Completion");
                            processInfo.put("isNamespaceOrPackage", false);
                            processInfo.put("isConstructor", false);
                            ArrayList<String> l = getAllHippieMatches(jTextComponent);
                            if (l.size() > 0) {
                                Iterator lit;
                                lit = l.listIterator();
                                while (lit.hasNext()) {
                                    final String listentry = (String) lit.next();
                                    completionResultSet.addItem(new ClojureCodeCompletionItem(listentry, begLine, caretOffset, processInfo));
                                }
                            }
                        }
                        completionResultSet.setAnchorOffset(lineStartOffset);
                        completionResultSet.finish();
                    } catch (BadLocationException ex) {
                        LOG.log(Level.FINEST, ex.getMessage());
                    }
                }

                private String handleNullString(String val) {
                    if (val == null)
                        return "";
                    else
                        return val;
                }

                private Integer handleNullInteger(Integer val) {
                    if (val == null)
                        return 0;
                    else
                        return val;
                }

                private Boolean handleNullBoolean(Boolean val) {
                    if (val == null)
                        return false;
                    else
                        return val;
                }

                private void handleMaps(Iterator iter, CompletionResultSet c, Hashtable pInfo, String filter, int begLine) {
                    Boolean blnCurrentListEmpty = true;
                    if (CurrentList.size() > 0)
                        blnCurrentListEmpty = false;
                    while (iter.hasNext()) {
                        final PersistentArrayMap entry = (PersistentArrayMap) iter.next();
                        if ((blnCurrentListEmpty) && (!gettingMethods))
                            CurrentList.add(entry);
                        String displaystr = (String) entry.get(Keyword.intern(Symbol.create("display")));
                        String fullclassstr = (String) entry.get(Keyword.intern(Symbol.create("fullclassname")));
                        Boolean isClojure = (Boolean) entry.get(Keyword.intern(Symbol.create("isclojure")));
                        Boolean isNamespaceOrPackage = (Boolean) entry.get(Keyword.intern(Symbol.create("isnamespaceorpkg")));
                        Boolean isMethodOrFunction = (Boolean) entry.get(Keyword.intern(Symbol.create("ismethodorfunction")));
                        Boolean isConstructor = (Boolean) entry.get(Keyword.intern(Symbol.create("isconstructor")));
                        String namespace = (String) entry.get(Keyword.intern(Symbol.create("namespace")));
                        String method = (String) entry.get(Keyword.intern(Symbol.create("method")));
                        Integer priority = (Integer) entry.get(Keyword.intern(Symbol.create("priority")));
                        pInfo.put("display", handleNullString(displaystr));
                        pInfo.put("fullclassname", handleNullString(fullclassstr));
                        pInfo.put("isClojure", isClojure);
                        pInfo.put("isNamespaceOrPackage", isNamespaceOrPackage);
                        pInfo.put("isMethodOrFunction", isMethodOrFunction);
                        pInfo.put("namespace", handleNullString(namespace));
                        pInfo.put("method", handleNullString(method));
                        pInfo.put("priority", handleNullInteger(priority));
                        pInfo.put("isConstructor", handleNullBoolean(isConstructor));
                        if (isClojure)
                            pInfo.put("source", "Clojure");
                        else
                            pInfo.put("source", "Java");
                        String origFilter = (String) pInfo.get("origFilter");
                        int layout = (Integer) pInfo.get("layout");
                        if (addFilter) {
                            if (// if this is a java method
                            isMethodOrFunction && (!isClojure)) {
                                if ((filter != null) && (displaystr.startsWith(filter.trim())))
                                    completionResultSet.addItem(new ClojureCodeCompletionItem(displaystr, begLine, caretOffset, pInfo));
                            } else {
                                if (layout != backSlashAfterParen && layout != backSlashNoParen) {
                                    if (isNamespaceOrPackage) {
                                        if ((filter != null) && (displaystr.contains(origFilter.trim())))
                                            completionResultSet.addItem(new ClojureCodeCompletionItem(displaystr, begLine, caretOffset, pInfo));
                                    } else {
                                        if ((filter != null) && (displaystr.contains(filter.trim())))
                                            completionResultSet.addItem(new ClojureCodeCompletionItem(displaystr, begLine, caretOffset, pInfo));
                                    }
                                } else {
                                    if ((filter != null) && (displaystr.startsWith(filter.trim())))
                                        completionResultSet.addItem(new ClojureCodeCompletionItem(displaystr, begLine, caretOffset, pInfo));
                                }
                            }
                        } else
                            completionResultSet.addItem(new ClojureCodeCompletionItem(displaystr, begLine, caretOffset, pInfo));
                    }
                }

                private int getLayout(String filter, boolean isDotPressed) {
                    try {
                        if (filter.startsWith("(")) {
                            filter = filter.substring(1);
                            if (backSlashPressed(filter)) {
                                if ((filter != null) && (filter.trim().length() > 0))
                                    return backSlashAfterParen;
                                else
                                    return -1;
                            } else {
                                if (isDotPressed && (filter != null) && (filter.trim().length() > 0) && Character.isUpperCase(filter.trim().charAt(0))) {
                                    return UppercaseAfterParenWithDot;
                                } else {
                                    if (isDotPressed && (filter != null) && (filter.trim().length() > 0) && (filter.trim().charAt(0) == '.')) {
                                        // get all java methods available
                                        return FirstDotAfterParen;
                                    } else {
                                        if (isDotPressed && (filter != null) && (filter.trim().length() > 0) && Character.isLowerCase(filter.trim().charAt((0))))
                                            return LowercaseAfterParenWithDot;
                                        else {
                                            if ((filter != null) && (filter.trim().length() > 0) && Character.isUpperCase(filter.trim().charAt((0))))
                                                return UppercaseAfterParen;
                                            else
                                                // lowercase
                                                return LowercaseAfterParen;
                                        }
                                    }
                                }
                            }
                        } else // No Paren
                        {
                            if (backSlashPressed(filter)) {
                                if ((filter != null) && (filter.trim().length() > 0))
                                    return backSlashNoParen;
                                else
                                    return -1;
                            } else {
                                if (isDotPressed && (filter != null) && (filter.trim().length() > 0) && Character.isUpperCase(filter.trim().charAt(0))) {
                                    return UppercaseNoParenWithDot;
                                } else {
                                    if (isDotPressed && (filter != null) && (filter.trim().length() > 0) && (filter.trim().charAt(0) == '.')) {
                                        return FirstDotNoParen;
                                    } else {
                                        if (isDotPressed && (filter != null) && (filter.trim().length() > 0) && Character.isLowerCase(filter.trim().charAt((0))))
                                            return LowercaseNoParenWithDot;
                                        else {
                                            if ((filter != null) && (filter.trim().length() > 0) && Character.isUpperCase(filter.trim().charAt((0))))
                                                return UppercaseNoParen;
                                            else
                                                // lowercase
                                                return LowercaseNoParen;
                                        }
                                    }
                                }
                            }
                        }
                    } catch (Exception ex) {
                        Exceptions.printStackTrace(ex);
                    }
                    return -1;
                }

                private Iterator processLayout(Hashtable processInfo) {
                    // private static final int LowercaseAfterParen = 0;
                    // private static final int UppercaseAfterParen = 1;
                    // private static final int LowercaseAfterParenWithDot = 2;
                    // private static final int UppercaseAfterParenWithDot = 3;
                    // private static final int LowercaseNoParen = 4;
                    // private static final int UppercaseNoParen = 5;
                    // private static final int LowercaseNoParenWithDot = 6;
                    // private static final int UppercaseNoParenWithDot = 7;
                    // private static final int FirstDotAfterParen = 8;
                    // private static final int FirstDotNoParen = 9;
                    int layout = (Integer) processInfo.get("layout");
                    String filter = (String) processInfo.get("filter");
                    String begFilter;
                    String origFilter = "";
                    int begLine = (Integer) processInfo.get("begLine");
                    int dotpos;
                    Iterator iter = null;
                    try {
                        filter = filter.trim();
                        switch(layout) {
                            case LowercaseAfterParen:
                                // remove the paranthesis
                                filter = filter.substring(1);
                                origFilter = filter;
                                addFilter = true;
                                iter = getResultsForScenario2(filter);
                                begLine = begLine + 1;
                                break;
                            case UppercaseAfterParen:
                                // remove the paranthesis
                                filter = filter.substring(1);
                                origFilter = filter;
                                addFilter = true;
                                iter = getResultsForScenario2(filter);
                                begLine = begLine + 1;
                                break;
                            case LowercaseAfterParenWithDot:
                                // remove the paranthesis
                                filter = filter.substring(1);
                                origFilter = filter;
                                dotpos = filter.lastIndexOf(".");
                                begFilter = filter.substring(0, dotpos);
                                addFilter = true;
                                // iter=getResultsForScenario1(getClsForFilter(begFilter),begFilter + ".");  //check java classes
                                // check java classes
                                iter = getResultsForScenario1(getClsForFilter(begFilter), origFilter);
                                // iter=getAllClojureNamespaces1(origFilter);
                                filter = filter.substring(dotpos + 1);
                                // filter=origFilter;
                                begLine = begLine + 1;
                                break;
                            case UppercaseAfterParenWithDot:
                                // remove the paranthesis
                                filter = filter.substring(1);
                                origFilter = filter;
                                dotpos = filter.lastIndexOf(".");
                                begFilter = filter.substring(0, dotpos);
                                addFilter = true;
                                // iter=getResultsForScenario1(getClsForFilter(begFilter),begFilter + ".");  //check java classes
                                // check java classes
                                iter = getResultsForScenario1(getClsForFilter(begFilter), origFilter);
                                filter = filter.substring(dotpos + 1);
                                // filter=origFilter;
                                begLine = begLine + 1;
                                break;
                            case backSlashAfterParen:
                                // remove the paranthesis
                                filter = filter.substring(1);
                                origFilter = filter;
                                dotpos = filter.lastIndexOf("/");
                                begFilter = filter.substring(0, dotpos);
                                addFilter = true;
                                iter = getResultsForScenario3(getClsForFilter(begFilter), begFilter);
                                filter = filter.substring(dotpos + 1);
                                begLine = begLine + 1;
                                break;
                            case FirstDotAfterParen:
                                // remove the paranthesis
                                filter = filter.substring(1);
                                origFilter = filter;
                                addFilter = true;
                                if (filter.equalsIgnoreCase("."))
                                    filter = "";
                                else {
                                    dotpos = filter.lastIndexOf(".");
                                    filter = filter.substring(dotpos + 1);
                                }
                                iter = getResultsForScenario4();
                                begLine = begLine + 2;
                                break;
                            case UppercaseNoParen:
                                origFilter = filter;
                                addFilter = true;
                                iter = getResultsForScenario2(filter);
                                break;
                            case UppercaseNoParenWithDot:
                                origFilter = filter;
                                dotpos = filter.lastIndexOf(".");
                                begFilter = filter.substring(0, dotpos);
                                addFilter = true;
                                // iter=getResultsForScenario1(getClsForFilter(begFilter),begFilter + ".");  //check java classes
                                // check java classes
                                iter = getResultsForScenario1(getClsForFilter(begFilter), origFilter);
                                filter = filter.substring(dotpos + 1);
                                // filter=origFilter;
                                break;
                            case FirstDotNoParen:
                                origFilter = filter;
                                addFilter = true;
                                if (filter.equalsIgnoreCase("."))
                                    filter = "";
                                else {
                                    dotpos = filter.lastIndexOf(".");
                                    filter = filter.substring(dotpos + 1);
                                }
                                iter = getResultsForScenario4();
                                begLine = begLine + 1;
                                break;
                            case LowercaseNoParenWithDot:
                                origFilter = filter;
                                dotpos = filter.lastIndexOf(".");
                                begFilter = filter.substring(0, dotpos);
                                addFilter = true;
                                // iter=getResultsForScenario1(getClsForFilter(begFilter),begFilter + ".");  //check java classes
                                // check java classes
                                iter = getResultsForScenario1(getClsForFilter(begFilter), origFilter);
                                filter = filter.substring(dotpos + 1);
                                // filter=origFilter;
                                break;
                            case LowercaseNoParen:
                                origFilter = filter;
                                addFilter = true;
                                iter = getResultsForScenario2(filter);
                                break;
                            case backSlashNoParen:
                                origFilter = filter;
                                dotpos = filter.lastIndexOf("/");
                                begFilter = filter.substring(0, dotpos);
                                addFilter = true;
                                iter = getResultsForScenario3(getClsForFilter(begFilter), begFilter);
                                filter = filter.substring(dotpos + 1);
                                break;
                        }
                        processInfo.put("layout", layout);
                        processInfo.put("filter", filter);
                        processInfo.put("begLine", begLine);
                        processInfo.put("isClojure", isClojure);
                        processInfo.put("origFilter", origFilter);
                        return iter;
                    } catch (Exception ex) {
                        Exceptions.printStackTrace(ex);
                    }
                    return iter;
                }

                private Iterator getiterator() {
                    try {
                        return ((Iterable) getnamesfn.invoke(Symbol.create("clojure.core"))).iterator();
                    } catch (Exception ex) {
                        Exceptions.printStackTrace(ex);
                    }
                    return null;
                }

                private Iterator getclojureiterator() {
                    try {
                        return ((Iterable) getclojurenamesfn.invoke(Symbol.create("clojure.core"))).iterator();
                    } catch (Exception ex) {
                        Exceptions.printStackTrace(ex);
                    }
                    return null;
                }

                private Iterator getclojurefunctionsforns(String nspart) {
                    try {
                        java.lang.Object iter = (getclojurefunctionsfornsfn.invoke(nspart));
                        if (iter != null)
                            return ((Iterable) iter).iterator();
                        else
                            return null;
                    } catch (Exception ex) {
                        Exceptions.printStackTrace(ex);
                        return null;
                    }
                }

                private Iterator getJavaMethods(String classname) {
                    try {
                        return ((Iterable) getjavamethodsfn.invoke(Class.forName(classname))).iterator();
                    } catch (Exception ex) {
                        // Exceptions.printStackTrace(ex);
                        return null;
                    }
                }

                private Iterator getStaticJavaMethods(String classname) {
                    try {
                        return ((Iterable) getstaticjavamethodsfn.invoke(Class.forName(classname))).iterator();
                    } catch (Exception ex) {
                        // Exceptions.printStackTrace(ex);
                        return null;
                    }
                }

                private Iterator getAllJavaMethods() {
                    try {
                        return ((Iterable) getalljavamethodsfn.invoke(Symbol.create("clojure.core"))).iterator();
                    } catch (Exception ex) {
                        // Exceptions.printStackTrace(ex);
                        return null;
                    }
                }

                private Iterator getAllJavaInstanceMethods(String classname) {
                    try {
                        return ((Iterable) getalljavainstancemethodsfn.invoke(Class.forName(classname))).iterator();
                    } catch (Exception ex) {
                        // Exceptions.printStackTrace(ex);
                        return null;
                    }
                }

                private Iterator getAllClojureNamespaces1(String filter) {
                    try {
                        return ((Iterable) getallclojurenamespaces1fn.invoke(1)).iterator();
                    } catch (Exception ex) {
                        // Exceptions.printStackTrace(ex);
                        return null;
                    }
                }

                private Iterator getResultsForScenario1(String classname, String filter) {
                    try {
                        gettingMethods = false;
                        if (ctype == CompletionProvider.COMPLETION_ALL_QUERY_TYPE) {
                            completionResultSet.setHasAdditionalItems(true);
                            getExtLibs = true;
                        } else {
                            completionResultSet.setHasAdditionalItems(false);
                            getExtLibs = false;
                        }
                        Project proj = ReplTopComponent.GetProjectFromDocument(document);
                        if (!getExtLibs) {
                            proj = null;
                            CurrentList = Scenario1List;
                        } else
                            CurrentList = Scenario1ListExtLib;
                        int listSize = CurrentList.size();
                        if (classname == null) {
                            if (listSize > 0)
                                return CurrentList.iterator();
                            else
                                return ((Iterable) getresultsforscenario1fn.invoke(proj, jTextComponent, null, filter)).iterator();
                        } else {
                            gettingMethods = true;
                            return ((Iterable) getresultsforscenario1fn.invoke(proj, jTextComponent, Class.forName(classname), filter)).iterator();
                        }
                    } catch (Exception ex) {
                        // Exceptions.printStackTrace(ex);
                        return null;
                    }
                }

                private Iterator getResultsForScenario2(String filter) {
                    try {
                        gettingMethods = false;
                        if (ctype == CompletionProvider.COMPLETION_ALL_QUERY_TYPE) {
                            completionResultSet.setHasAdditionalItems(true);
                            getExtLibs = true;
                        } else {
                            completionResultSet.setHasAdditionalItems(false);
                            getExtLibs = false;
                        }
                        Project proj = ReplTopComponent.GetProjectFromDocument(document);
                        if (!getExtLibs) {
                            proj = null;
                            CurrentList = Scenario2List;
                        } else
                            CurrentList = Scenario2ListExtLib;
                        int listSize = CurrentList.size();
                        if (listSize > 0)
                            return CurrentList.iterator();
                        else
                            return ((Iterable) getresultsforscenario2fn.invoke(proj, jTextComponent, Symbol.create("clojure.core"), filter)).iterator();
                    } catch (Exception ex) {
                        // Exceptions.printStackTrace(ex);
                        return null;
                    }
                }

                private Iterator getResultsForScenario3(String classname, String filter) {
                    try {
                        gettingMethods = false;
                        CurrentList = Scenario3List;
                        if (classname == null) {
                            gettingMethods = true;
                            return ((Iterable) getresultsforscenario3fn.invoke(null, filter)).iterator();
                        } else {
                            gettingMethods = true;
                            return ((Iterable) getresultsforscenario3fn.invoke(Class.forName(classname), filter)).iterator();
                        }
                    } catch (Exception ex) {
                        // Exceptions.printStackTrace(ex);
                        return null;
                    }
                }

                private Iterator getResultsForScenario4() {
                    try {
                        gettingMethods = false;
                        if (ctype == CompletionProvider.COMPLETION_ALL_QUERY_TYPE) {
                            completionResultSet.setHasAdditionalItems(true);
                            getExtLibs = true;
                        } else {
                            completionResultSet.setHasAdditionalItems(false);
                            getExtLibs = false;
                        }
                        Project proj = ReplTopComponent.GetProjectFromDocument(document);
                        if (!getExtLibs) {
                            proj = null;
                            CurrentList = Scenario4List;
                        } else
                            CurrentList = Scenario4List;
                        int listSize = CurrentList.size();
                        if (listSize > 0)
                            return CurrentList.iterator();
                        else
                            return ((Iterable) getresultsforscenario4fn.invoke(proj)).iterator();
                    } catch (Exception ex) {
                        // Exceptions.printStackTrace(ex);
                        return null;
                    }
                }

                private Iterator getAllJavaClasses() {
                    try {
                        return ((Iterable) getalljavaclassesfn.invoke(jTextComponent)).iterator();
                    } catch (Exception ex) {
                        // Exceptions.printStackTrace(ex);
                        return null;
                    }
                }

                private Iterator getAllJavaClasses(String filter) {
                    try {
                        return ((Iterable) getalljavaclassesbyfilterfn.invoke(jTextComponent, filter)).iterator();
                    } catch (Exception ex) {
                        // Exceptions.printStackTrace(ex);
                        return null;
                    }
                }

                private Iterator getAllClojureNamespaces(String filter) {
                    try {
                        return ((Iterable) getallclojurenamespacesfn.invoke(jTextComponent, filter)).iterator();
                    } catch (Exception ex) {
                        // Exceptions.printStackTrace(ex);
                        return null;
                    }
                }

                private Iterator getFullJavaClasses() {
                    try {
                        return ((Iterable) getfulljavaclassesfn.invoke(Symbol.create("clojure.core"))).iterator();
                    } catch (Exception ex) {
                        Exceptions.printStackTrace(ex);
                    }
                    return null;
                }

                private Iterator getEnclosingFormMap(JTextComponent jTextComponent) {
                    try {
                        return ((Iterable) selectcurrentformfn.invoke(jTextComponent)).iterator();
                    } catch (Exception ex) {
                        Exceptions.printStackTrace(ex);
                    }
                    return null;
                }

                private String getClsForFilter(String filterstr) {
                    Iterator iter;
                    iter = getAllJavaClasses();
                    if (iter != null) {
                        while (iter.hasNext()) {
                            final String entry = (String) iter.next();
                            if ((entry.endsWith("." + filterstr)) || (entry.equals(filterstr)))
                                return entry;
                        }
                        return null;
                    } else
                        return null;
                }

                private boolean containsFilter(Iterator iter, String filter) {
                    try {
                        if (iter != null) {
                            while (iter.hasNext()) {
                                final String entry = (String) iter.next();
                                if ((filter != null) && (entry.startsWith(filter)))
                                    return true;
                            }
                        }
                        return false;
                    } catch (Exception ex) {
                        Exceptions.printStackTrace(ex);
                        return false;
                    }
                }
            }
            Operation oper = new Operation();
            bDoc.render(oper);
        }
    }, jTextComponent);
}
Also used : AsyncCompletionTask(org.netbeans.spi.editor.completion.support.AsyncCompletionTask) Hashtable(java.util.Hashtable) StyledDocument(javax.swing.text.StyledDocument) ArrayList(java.util.ArrayList) CompletionResultSet(org.netbeans.spi.editor.completion.CompletionResultSet) JTextComponent(javax.swing.text.JTextComponent) AsyncCompletionQuery(org.netbeans.spi.editor.completion.support.AsyncCompletionQuery) StyledDocument(javax.swing.text.StyledDocument) Document(javax.swing.text.Document) BadLocationException(javax.swing.text.BadLocationException) Project(org.netbeans.api.project.Project) PersistentArrayMap(clojure.lang.PersistentArrayMap) Iterator(java.util.Iterator) BadLocationException(javax.swing.text.BadLocationException)

Example 34 with Document

use of javax.swing.text.Document in project vcell by virtualcell.

the class TextFieldAutoCompletion method onComplete.

private void onComplete() {
    bInCompleteTask = true;
    try {
        String match = (String) autoCompJList.getSelectedValue();
        if (match == null) {
            return;
        }
        boolean bFunction = match.endsWith(")");
        CurrentWord currentWord = findCurrentWord(null);
        Document doc = getDocument();
        if (currentWord == null) {
            doc.insertString(0, match, null);
            setCaretPosition(match.length() + (bFunction ? -1 : 0));
        } else {
            doc.remove(currentWord.startPos, currentWord.endPos - currentWord.startPos + 1);
            doc.insertString(currentWord.startPos, match, null);
            setCaretPosition(currentWord.startPos + match.length() + (bFunction ? -1 : 0));
        }
        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                autoCompJPopupMenu.setVisible(false);
            }
        });
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        bInCompleteTask = false;
    }
}
Also used : Document(javax.swing.text.Document) BadLocationException(javax.swing.text.BadLocationException)

Example 35 with Document

use of javax.swing.text.Document in project jdk8u_jdk by JetBrains.

the class LWTextAreaPeer method replaceRange.

@Override
public void replaceRange(final String text, final int start, final int end) {
    synchronized (getDelegateLock()) {
        // JTextArea.replaceRange() posts two different events.
        // Since we make no differences between text events,
        // the document listener has to be disabled while
        // JTextArea.replaceRange() is called.
        final Document document = getTextComponent().getDocument();
        document.removeDocumentListener(this);
        getTextComponent().replaceRange(text, start, end);
        revalidate();
        postEvent(new TextEvent(getTarget(), TextEvent.TEXT_VALUE_CHANGED));
        document.addDocumentListener(this);
    }
    repaintPeer();
}
Also used : TextEvent(java.awt.event.TextEvent) Document(javax.swing.text.Document)

Aggregations

Document (javax.swing.text.Document)72 BadLocationException (javax.swing.text.BadLocationException)35 DocumentEvent (javax.swing.event.DocumentEvent)10 DefaultStyledDocument (javax.swing.text.DefaultStyledDocument)8 DocumentAdapter (com.intellij.ui.DocumentAdapter)7 HTMLDocument (javax.swing.text.html.HTMLDocument)7 ActionEvent (java.awt.event.ActionEvent)5 PlainDocument (javax.swing.text.PlainDocument)5 ActionListener (java.awt.event.ActionListener)4 File (java.io.File)4 IOException (java.io.IOException)3 FieldPanel (com.intellij.ui.FieldPanel)2 CheckBox (com.intellij.util.ui.CheckBox)2 Color (java.awt.Color)2 NumberFormat (java.text.NumberFormat)2 ParseException (java.text.ParseException)2 AbstractAction (javax.swing.AbstractAction)2 DocumentListener (javax.swing.event.DocumentListener)2 AbstractDocument (javax.swing.text.AbstractDocument)2 Element (javax.swing.text.Element)2