diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java
index 68e544cc82f8..9e8ae7915aec 100644
--- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java
+++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/impl/LookupImpl.java
@@ -1158,8 +1158,6 @@ public class LookupImpl extends LightweightHint implements Lookup, Disposable {
panel.remove(0);
panel.add(hintComponent);
}
- //todo[kirillk] comment the following line
- HintManagerImpl.adjustEditorHintPosition(myAutopopupHint, editor, bestPoint);
}
}
diff --git a/platform/platform-impl/src/com/intellij/codeInsight/hint/HintManagerImpl.java b/platform/platform-impl/src/com/intellij/codeInsight/hint/HintManagerImpl.java
index e8abfbfcd70b..c9291dc10394 100644
--- a/platform/platform-impl/src/com/intellij/codeInsight/hint/HintManagerImpl.java
+++ b/platform/platform-impl/src/com/intellij/codeInsight/hint/HintManagerImpl.java
@@ -369,7 +369,7 @@ public class HintManagerImpl extends HintManager implements Disposable {
p = rectangle.getLocation();
SwingUtilities.convertPointFromScreen(p, layeredPane);
}
- else if ((layeredPane.getWidth() < p.x + size.width) && !hintInfo.isAwtTooltip()) {
+ else if ((layeredPane.getWidth() < p.x + size.width) && !hintInfo.isAwtTooltip() && !hint.isRealPopup()) {
p.x = Math.max(0, layeredPane.getWidth() - size.width);
}
diff --git a/platform/platform-impl/src/com/intellij/ui/LightweightHint.java b/platform/platform-impl/src/com/intellij/ui/LightweightHint.java
index 8743c13f8324..a95522649c04 100644
--- a/platform/platform-impl/src/com/intellij/ui/LightweightHint.java
+++ b/platform/platform-impl/src/com/intellij/ui/LightweightHint.java
@@ -185,11 +185,11 @@ public class LightweightHint extends UserDataHolderBase implements Hint {
.setMovable(myTitle != null)
.setTitle(myTitle)
.setModalContext(false)
- .setShowShadow(!myForceLightweightPopup && myForceShowAsPopup)
+ .setShowShadow(isRealPopup())
.setCancelKeyEnabled(false)
.setCancelOnClickOutside(myCancelOnClickOutside)
.setCancelOnOtherWindowOpen(myCancelOnOtherWindowOpen)
- .setForceHeavyweight(!myForceLightweightPopup && myForceShowAsPopup)
+ .setForceHeavyweight(!myForceLightweightPopup && isRealPopup())
.createPopup();
beforeShow();
@@ -241,7 +241,7 @@ public class LightweightHint extends UserDataHolderBase implements Hint {
}
public final boolean isRealPopup() {
- return myIsRealPopup;
+ return myIsRealPopup | myForceShowAsPopup;
}
public void hide() {
diff --git a/platform/platform-resources-en/src/misc/registry.properties b/platform/platform-resources-en/src/misc/registry.properties
index 7e58a12cb257..314156f91f45 100644
--- a/platform/platform-resources-en/src/misc/registry.properties
+++ b/platform/platform-resources-en/src/misc/registry.properties
@@ -35,7 +35,7 @@ ide.debugMode=false
ide.debugMode.description=Record additonal information to make bug reports more informative
ide.forcedShowTooltip=alt
ide.forcedShowTooltip.description=Shortcut for forced show tooltip
-ide.popup.dropShadow=false
+ide.popup.dropShadow=true
ide.consumeKnownToolkitBugs=true
ide.appIcon.progress=true
diff --git a/plugins/InspectionGadgets/src/com/siyeh/InspectionGadgetsBundle.properties b/plugins/InspectionGadgets/src/com/siyeh/InspectionGadgetsBundle.properties
index 5734a1f02ef7..0a9522cf8c9c 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/InspectionGadgetsBundle.properties
+++ b/plugins/InspectionGadgets/src/com/siyeh/InspectionGadgetsBundle.properties
@@ -268,7 +268,7 @@ instance.variable.may.not.be.initialized.display.name=Instance field may not be
instance.variable.may.not.be.initialized.problem.descriptor=Instance field #ref may not be initialized during object construction #loc
instance.Variable.may.not.be.initialized.problem.descriptor.junit=Instance field #ref may not be initialized during object construction or 'setUp()' call #loc
primitive.fields.ignore.option=Ignore primitive fields
-instance.variable.used.before.initialized.display.name=Instance field used before initialized
+instance.variable.used.before.initialized.display.name=Instance field used before initialization
instance.variable.used.before.initialized.problem.descriptor=Instance field #ref used before initialized #loc
non.final.static.variable.initialization.display.name=Non-final static field is used during class initialization
non.final.static.variable.initialization.problem.descriptor=Non-final static field #ref used during class initialization #loc
@@ -1841,4 +1841,6 @@ package.dot.html.may.be.package.info.problem.descriptor=package.html
-
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableHasSerialVersionUIDFieldInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableHasSerialVersionUIDFieldInspection.java
index 2bec2c00829f..0d1a8ebd457a 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableHasSerialVersionUIDFieldInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableHasSerialVersionUIDFieldInspection.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2010 Dave Griffith, Bas Leijdekkers
+ * Copyright 2003-2011 Dave Griffith, Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,11 +22,13 @@ import com.siyeh.ig.BaseInspectionVisitor;
import com.siyeh.ig.InspectionGadgetsFix;
import com.siyeh.ig.fixes.AddSerialVersionUIDFix;
import com.siyeh.ig.psiutils.SerializationUtils;
+import org.intellij.lang.annotations.Pattern;
import org.jetbrains.annotations.NotNull;
public class SerializableHasSerialVersionUIDFieldInspection
extends SerializableInspection {
+ @Pattern("[a-zA-Z_0-9.-]+")
@Override
@NotNull
public String getID() {
@@ -70,6 +72,10 @@ public class SerializableHasSerialVersionUIDFieldInspection
aClass instanceof PsiEnumConstantInitializer) {
return;
}
+ if (ignoreAnonymousInnerClasses &&
+ aClass instanceof PsiAnonymousClass) {
+ return;
+ }
final PsiField serialVersionUIDField = aClass.findFieldByName(
HardcodedMethodConstants.SERIAL_VERSION_UID, false);
if (serialVersionUIDField != null) {
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableHasSerializationMethodsInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableHasSerializationMethodsInspection.java
index fd39f8b830ba..fa3ed0d17fc9 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableHasSerializationMethodsInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableHasSerializationMethodsInspection.java
@@ -15,6 +15,7 @@
*/
package com.siyeh.ig.serialization;
+import com.intellij.psi.PsiAnonymousClass;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiEnumConstantInitializer;
import com.intellij.psi.PsiTypeParameter;
@@ -26,12 +27,14 @@ import org.jetbrains.annotations.NotNull;
public class SerializableHasSerializationMethodsInspection
extends SerializableInspection {
+ @Override
@NotNull
public String getDisplayName() {
return InspectionGadgetsBundle.message(
"serializable.has.serialization.methods.display.name");
}
+ @Override
@NotNull
public String buildErrorString(Object... infos) {
final boolean hasReadObject = ((Boolean)infos[0]).booleanValue();
@@ -48,6 +51,7 @@ public class SerializableHasSerializationMethodsInspection
}
}
+ @Override
public BaseInspectionVisitor buildVisitor() {
return new SerializableHasSerializationMethodsVisitor();
}
@@ -65,6 +69,10 @@ public class SerializableHasSerializationMethodsInspection
aClass instanceof PsiEnumConstantInitializer) {
return;
}
+ if (ignoreAnonymousInnerClasses &&
+ aClass instanceof PsiAnonymousClass) {
+ return;
+ }
if (!SerializationUtils.isSerializable(aClass)) {
return;
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableInnerClassHasSerialVersionUIDFieldVisitor.java b/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableInnerClassHasSerialVersionUIDFieldVisitor.java
index d1e758bafc86..a7d26d7aa874 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableInnerClassHasSerialVersionUIDFieldVisitor.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableInnerClassHasSerialVersionUIDFieldVisitor.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2007 Dave Griffith, Bas Leijdekkers
+ * Copyright 2003-2011 Dave Griffith, Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
*/
package com.siyeh.ig.serialization;
+import com.intellij.psi.PsiAnonymousClass;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiField;
import com.intellij.psi.PsiModifier;
@@ -28,7 +29,8 @@ class SerializableInnerClassHasSerialVersionUIDFieldVisitor
private final SerializableInspection inspection;
- public SerializableInnerClassHasSerialVersionUIDFieldVisitor(SerializableInspection inspection) {
+ public SerializableInnerClassHasSerialVersionUIDFieldVisitor(
+ SerializableInspection inspection) {
this.inspection = inspection;
}
@@ -38,6 +40,10 @@ class SerializableInnerClassHasSerialVersionUIDFieldVisitor
aClass.isEnum()) {
return;
}
+ if (inspection.ignoreAnonymousInnerClasses &&
+ aClass instanceof PsiAnonymousClass) {
+ return;
+ }
if (hasSerialVersionUIDField(aClass)) {
return;
}
@@ -57,7 +63,7 @@ class SerializableInnerClassHasSerialVersionUIDFieldVisitor
registerClassError(aClass);
}
- private boolean hasSerialVersionUIDField(PsiClass aClass) {
+ private static boolean hasSerialVersionUIDField(PsiClass aClass) {
final PsiField[] fields = aClass.getFields();
boolean hasSerialVersionUID = false;
for (PsiField field : fields) {
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableInnerClassWithNonSerializableOuterClassVisitor.java b/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableInnerClassWithNonSerializableOuterClassVisitor.java
index c404b45afb58..b9accba4ab2e 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableInnerClassWithNonSerializableOuterClassVisitor.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableInnerClassWithNonSerializableOuterClassVisitor.java
@@ -15,6 +15,7 @@
*/
package com.siyeh.ig.serialization;
+import com.intellij.psi.PsiAnonymousClass;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiModifier;
import com.siyeh.ig.BaseInspectionVisitor;
@@ -24,10 +25,10 @@ import org.jetbrains.annotations.NotNull;
class SerializableInnerClassWithNonSerializableOuterClassVisitor
extends BaseInspectionVisitor {
- private final SerializableInnerClassWithNonSerializableOuterClassInspection inspection;
+ private final SerializableInspection inspection;
public SerializableInnerClassWithNonSerializableOuterClassVisitor(
- SerializableInnerClassWithNonSerializableOuterClassInspection inspection) {
+ SerializableInspection inspection) {
this.inspection = inspection;
}
@@ -36,6 +37,10 @@ class SerializableInnerClassWithNonSerializableOuterClassVisitor
aClass.isEnum()) {
return;
}
+ if (inspection.ignoreAnonymousInnerClasses &&
+ aClass instanceof PsiAnonymousClass) {
+ return;
+ }
final PsiClass containingClass = aClass.getContainingClass();
if (containingClass == null) {
return;
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableInspection.java
index dfecdac65843..cea1a5826af0 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/SerializableInspection.java
@@ -19,22 +19,29 @@ import com.intellij.codeInspection.ui.AddAction;
import com.intellij.codeInspection.ui.ListTable;
import com.intellij.codeInspection.ui.ListWrappingTableModel;
import com.intellij.codeInspection.ui.RemoveAction;
+import com.intellij.openapi.actionSystem.ActionToolbar;
import com.intellij.openapi.util.InvalidDataException;
import com.intellij.openapi.util.WriteExternalException;
import com.intellij.psi.PsiClass;
import com.intellij.psi.util.InheritanceUtil;
+import com.intellij.ui.ScrollPaneFactory;
import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.psiutils.SerializationUtils;
+import com.siyeh.ig.ui.CheckBox;
+import com.siyeh.ig.ui.UiUtils;
import org.jdom.Element;
import javax.swing.*;
+import java.awt.*;
import java.util.ArrayList;
import java.util.List;
public abstract class SerializableInspection extends BaseInspection {
- /** @noinspection PublicField */
+ @SuppressWarnings({"PublicField"})
+ public boolean ignoreAnonymousInnerClasses = false;
+ @SuppressWarnings({"PublicField"})
public String superClassString = "java.awt.Component";
protected List superClassList = new ArrayList();
@@ -44,8 +51,41 @@ public abstract class SerializableInspection extends BaseInspection {
@Override
public JComponent createOptionsPanel() {
- final Form form = new Form();
- return form.getContentPanel();
+ final JComponent panel = new JPanel(new GridBagLayout());
+
+ final ListTable table = new ListTable(new ListWrappingTableModel(
+ superClassList, InspectionGadgetsBundle.message(
+ "ignore.classes.in.hierarchy.column.name")));
+ final JScrollPane scrollPane =
+ ScrollPaneFactory.createScrollPane(table);
+ final ActionToolbar toolbar =
+ UiUtils.createAddRemoveTreeAnnotationChooserToolbar(table,
+ InspectionGadgetsBundle.message(
+ "choose.super.class.to.ignore"));
+ final CheckBox checkBox = new CheckBox(InspectionGadgetsBundle.message(
+ "ignore.anonymous.inner.classes"), this,
+ "ignoreAnonymousInnerClasses");
+
+ final GridBagConstraints constraints = new GridBagConstraints();
+ constraints.gridx = 0;
+ constraints.gridy = 0;
+ constraints.insets.left = 4;
+ constraints.insets.right = 4;
+ constraints.fill = GridBagConstraints.HORIZONTAL;
+ panel.add(toolbar.getComponent(), constraints);
+
+ constraints.gridy = 1;
+ constraints.weightx = 1.0;
+ constraints.weighty = 1.0;
+ constraints.fill = GridBagConstraints.BOTH;
+ panel.add(scrollPane, constraints);
+
+ constraints.gridy = 2;
+ constraints.weighty = 0.0;
+ constraints.fill = GridBagConstraints.HORIZONTAL;
+ panel.add(checkBox, constraints);
+
+ return panel;
}
@Override
@@ -71,27 +111,4 @@ public abstract class SerializableInspection extends BaseInspection {
}
return false;
}
-
- private class Form {
-
- private JPanel contentPanel;
- private ListTable table;
- private JButton addButton;
- private JButton removeButton;
-
- Form() {
- addButton.setAction(new AddAction(table));
- removeButton.setAction(new RemoveAction(table));
- }
-
- private void createUIComponents() {
- table = new ListTable(new ListWrappingTableModel(superClassList,
- InspectionGadgetsBundle.message(
- "ignore.classes.in.hierarchy.column.name")));
- }
-
- public JPanel getContentPanel() {
- return contentPanel;
- }
- }
}
\ No newline at end of file