fix IllegalArgumentException
authorEugene Kudelevsky <Eugene.Kudelevsky@jetbrains.com>
Mon, 25 Jan 2010 16:15:09 +0000 (19:15 +0300)
committerEugene Kudelevsky <Eugene.Kudelevsky@jetbrains.com>
Mon, 25 Jan 2010 16:15:09 +0000 (19:15 +0300)
platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupManagerImpl.java

index c8eb445de861013f94d870265e0232d12ae1e742..45af7f8e8b459ced882bfb37c429b401f94ea77c 100644 (file)
@@ -58,21 +58,19 @@ public class LookupManagerImpl extends LookupManager implements ProjectComponent
         if (project == myProject) {
           Lookup lookup = getActiveLookup();
           if (lookup != null && (flags & HintManager.HIDE_BY_LOOKUP_ITEM_CHANGE) != 0) {
-            lookup.addLookupListener(
-              new LookupAdapter() {
-                public void currentItemChanged(LookupEvent event) {
-                  hint.hide();
-                }
-
-                public void itemSelected(LookupEvent event) {
-                  hint.hide();
-                }
-
-                public void lookupCanceled(LookupEvent event) {
-                  hint.hide();
-                }
+            lookup.addLookupListener(new LookupAdapter() {
+              public void currentItemChanged(LookupEvent event) {
+                hint.hide();
               }
-            );
+
+              public void itemSelected(LookupEvent event) {
+                hint.hide();
+              }
+
+              public void lookupCanceled(LookupEvent event) {
+                hint.hide();
+              }
+            });
           }
         }
       }
@@ -81,16 +79,17 @@ public class LookupManagerImpl extends LookupManager implements ProjectComponent
   }
 
   @NotNull
-  public String getComponentName(){
+  public String getComponentName() {
     return "LookupManager";
   }
 
-  public void initComponent() { }
+  public void initComponent() {
+  }
 
-  public void disposeComponent(){
+  public void disposeComponent() {
   }
 
-  public void projectOpened(){
+  public void projectOpened() {
 
     final EditorFactoryAdapter myEditorFactoryListener = new EditorFactoryAdapter() {
       public void editorReleased(EditorFactoryEvent event) {
@@ -107,17 +106,23 @@ public class LookupManagerImpl extends LookupManager implements ProjectComponent
     });
   }
 
-  public void projectClosed(){
+  public void projectClosed() {
     myIsDisposed = true;
   }
 
-  public Lookup showLookup(final Editor editor, @NotNull LookupElement[] items, final String prefix, @NotNull final LookupArranger arranger) {
+  public Lookup showLookup(final Editor editor,
+                           @NotNull LookupElement[] items,
+                           final String prefix,
+                           @NotNull final LookupArranger arranger) {
     final LookupImpl lookup = createLookup(editor, items, prefix, arranger);
     lookup.show();
     return lookup;
   }
 
-  public LookupImpl createLookup(final Editor editor, @NotNull LookupElement[] items, final String prefix, @NotNull final LookupArranger arranger) {
+  public LookupImpl createLookup(final Editor editor,
+                                 @NotNull LookupElement[] items,
+                                 final String prefix,
+                                 @NotNull final LookupArranger arranger) {
     hideActiveLookup();
 
     final CodeInsightSettings settings = CodeInsightSettings.getInstance();
@@ -125,12 +130,12 @@ public class LookupManagerImpl extends LookupManager implements ProjectComponent
     final PsiFile psiFile = PsiDocumentManager.getInstance(myProject).getPsiFile(editor.getDocument());
 
     final Alarm alarm = new Alarm();
-    final Runnable request = new Runnable(){
+    final Runnable request = new Runnable() {
       public void run() {
         DocumentationManager.getInstance(myProject).showJavaDocInfo(editor, psiFile, false);
       }
     };
-    if (settings.AUTO_POPUP_JAVADOC_INFO){
+    if (settings.AUTO_POPUP_JAVADOC_INFO) {
       alarm.addRequest(request, settings.JAVADOC_INFO_DELAY);
     }
 
@@ -140,41 +145,41 @@ public class LookupManagerImpl extends LookupManager implements ProjectComponent
     }
     myActiveLookup = new LookupImpl(myProject, editor, arranger);
     myActiveLookupEditor = editor;
-    myActiveLookup.addLookupListener(
-      new LookupAdapter(){
-        public void itemSelected(LookupEvent event) {
-          dispose();
-        }
+    myActiveLookup.addLookupListener(new LookupAdapter() {
+      public void itemSelected(LookupEvent event) {
+        dispose();
+      }
 
-        public void lookupCanceled(LookupEvent event) {
-          dispose();
-        }
+      public void lookupCanceled(LookupEvent event) {
+        dispose();
+      }
 
-        public void currentItemChanged(LookupEvent event) {
-          alarm.cancelAllRequests();
-          if (settings.AUTO_POPUP_JAVADOC_INFO){
-            alarm.addRequest(request, settings.JAVADOC_INFO_DELAY);
-          }
+      public void currentItemChanged(LookupEvent event) {
+        alarm.cancelAllRequests();
+        if (settings.AUTO_POPUP_JAVADOC_INFO) {
+          alarm.addRequest(request, settings.JAVADOC_INFO_DELAY);
         }
+      }
 
-        private void dispose(){
-          alarm.cancelAllRequests();
-          if (daemonCodeAnalyzer != null) {
-            daemonCodeAnalyzer.setUpdateByTimerEnabled(true);
-          }
-          if (myActiveLookup == null) return;
-          myActiveLookup.removeLookupListener(this);
-          Lookup lookup = myActiveLookup;
-          myActiveLookup = null;
-          myActiveLookupEditor = null;
-          myPropertyChangeSupport.firePropertyChange(PROP_ACTIVE_LOOKUP, lookup, null);
+      private void dispose() {
+        alarm.cancelAllRequests();
+        if (daemonCodeAnalyzer != null) {
+          daemonCodeAnalyzer.setUpdateByTimerEnabled(true);
         }
+        if (myActiveLookup == null) return;
+        myActiveLookup.removeLookupListener(this);
+        Lookup lookup = myActiveLookup;
+        myActiveLookup = null;
+        myActiveLookupEditor = null;
+        myPropertyChangeSupport.firePropertyChange(PROP_ACTIVE_LOOKUP, lookup, null);
       }
-    );
+    });
 
     if (items.length > 0) {
       for (final LookupElement item : items) {
-        item.setPrefixMatcher(new CamelHumpMatcher(prefix));
+        if (prefix != null) {
+          item.setPrefixMatcher(new CamelHumpMatcher(prefix));
+        }
         myActiveLookup.addItem(item);
       }
       myActiveLookup.refreshUi();
@@ -185,7 +190,7 @@ public class LookupManagerImpl extends LookupManager implements ProjectComponent
   }
 
   public void hideActiveLookup() {
-    if (myActiveLookup != null){
+    if (myActiveLookup != null) {
       myActiveLookup.hide();
     }
   }