mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge branch 'master' of git.labs.intellij.net:idea/community
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 <code>#ref</code> may not be initialized during object construction #loc
|
||||
instance.Variable.may.not.be.initialized.problem.descriptor.junit=Instance field <code>#ref</code> 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 <code>#ref</code> 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 <code>#ref</code> used during class initialization #loc
|
||||
@@ -1841,4 +1841,6 @@ package.dot.html.may.be.package.info.problem.descriptor=<code>package.html</code
|
||||
package.dot.html.may.be.package.info.delete.quickfix=Delete package.html
|
||||
package.dot.html.delete.command=package.html deletion
|
||||
package.dot.html.may.be.package.info.convert.quickfix=Convert to package-info.java
|
||||
package.dot.html.convert.command=package.html to package-info.java conversion
|
||||
package.dot.html.convert.command=package.html to package-info.java conversion
|
||||
choose.super.class.to.ignore=Choose class
|
||||
ignore.anonymous.inner.classes=Ignore anonymous inner classes
|
||||
+12
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2007 Dave Griffith, Bas Leijdekkers
|
||||
* Copyright 2006-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;
|
||||
@@ -26,18 +27,21 @@ import org.jetbrains.annotations.NotNull;
|
||||
public class NonSerializableFieldInSerializableClassInspection
|
||||
extends SerializableInspection {
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String getDisplayName() {
|
||||
return InspectionGadgetsBundle.message(
|
||||
"non.serializable.field.in.serializable.class.display.name");
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String buildErrorString(Object... infos) {
|
||||
return InspectionGadgetsBundle.message(
|
||||
"non.serializable.field.in.serializable.class.problem.descriptor");
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseInspectionVisitor buildVisitor() {
|
||||
return new NonSerializableFieldInSerializableClassVisitor();
|
||||
}
|
||||
@@ -51,6 +55,13 @@ public class NonSerializableFieldInSerializableClassInspection
|
||||
return;
|
||||
}
|
||||
final PsiClass aClass = field.getContainingClass();
|
||||
if (aClass == null) {
|
||||
return;
|
||||
}
|
||||
if (ignoreAnonymousInnerClasses &&
|
||||
aClass instanceof PsiAnonymousClass) {
|
||||
return;
|
||||
}
|
||||
if (!SerializationUtils.isSerializable(aClass)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.siyeh.ig.serialization.SerializableInspection.Form">
|
||||
<grid id="27dc6" binding="contentPanel" layout-manager="GridLayoutManager" row-count="3" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="4" vgap="4">
|
||||
<margin top="4" left="4" bottom="4" right="4"/>
|
||||
<constraints>
|
||||
<xy x="20" y="20" width="368" height="330"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<scrollpane class="com.intellij.ui.components.JBScrollPane" id="4a009">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="3" col-span="1" vsize-policy="7" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="ec407" class="com.intellij.codeInspection.ui.ListTable" binding="table" custom-create="true">
|
||||
<constraints/>
|
||||
<properties/>
|
||||
</component>
|
||||
</children>
|
||||
</scrollpane>
|
||||
<component id="d216b" class="javax.swing.JButton" binding="addButton">
|
||||
<constraints>
|
||||
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="Button"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="c54c6" class="javax.swing.JButton" binding="removeButton">
|
||||
<constraints>
|
||||
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="Button"/>
|
||||
</properties>
|
||||
</component>
|
||||
<vspacer id="c7b68">
|
||||
<constraints>
|
||||
<grid row="2" column="1" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
</vspacer>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
+7
-1
@@ -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) {
|
||||
|
||||
+8
@@ -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;
|
||||
}
|
||||
|
||||
+9
-3
@@ -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) {
|
||||
|
||||
+7
-2
@@ -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;
|
||||
|
||||
+43
-26
@@ -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<String> 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user