Author: echatellier Date: 2015-06-11 08:32:46 +0000 (Thu, 11 Jun 2015) New Revision: 4261 Url: http://forge.codelutin.com/projects/isis-fish/repository/revisions/4261 Log: Add autocomplete support (commented as non fonctionnal). Modified: branches/isis-fish-4.4.0-editor/src/main/java/fr/ifremer/isisfish/ui/widget/text/SyntaxEditor.java branches/isis-fish-4.4.0-editor/src/main/java/fr/ifremer/isisfish/ui/widget/text/SyntaxEditorUI.java Modified: branches/isis-fish-4.4.0-editor/src/main/java/fr/ifremer/isisfish/ui/widget/text/SyntaxEditor.java =================================================================== --- branches/isis-fish-4.4.0-editor/src/main/java/fr/ifremer/isisfish/ui/widget/text/SyntaxEditor.java 2015-06-11 08:24:44 UTC (rev 4260) +++ branches/isis-fish-4.4.0-editor/src/main/java/fr/ifremer/isisfish/ui/widget/text/SyntaxEditor.java 2015-06-11 08:32:46 UTC (rev 4261) @@ -32,11 +32,19 @@ import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.KeyStroke; +import javax.swing.ToolTipManager; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.fife.rsta.ac.LanguageSupport; +import org.fife.rsta.ac.LanguageSupportFactory; +import org.fife.rsta.ac.java.JavaCompletionProvider; +import org.fife.rsta.ac.java.JavaLanguageSupport; +import org.fife.ui.autocomplete.AutoCompletion; +import org.fife.ui.autocomplete.CompletionProvider; +import org.fife.ui.autocomplete.DefaultCompletionProvider; import org.fife.ui.rsyntaxtextarea.SyntaxConstants; import org.nuiton.util.FileUtil; @@ -84,9 +92,7 @@ protected JPanel askReloadPanel; public SyntaxEditor() { - // to listen for user modification - textArea.getDocument().addDocumentListener(this); - + // save action int c = getToolkit().getMenuShortcutKeyMask(); saveAction = new AbstractAction(t("isisfish.editor.save"), new ImageIcon(getClass().getResource("/icons/script_save.png"))) { @@ -96,8 +102,35 @@ }; saveAction.setEnabled(false); saveAction.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_S, c)); + + // autocomplete support + setAutocomplete(); + + // to listen for user modification (after setAutocomplete) + textArea.getDocument().addDocumentListener(this); } - + + /** + * Autocomplete support is not perfect yet and don't support partial classes (equation). + */ + protected void setAutocomplete() { + + /*LanguageSupportFactory lsf = LanguageSupportFactory.get(); + LanguageSupport support = lsf.getSupportFor(SyntaxConstants.SYNTAX_STYLE_JAVA); + JavaLanguageSupport jls = (JavaLanguageSupport)support; + try { + jls.getJarManager().addCurrentJreClassFileSource(); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + lsf.register(textArea); + + ToolTipManager.sharedInstance().registerComponent(textArea); + CompletionProvider provider = new DefaultCompletionProvider(); + AutoCompletion ac = new AutoCompletion(provider); + ac.install(textArea);*/ + } + @Override protected void finalize() throws Throwable { try { Modified: branches/isis-fish-4.4.0-editor/src/main/java/fr/ifremer/isisfish/ui/widget/text/SyntaxEditorUI.java =================================================================== --- branches/isis-fish-4.4.0-editor/src/main/java/fr/ifremer/isisfish/ui/widget/text/SyntaxEditorUI.java 2015-06-11 08:24:44 UTC (rev 4260) +++ branches/isis-fish-4.4.0-editor/src/main/java/fr/ifremer/isisfish/ui/widget/text/SyntaxEditorUI.java 2015-06-11 08:32:46 UTC (rev 4261) @@ -179,8 +179,13 @@ } else { remove(textScrollpane); add(noFileLabel); + + cutAction.setEnabled(false); + copyAction.setEnabled(false); } + pasteAction.setEnabled(enabled); + // workarround for http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4286743 //textScrollpane.getHorizontalScrollBar().setEnabled(enabled); //textScrollpane.getVerticalScrollBar().setEnabled(enabled);