This is an automated email from the git hooks/post-receive script. ben pushed a commit to branch master in repository autocomplete.
commit 483ec0292f9c3917fc710a824033aefe4eb3c559 Author: bobbylight <[email protected]> Date: Thu Jan 1 17:36:55 2009 +0000 Making AutoCompletion.doCompletion() a way to programmatically display the completion popup window. --- .../ui/autocomplete/AutoCompletePopupWindow.java | 15 +++- src/org/fife/ui/autocomplete/AutoCompletion.java | 83 +++++++++++--------- 2 files changed, 60 insertions(+), 38 deletions(-) diff --git a/src/org/fife/ui/autocomplete/AutoCompletePopupWindow.java b/src/org/fife/ui/autocomplete/AutoCompletePopupWindow.java index d14c08d..ef5fe05 100644 --- a/src/org/fife/ui/autocomplete/AutoCompletePopupWindow.java +++ b/src/org/fife/ui/autocomplete/AutoCompletePopupWindow.java @@ -176,9 +176,20 @@ lastLine = -1; } + /** + * Inserts the currently selected completion. + * + * @see #getSelection() + */ + public void insertSelectedCompletion() { + Completion comp = getSelection(); + ac.insertCompletion(comp); + } + + public void mouseClicked(MouseEvent e) { if (e.getClickCount()==2) { - ac.doCompletion(); + insertSelectedCompletion(); } } @@ -510,7 +521,7 @@ lastLine = -1; public void actionPerformed(ActionEvent e) { if (isVisible()) { - ac.doCompletion(); + insertSelectedCompletion(); } } diff --git a/src/org/fife/ui/autocomplete/AutoCompletion.java b/src/org/fife/ui/autocomplete/AutoCompletion.java index 88c693b..2f40157 100644 --- a/src/org/fife/ui/autocomplete/AutoCompletion.java +++ b/src/org/fife/ui/autocomplete/AutoCompletion.java @@ -134,37 +134,12 @@ public class AutoCompletion implements HierarchyListener, ComponentListener { } + /** + * Displays the popup window. Hosting applications can call this method + * to programmatically begin an auto-completion operation. + */ public void doCompletion() { - Completion comp = popupWindow.getSelection(); - doCompletionImpl(comp); - } - - - private void doCompletionImpl(Completion c) { - - JTextComponent textComp = getTextComponent(); - String alreadyEntered = c.getAlreadyEntered(textComp); - hidePopupWindow(); - Caret caret = textComp.getCaret(); - - int dot = caret.getDot(); - caret.setDot(dot - alreadyEntered.length()); - caret.moveDot(dot); - textComp.replaceSelection(c.getReplacementText()); -/* - Document doc = textComp.getDocument(); - int end = caret.getDot(); - int start = end - alreadyEntered.length(); -try { - if (doc instanceof AbstractDocument) { - ((AbstractDocument)doc).replace(start, end-start, c.getReplacementText(), null); - } - else { - doc.remove(start, end-start); - doc.insertString(start, c.getReplacementText(), null); - } -} catch (javax.swing.text.BadLocationException ble) { ble.printStackTrace(); } -*/ + refreshPopupWindow(); } @@ -280,6 +255,9 @@ try { } + /** + * Hides the popup window, if it is visible. + */ private void hidePopupWindow() { if (popupWindow!=null) { if (popupWindow.isVisible()) { @@ -290,6 +268,39 @@ try { /** + * Inserts a completion. + * + * @param c A completion to insert. This cannot be <code>null</code>. + */ + void insertCompletion(Completion c) { + + JTextComponent textComp = getTextComponent(); + String alreadyEntered = c.getAlreadyEntered(textComp); + hidePopupWindow(); + Caret caret = textComp.getCaret(); + + int dot = caret.getDot(); + caret.setDot(dot - alreadyEntered.length()); + caret.moveDot(dot); + textComp.replaceSelection(c.getReplacementText()); +/* + Document doc = textComp.getDocument(); + int end = caret.getDot(); + int start = end - alreadyEntered.length(); +try { + if (doc instanceof AbstractDocument) { + ((AbstractDocument)doc).replace(start, end-start, c.getReplacementText(), null); + } + else { + doc.remove(start, end-start); + doc.insertString(start, c.getReplacementText(), null); + } +} catch (javax.swing.text.BadLocationException ble) { ble.printStackTrace(); } +*/ + } + + + /** * Installs this autocompletion on a text component. If this * {@link AutoCompletion} is already installed on another text component, * it is uninstalled first. @@ -336,6 +347,11 @@ try { } + /** + * Returns whether the popup window is visible. + * + * @return Whether the popup window is visible. + */ private boolean isPopupVisible() { return popupWindow!=null && popupWindow.isVisible(); } @@ -364,11 +380,6 @@ try { } popupWindow.setCompletions(completions); -// popupWindow.clear(); -// for (int i=0; i<completions.size(); i++) { -// -// popupWindow.addItem((Completion)completions.get(i)); -// } popupWindow.selectFirstItem(); if (!popupWindow.isVisible()) { @@ -393,7 +404,7 @@ try { else if (count==1) { // !isPopupVisible && autoCompleteSingleChoices SwingUtilities.invokeLater(new Runnable() { public void run() { - doCompletionImpl((Completion)completions.get(0)); + insertCompletion((Completion)completions.get(0)); } }); } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/autocomplete.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

