Merge remote-tracking branch 'origin/master'

This commit is contained in:
Yann Cébron
2012-09-11 11:25:29 +02:00
4 changed files with 40 additions and 12 deletions
@@ -38,7 +38,6 @@ import com.intellij.psi.search.*;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.util.CommonProcessors;
import com.intellij.util.Processor;
import com.intellij.util.SmartList;
import com.intellij.util.codeInsight.CommentUtilCore;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.MultiMap;
@@ -659,12 +658,8 @@ public class PsiSearchHelperImpl implements PsiSearchHelper {
}
private static MultiMap<VirtualFile, RequestWithProcessor> createMultiMap() {
return new MultiMap<VirtualFile, RequestWithProcessor>(){
@Override
protected Collection<RequestWithProcessor> createCollection() {
return new SmartList<RequestWithProcessor>(); // usually there is just one request
}
};
// usually there is just one request
return MultiMap.createSmartList();
}
private static GlobalSearchScope uniteScopes(Collection<RequestWithProcessor> requests) {
@@ -20,6 +20,7 @@ import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer;
import com.intellij.codeInsight.daemon.impl.analysis.FileHighlighingSetting;
import com.intellij.codeInsight.daemon.impl.analysis.HighlightLevelUtil;
import com.intellij.lang.Language;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.EditorBundle;
import com.intellij.openapi.editor.HectorComponentPanel;
@@ -33,6 +34,7 @@ import com.intellij.openapi.roots.ProjectRootManager;
import com.intellij.openapi.ui.popup.JBPopup;
import com.intellij.openapi.ui.popup.JBPopupFactory;
import com.intellij.openapi.util.Computable;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.profile.codeInspection.InspectionProjectProfileManager;
import com.intellij.profile.codeInspection.ui.ErrorsConfigurable;
@@ -40,7 +42,6 @@ import com.intellij.psi.FileViewProvider;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.util.PsiUtilBase;
import com.intellij.ui.Gray;
import com.intellij.ui.HyperlinkLabel;
import com.intellij.ui.IdeBorderFactory;
import com.intellij.ui.awt.RelativePoint;
@@ -113,7 +114,7 @@ public class HectorComponent extends JPanel {
int value = slider.getValue();
for (Enumeration<Integer> enumeration = sliderLabels.keys(); enumeration.hasMoreElements();) {
Integer key = enumeration.nextElement();
sliderLabels.get(key).setForeground(key.intValue() <= value ? Color.black : Gray._100);
sliderLabels.get(key).setForeground(key.intValue() <= value ? UIUtil.getLabelForeground() : UIUtil.getLabelDisabledForeground());
}
}
});
@@ -230,6 +231,16 @@ public class HectorComponent extends JPanel {
}
})
.createPopup();
Disposer.register(myFile.getProject(), new Disposable() {
@Override
public void dispose() {
final JBPopup oldHector = getOldHector();
if (oldHector != null && !oldHector.isDisposed()) {
Disposer.dispose(oldHector);
}
Disposer.dispose(hector);
}
});
final JBPopup oldHector = getOldHector();
if (oldHector != null){
oldHector.cancel();
@@ -668,14 +668,14 @@ public class Switcher extends AnAction implements DumbAware {
}, 300);
if (jList.getModel().getSize() == 1) {
goLeft();
((DefaultListModel)jList.getModel()).removeElementAt(selectedIndex);
removeElementAt(jList, selectedIndex);
this.remove(jList);
this.remove(separator);
final Dimension size = toolWindows.getSize();
myPopup.setSize(new Dimension(size.width, myPopup.getSize().height));
} else {
goForward();
((DefaultListModel)jList.getModel()).removeElementAt(selectedIndex);
removeElementAt(jList, selectedIndex);
jList.setSize(jList.getPreferredSize());
}
pack();
@@ -690,6 +690,17 @@ public class Switcher extends AnAction implements DumbAware {
}
}
private static void removeElementAt(JList jList, int index) {
final ListModel model = jList.getModel();
if (model instanceof DefaultListModel) {
((DefaultListModel)model).removeElementAt(index);
} else if (model instanceof NameFilteringListModel) {
((NameFilteringListModel)model).remove(index);
} else {
throw new IllegalArgumentException("Wrong list model " + model.getClass());
}
}
private void pack() {
this.setSize(this.getPreferredSize());
final JRootPane rootPane = SwingUtilities.getRootPane(this);
@@ -16,6 +16,7 @@
package com.intellij.util.containers;
import com.intellij.util.SmartList;
import org.jetbrains.annotations.NotNull;
import java.io.Serializable;
@@ -230,6 +231,16 @@ public class MultiMap<K, V> implements Serializable {
return new MultiMap<K, V>();
}
@NotNull
public static <K, V> MultiMap<K, V> createSmartList() {
return new MultiMap<K, V>() {
@Override
protected Collection<V> createCollection() {
return new SmartList<V>();
}
};
}
@NotNull
public static <K, V> MultiMap<K, V> create(int i, float v) {
return new MultiMap<K, V>(i, v);
@@ -251,4 +262,4 @@ public class MultiMap<K, V> implements Serializable {
public String toString() {
return myMap.toString();
}
}
}