Issue with Code completion using TextFieldWithAutoCompletion

Hi,

  I have a settings page, where i need a text field with code completion. I am using TextFieldWithAutoCompletion to get this done.
  Below is my code.
  public class MyTextEditor extends TextFieldWithAutoCompletion {
      public FastCodeTextEditor() {
      super (ProjectManager.getInstance().getDefaultProject(), new TextFieldWithAutoCompletionListProvider(Arrays.asList("HEHEHEH", "AAAAA", "BBBBB", "Step")) {
            @Nullable
            @Override
            protected Icon getIcon(@NotNull Object o) {
                return null;  //To change body of implemented methods use File | Settings | File Templates.
            }

            @NotNull
            @Override
            protected String getLookupString(@NotNull Object o) {
                return "Lookup";  //To change body of implemented methods use File | Settings | File Templates.
            }

            @Nullable
            @Override
            protected String getTailText(@NotNull Object o) {
                return "Tail";  //To change body of implemented methods use File | Settings | File Templates.
            }

            @Nullable
            @Override
            protected String getTypeText(@NotNull Object o) {
                return "Type";  //To change body of implemented methods use File | Settings | File Templates.
            }

            @Override
            public int compare(Object o, Object o2) {
                return 0;  //To change body of implemented methods use File | Settings | File Templates.
            }
        }, true, "");
 }
}


My dialog code look like this

public class MyDialog extends JDialog {  
       private JPanel contentPane;
    private JButton buttonOK;
    private JButton buttonCancel;
    private JTextField myName;
      private FastCodeTextEditor templateBody;
 ...
 ...
 ...
 ..
 public MyDialog(MyData data, int selectedIndex, boolean isDetailed) {
 ....
 ...
 ..
 $$$setupUI$$$();
        createDialog();
 ...
 ...
 }
 
 /**
     * Method generated by IntelliJ IDEA GUI Designer
     * >>> IMPORTANT!! <<<
     * DO NOT edit this method OR call it in your code!
     *
     * @noinspection ALL
     */
    private void $$$setupUI$$$() {
 ...
 ...
 ..
 ...
 ..
 templateBody = new FastCodeTextEditor();
 ..
 ...
 ..
 }
}

public class MyTableSettingsConfigurable1 implements Configurable {

 on click on a button
 MyDialog dialog = new MyDialog(data, selectedIndex, true);
}

public class MySettingsConfigurable extends SearchableConfigurable.Parent.Abstract {
    private List<Configurable> myPanels=new ArrayList<Configurable>();

    @Override
    protected Configurable[] buildConfigurables() {
        myPanels.add(new MyTableSettingsConfigurable1());
        myPanels.add(new MyTableSettingsConfigurable2());

        return myPanels.toArray(new Configurable[myPanels.size()]);
    }

    @Override
    public String getId() {
        return "";
    }

    @Nls
    @Override
    public String getDisplayName() {
        return "Fastcode";
    }

    @Nullable
    @Override
    public String getHelpTopic() {
        return null;
    }

}

When i run this code, in the editor when i press space i get the below error

[1586796]  ERROR - com.intellij.ide.IdeEventQueue - Error during dispatching of java.awt.event.KeyEvent[KEY_TYPED,keyCode=0,keyText=Unknown keyCode: 0x0,keyChar=' ',keyLocation=KEY_LOCATION_UNKNOWN,rawCode=0,primaryLevelUnicode=0,scancode=0] on EditorComponent file=null
java.lang.AssertionError: Project (Default) Default (Template) Project; false
 at com.intellij.codeInsight.template.impl.editorActions.SpaceHandler.execute(SpaceHandler.java:49)
 at com.intellij.openapi.editor.actionSystem.TypedAction$TypingCommand$1.run(TypedAction.java:130)
 at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:986)
 at com.intellij.openapi.editor.actionSystem.TypedAction$TypingCommand.run(TypedAction.java:125)
 at com.intellij.openapi.command.impl.CommandProcessorImpl.executeCommand(CommandProcessorImpl.java:122)
 at com.intellij.openapi.editor.actionSystem.TypedAction.actionPerformed(TypedAction.java:106)
 at com.intellij.openapi.editor.impl.EditorImpl.a(EditorImpl.java:917)
 at com.intellij.openapi.editor.impl.EditorImpl.processKeyTyped(EditorImpl.java:4795)
 at com.intellij.openapi.editor.impl.EditorImpl$9.keyTyped(EditorImpl.java:797)
 at java.awt.Component.processKeyEvent(Component.java:6245)
 at javax.swing.JComponent.processKeyEvent(JComponent.java:2801)
 at java.awt.Component.processEvent(Component.java:6067)
 at java.awt.Container.processEvent(Container.java:2039)
 at java.awt.Component.dispatchEventImpl(Component.java:4653)
 at java.awt.Container.dispatchEventImpl(Container.java:2097)
 at java.awt.Component.dispatchEvent(Component.java:4481)
 at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1836)
 at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:712)
 at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:990)
 at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:855)
 at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:676)
 at java.awt.Component.dispatchEventImpl(Component.java:4525)
 at java.awt.Container.dispatchEventImpl(Container.java:2097)
 at java.awt.Window.dispatchEventImpl(Window.java:2482)
 at java.awt.Component.dispatchEvent(Component.java:4481)
 at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:648)
 at java.awt.EventQueue.access$000(EventQueue.java:84)
 at java.awt.EventQueue$1.run(EventQueue.java:607)
 at java.awt.EventQueue$1.run(EventQueue.java:605)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
 at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
 at java.awt.EventQueue$2.run(EventQueue.java:621)
 at java.awt.EventQueue$2.run(EventQueue.java:619)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
 at java.awt.EventQueue.dispatchEvent(EventQueue.java:618)
 at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:673)
 at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:480)
 at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:333)
 at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
 at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
 at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
 at java.awt.Dialog$1.run(Dialog.java:1044)
 at java.awt.Dialog$3.run(Dialog.java:1096)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.awt.Dialog.show(Dialog.java:1094)
 at java.awt.Component.show(Component.java:1584)
 at java.awt.Component.setVisible(Component.java:1536)
 at java.awt.Window.setVisible(Window.java:841)
 at java.awt.Dialog.setVisible(Dialog.java:984)
 ..........
 ................
 ........
 ....
[1586801]  ERROR - com.intellij.ide.IdeEventQueue - IntelliJ IDEA 12.0.1  Build #IU-123.94
[1586801]  ERROR - com.intellij.ide.IdeEventQueue - JDK: 1.6.0_31
[1586802]  ERROR - com.intellij.ide.IdeEventQueue - VM: Java HotSpot(TM) 64-Bit Server VM
[1586802]  ERROR - com.intellij.ide.IdeEventQueue - Vendor: Sun Microsystems Inc.
[1586802]  ERROR - com.intellij.ide.IdeEventQueue - OS: Windows 7
[1586802]  ERROR - com.intellij.ide.IdeEventQueue - Last Action: ShowSettings

Could you please help me get through this.

0
3 comments

Don't use ProjectManager.getInstance().getDefaultProject() for this purpose. Instead, get the real project open in the current frame from the data context: PlatformDataKeys.PROJECT.getData(DataManager.getInstance().getDataContext())

0
Avatar
Permanently deleted user

Hi,

Thank you...After changing to PlatformDataKeys.PROJECT.getData(DataManager.getInstance().getDataContext()), the error does not come.

But i still dont get any code completion....
when i type something control comes to this method.

@NotNull
            @Override
            protected String getLookupString(@NotNull Object o) {
                return "Lookup";  //To change body of implemented methods use File | Settings | File Templates.
            }


But no help comes...i tried with words like -- Lookup, all the words in TextFieldWithAutoCompletionListProvider -- Arrays.asList("HEHEHEH", "AAAAA", "BBBBB", "Step"), abc, xyz....etc...

Is there more i need to code, or am i missing somthing......i m very new to Intellij, could you please point out what more i need to do get the code completion working...

Thanks in Advance!!

0
Avatar
Permanently deleted user

Hi,

I m still waiting for some inuts on the above issue. Could you please help.

0

Please sign in to leave a comment.