From 4aacb96f11250cfaceff9fb27d19a03537bf972c Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Tue, 27 Mar 2012 15:00:43 +0400 Subject: [PATCH] notnull --- .../artifacts/nodes/PackagingElementNode.java | 1 + .../artifacts/sourceItems/SourceItemNode.java | 2 + .../sourceItems/SourceItemsTreeRoot.java | 1 + .../ProjectStructureDaemonAnalyzer.java | 1 + .../classpath/ChooseLibrariesDialogBase.java | 1 + .../src/com/intellij/slicer/SliceNode.java | 1 + .../impl/DaemonTooltipRendererProvider.java | 3 +- .../formattingblocks/BlockTreeNode.java | 2 + .../impl/NativeFileIconProvider.java | 2 + .../src/com/intellij/ide/UiActivity.java | 2 + .../ide/projectView/PresentationData.java | 1 + .../intellij/openapi/util/ActiveRunnable.java | 5 +- .../src/com/intellij/ui/navigation/Place.java | 1 + .../com/intellij/ui/tabs/impl/JBTabsImpl.java | 1 + .../intellij/ui/treeStructure/SimpleNode.java | 2 + .../filtered/FilteringTreeStructure.java | 1 + .../ex/ErrorStripTooltipRendererProvider.java | 3 +- .../editor/impl/EditorMarkupModelImpl.java | 3 +- .../wm/impl/content/ToolWindowContentUi.java | 1 + .../src/com/intellij/ui/HeavyweightHint.java | 6 +- .../src/com/intellij/ui/Hint.java | 6 +- .../src/com/intellij/ui/LightweightHint.java | 101 +++++++++++------- .../util/ui/update/ComparableObject.java | 15 +-- .../util/xml/tree/BaseDomElementNode.java | 1 + .../util/xml/tree/DomElementsGroupNode.java | 2 + .../util/xml/tree/GenericValueNode.java | 2 + 26 files changed, 112 insertions(+), 55 deletions(-) diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/nodes/PackagingElementNode.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/nodes/PackagingElementNode.java index 74f8c0882532..e4e49aa18b0e 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/nodes/PackagingElementNode.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/nodes/PackagingElementNode.java @@ -80,6 +80,7 @@ public class PackagingElementNode> extends Artifac return myPackagingElements.size() == 1 ? myPackagingElements.get(0) : null; } + @NotNull @Override public Object[] getEqualityObjects() { return ArrayUtil.toObjectArray(myPackagingElements); diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemNode.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemNode.java index 35dcd13d1c2d..3abe7671318a 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemNode.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemNode.java @@ -20,6 +20,7 @@ import com.intellij.openapi.roots.ui.configuration.artifacts.ArtifactEditorEx; import com.intellij.packaging.ui.ArtifactEditorContext; import com.intellij.packaging.ui.PackagingSourceItem; import com.intellij.ui.treeStructure.SimpleTree; +import org.jetbrains.annotations.NotNull; import java.awt.event.InputEvent; import java.util.Collections; @@ -35,6 +36,7 @@ public class SourceItemNode extends SourceItemNodeBase { mySourceItem = sourceItem; } + @NotNull @Override public Object[] getEqualityObjects() { return new Object[]{mySourceItem}; diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemsTreeRoot.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemsTreeRoot.java index c094f3caa5bc..fa83689521e5 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemsTreeRoot.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemsTreeRoot.java @@ -35,6 +35,7 @@ public class SourceItemsTreeRoot extends SourceItemNodeBase { return null; } + @NotNull @Override public Object[] getEqualityObjects() { return new Object[]{"root"}; diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/ProjectStructureDaemonAnalyzer.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/ProjectStructureDaemonAnalyzer.java index 7d1e7c43b49f..b63cc1e5592e 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/ProjectStructureDaemonAnalyzer.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/daemon/ProjectStructureDaemonAnalyzer.java @@ -290,6 +290,7 @@ public class ProjectStructureDaemonAnalyzer implements Disposable { return myElement.equals(other.myElement) && (!other.myCheck || myCheck) && (!other.myCollectUsages || myCollectUsages); } + @NotNull @Override public Object[] getEqualityObjects() { return myEqualityObjects; diff --git a/java/idea-ui/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java b/java/idea-ui/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java index 2598cc730981..97649e847afb 100644 --- a/java/idea-ui/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java +++ b/java/idea-ui/src/com/intellij/util/ui/classpath/ChooseLibrariesDialogBase.java @@ -269,6 +269,7 @@ public abstract class ChooseLibrariesDialogBase extends DialogWrapper { return 0; } + @NotNull @Override public Object[] getEqualityObjects() { return new Object[] {myElement}; diff --git a/java/java-impl/src/com/intellij/slicer/SliceNode.java b/java/java-impl/src/com/intellij/slicer/SliceNode.java index 7247b7f0e31b..df114e5f9751 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceNode.java +++ b/java/java-impl/src/com/intellij/slicer/SliceNode.java @@ -144,6 +144,7 @@ public class SliceNode extends AbstractTreeNode implements Duplicate @Override protected PresentationData createPresentation() { return new PresentationData(){ + @NotNull @Override public Object[] getEqualityObjects() { return ArrayUtil.append(super.getEqualityObjects(), changed); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonTooltipRendererProvider.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonTooltipRendererProvider.java index 00d0e8345a60..822e68e24e21 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonTooltipRendererProvider.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/DaemonTooltipRendererProvider.java @@ -111,8 +111,9 @@ public class DaemonTooltipRendererProvider implements ErrorStripTooltipRendererP return new MyRenderer(text, width, new Object[] {text}); } + @NotNull @Override - public TrafficTooltipRenderer createTrafficTooltipRenderer(Runnable onHide, Editor editor) { + public TrafficTooltipRenderer createTrafficTooltipRenderer(@NotNull Runnable onHide, @NotNull Editor editor) { return new TrafficTooltipRendererImpl(onHide, editor); } diff --git a/platform/lang-impl/src/com/intellij/internal/psiView/formattingblocks/BlockTreeNode.java b/platform/lang-impl/src/com/intellij/internal/psiView/formattingblocks/BlockTreeNode.java index 624c8d643c4f..057beb6772be 100644 --- a/platform/lang-impl/src/com/intellij/internal/psiView/formattingblocks/BlockTreeNode.java +++ b/platform/lang-impl/src/com/intellij/internal/psiView/formattingblocks/BlockTreeNode.java @@ -7,6 +7,7 @@ import com.intellij.ui.SimpleTextAttributes; import com.intellij.ui.treeStructure.SimpleNode; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; +import org.jetbrains.annotations.NotNull; import java.awt.*; public class BlockTreeNode extends SimpleNode { @@ -56,6 +57,7 @@ public class BlockTreeNode extends SimpleNode { } + @NotNull @Override public Object[] getEqualityObjects() { return new Object[]{myBlock}; diff --git a/platform/lang-impl/src/com/intellij/openapi/fileTypes/impl/NativeFileIconProvider.java b/platform/lang-impl/src/com/intellij/openapi/fileTypes/impl/NativeFileIconProvider.java index 92d3cfa6a88b..2793909588ed 100644 --- a/platform/lang-impl/src/com/intellij/openapi/fileTypes/impl/NativeFileIconProvider.java +++ b/platform/lang-impl/src/com/intellij/openapi/fileTypes/impl/NativeFileIconProvider.java @@ -27,6 +27,7 @@ import com.intellij.ui.DeferredIconImpl; import com.intellij.ui.mac.foundation.Foundation; import com.intellij.util.Function; import com.intellij.util.ui.update.ComparableObject; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -134,6 +135,7 @@ public class NativeFileIconProvider implements FileIconProvider { myText = new Object[] {text, flags}; } + @NotNull public Object[] getEqualityObjects() { return myText; } diff --git a/platform/platform-api/src/com/intellij/ide/UiActivity.java b/platform/platform-api/src/com/intellij/ide/UiActivity.java index baf0d0ce9105..9066837fb0a8 100644 --- a/platform/platform-api/src/com/intellij/ide/UiActivity.java +++ b/platform/platform-api/src/com/intellij/ide/UiActivity.java @@ -17,6 +17,7 @@ package com.intellij.ide; import com.intellij.util.ui.update.ComparableObject; import com.intellij.util.ui.update.ComparableObjectCheck; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.ArrayList; @@ -38,6 +39,7 @@ public class UiActivity implements ComparableObject{ } } + @NotNull @Override public Object[] getEqualityObjects() { return new Object[] {myElements}; diff --git a/platform/platform-api/src/com/intellij/ide/projectView/PresentationData.java b/platform/platform-api/src/com/intellij/ide/projectView/PresentationData.java index 0f9a05a55653..146be9277bce 100644 --- a/platform/platform-api/src/com/intellij/ide/projectView/PresentationData.java +++ b/platform/platform-api/src/com/intellij/ide/projectView/PresentationData.java @@ -247,6 +247,7 @@ public class PresentationData implements ColoredItemPresentation, ComparableObje mySeparatorAbove = false; } + @NotNull public Object[] getEqualityObjects() { return new Object[]{myOpenIcon, myClosedIcon, myColoredText, myAttributesKey, myFont, myForcedTextForeground, myPresentableText, myLocationString, mySeparatorAbove}; diff --git a/platform/platform-api/src/com/intellij/openapi/util/ActiveRunnable.java b/platform/platform-api/src/com/intellij/openapi/util/ActiveRunnable.java index df59623806dd..d18d087232c2 100644 --- a/platform/platform-api/src/com/intellij/openapi/util/ActiveRunnable.java +++ b/platform/platform-api/src/com/intellij/openapi/util/ActiveRunnable.java @@ -16,17 +16,18 @@ package com.intellij.openapi.util; import com.intellij.util.ui.update.ComparableObject; +import org.jetbrains.annotations.NotNull; public abstract class ActiveRunnable extends ComparableObject.Impl { protected ActiveRunnable() { } - protected ActiveRunnable(final Object object) { + protected ActiveRunnable(@NotNull Object object) { super(object); } - protected ActiveRunnable(final Object[] objects) { + protected ActiveRunnable(@NotNull Object[] objects) { super(objects); } diff --git a/platform/platform-api/src/com/intellij/ui/navigation/Place.java b/platform/platform-api/src/com/intellij/ui/navigation/Place.java index cc88c74b6745..1bddf5a01215 100644 --- a/platform/platform-api/src/com/intellij/ui/navigation/Place.java +++ b/platform/platform-api/src/com/intellij/ui/navigation/Place.java @@ -29,6 +29,7 @@ public class Place implements ComparableObject { private LinkedHashMap myPath = new LinkedHashMap(); + @NotNull public final Object[] getEqualityObjects() { return new Object[] {myPath}; } diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java index 53ec6dcc98ab..4ec35a3fd404 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/JBTabsImpl.java @@ -3221,6 +3221,7 @@ public class JBTabsImpl extends JComponent return myInfo.getText(); } + @NotNull @Override public Object[] getEqualityObjects() { return new Object[] {myInfo}; diff --git a/platform/platform-api/src/com/intellij/ui/treeStructure/SimpleNode.java b/platform/platform-api/src/com/intellij/ui/treeStructure/SimpleNode.java index f39d2581d301..780680254082 100644 --- a/platform/platform-api/src/com/intellij/ui/treeStructure/SimpleNode.java +++ b/platform/platform-api/src/com/intellij/ui/treeStructure/SimpleNode.java @@ -24,6 +24,7 @@ import com.intellij.openapi.vcs.FileStatus; import com.intellij.ui.SimpleTextAttributes; import com.intellij.util.ui.update.ComparableObject; import com.intellij.util.ui.update.ComparableObjectCheck; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -263,6 +264,7 @@ public abstract class SimpleNode extends PresentableNodeDescriptor implements Co return list.toArray(new ColoredFragment[list.size()]); } + @NotNull public Object[] getEqualityObjects() { return NONE; } diff --git a/platform/platform-api/src/com/intellij/ui/treeStructure/filtered/FilteringTreeStructure.java b/platform/platform-api/src/com/intellij/ui/treeStructure/filtered/FilteringTreeStructure.java index 9b391992054f..b8b944ff8a46 100644 --- a/platform/platform-api/src/com/intellij/ui/treeStructure/filtered/FilteringTreeStructure.java +++ b/platform/platform-api/src/com/intellij/ui/treeStructure/filtered/FilteringTreeStructure.java @@ -243,6 +243,7 @@ public class FilteringTreeStructure extends AbstractTreeStructure { return super.getWeight(); } + @NotNull public Object[] getEqualityObjects() { return new Object[]{myDelegate}; } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/ErrorStripTooltipRendererProvider.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/ErrorStripTooltipRendererProvider.java index 195fe6ffcd35..9236d90ae977 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/ex/ErrorStripTooltipRendererProvider.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/ErrorStripTooltipRendererProvider.java @@ -34,5 +34,6 @@ public interface ErrorStripTooltipRendererProvider { TooltipRenderer calcTooltipRenderer(@NotNull String text); TooltipRenderer calcTooltipRenderer(@NotNull String text, int width); - TrafficTooltipRenderer createTrafficTooltipRenderer(Runnable onHide, Editor editor); + @NotNull + TrafficTooltipRenderer createTrafficTooltipRenderer(@NotNull Runnable onHide, @NotNull Editor editor); } \ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java index 698ddff7dabd..2b11e3e28c5a 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java @@ -813,8 +813,9 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark return new LineTooltipRenderer(text, width, new Object[] {text}); } + @NotNull @Override - public TrafficTooltipRenderer createTrafficTooltipRenderer(final Runnable onHide, Editor editor) { + public TrafficTooltipRenderer createTrafficTooltipRenderer(@NotNull final Runnable onHide, @NotNull Editor editor) { return new TrafficTooltipRenderer() { @Override public void repaintTooltipWindow() { diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ToolWindowContentUi.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ToolWindowContentUi.java index 460b3ffe3810..a47f9ca87997 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ToolWindowContentUi.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/content/ToolWindowContentUi.java @@ -556,6 +556,7 @@ public class ToolWindowContentUi extends JPanel implements ContentUI, PropertyCh return myContent.getDisplayName(); } + @NotNull @Override public Object[] getEqualityObjects() { return new Object[] {myContent}; diff --git a/platform/platform-impl/src/com/intellij/ui/HeavyweightHint.java b/platform/platform-impl/src/com/intellij/ui/HeavyweightHint.java index e6f2553604c3..374c3fa89a0c 100644 --- a/platform/platform-impl/src/com/intellij/ui/HeavyweightHint.java +++ b/platform/platform-impl/src/com/intellij/ui/HeavyweightHint.java @@ -115,17 +115,17 @@ public class HeavyweightHint implements Hint { } @Override - public void setLocation(RelativePoint point) { + public void setLocation(@NotNull RelativePoint point) { if (myWindow != null) { myWindow.setLocation(point.getScreenPoint().x, point.getScreenPoint().y); } } - public void addHintListener(HintListener listener) { + public void addHintListener(@NotNull HintListener listener) { myListenerList.add(HintListener.class, listener); } - public void removeHintListener(HintListener listener) { + public void removeHintListener(@NotNull HintListener listener) { myListenerList.remove(HintListener.class, listener); } } \ No newline at end of file diff --git a/platform/platform-impl/src/com/intellij/ui/Hint.java b/platform/platform-impl/src/com/intellij/ui/Hint.java index 451ee6fbffd9..bbdba268e32b 100644 --- a/platform/platform-impl/src/com/intellij/ui/Hint.java +++ b/platform/platform-impl/src/com/intellij/ui/Hint.java @@ -48,13 +48,13 @@ public interface Hint { */ void hide(); - void addHintListener(HintListener listener); + void addHintListener(@NotNull HintListener listener); - void removeHintListener(HintListener listener); + void removeHintListener(@NotNull HintListener listener); void pack(); - void setLocation(RelativePoint point); + void setLocation(@NotNull RelativePoint point); /** * Pack and set location diff --git a/platform/platform-impl/src/com/intellij/ui/LightweightHint.java b/platform/platform-impl/src/com/intellij/ui/LightweightHint.java index 0f09b4ec66dc..895b38a61e3e 100644 --- a/platform/platform-impl/src/com/intellij/ui/LightweightHint.java +++ b/platform/platform-impl/src/com/intellij/ui/LightweightHint.java @@ -110,6 +110,7 @@ public class LightweightHint extends UserDataHolderBase implements Hint { * are in parentComponent coordinate system. Note that the component * appears on 250 layer. */ + @Override public void show(@NotNull final JComponent parentComponent, final int x, final int y, @@ -129,29 +130,33 @@ public class LightweightHint extends UserDataHolderBase implements Hint { myComponent.validate(); if (!myForceShowAsPopup && - (myForceLightweightPopup || fitsLayeredPane(layeredPane, myComponent, new RelativePoint(parentComponent, new Point(x, y)), hintHint))) { + (myForceLightweightPopup || + fitsLayeredPane(layeredPane, myComponent, new RelativePoint(parentComponent, new Point(x, y)), hintHint))) { beforeShow(); final Dimension preferredSize = myComponent.getPreferredSize(); if (hintHint.isAwtTooltip()) { - IdeTooltip tooltip = new IdeTooltip(hintHint.getOriginalComponent(), hintHint.getOriginalPoint(), myComponent, hintHint, myComponent) { - @Override - protected boolean canAutohideOn(TooltipEvent event) { - if (event.getInputEvent() instanceof MouseEvent) { - return !(hintHint.isContentActive() && event.isIsEventInsideBalloon()); - } else if (event.getAction() != null) { - return false; - } else { - return true; + IdeTooltip tooltip = + new IdeTooltip(hintHint.getOriginalComponent(), hintHint.getOriginalPoint(), myComponent, hintHint, myComponent) { + @Override + protected boolean canAutohideOn(TooltipEvent event) { + if (event.getInputEvent() instanceof MouseEvent) { + return !(hintHint.isContentActive() && event.isIsEventInsideBalloon()); + } + else if (event.getAction() != null) { + return false; + } + else { + return true; + } } - } - @Override - protected void onHidden() { - fireHintHidden(); - TooltipController.getInstance().resetCurrent(); - } + @Override + protected void onHidden() { + fireHintHidden(); + TooltipController.getInstance().resetCurrent(); + } @Override public boolean canBeDismissedOnTimeout() { @@ -170,7 +175,8 @@ public class LightweightHint extends UserDataHolderBase implements Hint { .setHint(true); myComponent.validate(); myCurrentIdeTooltip = IdeTooltipManager.getInstance().show(tooltip, hintHint.isShowImmediately()); - } else { + } + else { final Point layeredPanePoint = SwingUtilities.convertPoint(parentComponent, x, y, layeredPane); myComponent.setBounds(layeredPanePoint.x, layeredPanePoint.y, preferredSize.width, preferredSize.height); layeredPane.add(myComponent, JLayeredPane.POPUP_LAYER); @@ -218,8 +224,9 @@ public class LightweightHint extends UserDataHolderBase implements Hint { myPopup.show(new RelativePoint(myParentComponent, new Point(actualPoint.x, actualPoint.y))); } } - - protected void onPopupCancel() {} + + protected void onPopupCancel() { + } private void fixActualPoint(Point actualPoint) { if (!isAwtTooltip()) return; @@ -263,11 +270,13 @@ public class LightweightHint extends UserDataHolderBase implements Hint { if (pos == Balloon.Position.above || pos == Balloon.Position.below) { boolean heightFit = target.y - size.height - pointer > 0 || target.y + size.height + pointer < paneSize.height; return heightFit && size.width + pointer < paneSize.width; - } else { + } + else { boolean widthFit = target.x - size.width - pointer > 0 || target.x + size.width + pointer < paneSize.width; return widthFit && size.height + pointer < paneSize.height; } - } else { + } + else { final Rectangle lpRect = new Rectangle(pane.getLocationOnScreen().x, pane.getLocationOnScreen().y, pane.getWidth(), pane.getHeight()); Rectangle componentRect = new Rectangle(desiredLocation.getScreenPoint().x, desiredLocation.getScreenPoint().y, @@ -291,12 +300,15 @@ public class LightweightHint extends UserDataHolderBase implements Hint { return myComponent.getBounds(); } + @Override public boolean isVisible() { if (myIsRealPopup) { return myPopup != null && myPopup.isVisible(); - } else if (myCurrentIdeTooltip != null) { + } + else if (myCurrentIdeTooltip != null) { return myComponent.isShowing() || IdeTooltipManager.getInstance().isQueuedToShow(myCurrentIdeTooltip); - } else { + } + else { return myComponent.isShowing(); } } @@ -305,6 +317,7 @@ public class LightweightHint extends UserDataHolderBase implements Hint { return myIsRealPopup | myForceShowAsPopup; } + @Override public void hide() { hide(false); } @@ -314,7 +327,8 @@ public class LightweightHint extends UserDataHolderBase implements Hint { if (myIsRealPopup) { if (ok) { myPopup.closeOk(null); - } else { + } + else { myPopup.cancel(); } myPopup = null; @@ -324,7 +338,8 @@ public class LightweightHint extends UserDataHolderBase implements Hint { IdeTooltip tooltip = myCurrentIdeTooltip; myCurrentIdeTooltip = null; tooltip.hide(); - } else { + } + else { final JRootPane rootPane = myComponent.getRootPane(); if (rootPane != null) { final Rectangle bounds = myComponent.getBounds(); @@ -375,11 +390,13 @@ public class LightweightHint extends UserDataHolderBase implements Hint { return myComponent; } - public final void addHintListener(final HintListener listener) { + @Override + public final void addHintListener(@NotNull final HintListener listener) { myListenerList.add(HintListener.class, listener); } - public final void removeHintListener(final HintListener listener) { + @Override + public final void removeHintListener(@NotNull final HintListener listener) { myListenerList.remove(HintListener.class, listener); } @@ -388,13 +405,14 @@ public class LightweightHint extends UserDataHolderBase implements Hint { if (isRealPopup()) { location = myPopup.getLocationOnScreen(); SwingUtilities.convertPointFromScreen(location, c); - } else { + } + else { if (myCurrentIdeTooltip != null) { Point tipPoint = myCurrentIdeTooltip.getPoint(); Component tipComponent = myCurrentIdeTooltip.getComponent(); return SwingUtilities.convertPoint(tipComponent, tipPoint, c); - - } else { + } + else { location = SwingUtilities.convertPoint( myComponent.getParent(), myComponent.getLocation(), @@ -407,10 +425,11 @@ public class LightweightHint extends UserDataHolderBase implements Hint { } @Override - public void setLocation(RelativePoint point) { + public void setLocation(@NotNull RelativePoint point) { if (isRealPopup()) { myPopup.setLocation(point.getScreenPoint()); - } else { + } + else { if (myCurrentIdeTooltip != null) { Point screenPoint = point.getScreenPoint(); if (!screenPoint.equals(new RelativePoint(myCurrentIdeTooltip.getComponent(), myCurrentIdeTooltip.getPoint()).getScreenPoint())) { @@ -418,7 +437,8 @@ public class LightweightHint extends UserDataHolderBase implements Hint { myCurrentIdeTooltip.setComponent(point.getComponent()); IdeTooltipManager.getInstance().show(myCurrentIdeTooltip, true, false); } - } else { + } + else { Point targetPoint = point.getPoint(myComponent.getParent()); myComponent.setLocation(targetPoint); @@ -431,11 +451,13 @@ public class LightweightHint extends UserDataHolderBase implements Hint { public void setSize(Dimension size) { if (myIsRealPopup) { myPopup.setSize(size); - } else { + } + else { //todo kirillk if (isAwtTooltip()) { return; - } else { + } + else { myComponent.setSize(size); myComponent.revalidate(); @@ -458,14 +480,17 @@ public class LightweightHint extends UserDataHolderBase implements Hint { if (myIsRealPopup) { Window wnd = SwingUtilities.getWindowAncestor(myComponent); return wnd.getBounds().contains(target.getScreenPoint()); - } else if (myCurrentIdeTooltip != null) { + } + else if (myCurrentIdeTooltip != null) { return myCurrentIdeTooltip.isInside(target); - } else { + } + else { return new Rectangle(myComponent.getLocationOnScreen(), myComponent.getSize()).contains(target.getScreenPoint()); } } private final class MyEscListener implements ActionListener { + @Override public final void actionPerformed(final ActionEvent e) { hide(); } @@ -477,7 +502,7 @@ public class LightweightHint extends UserDataHolderBase implements Hint { } public boolean canControlAutoHide() { - return myCurrentIdeTooltip != null && myCurrentIdeTooltip.getTipComponent().isShowing() ; + return myCurrentIdeTooltip != null && myCurrentIdeTooltip.getTipComponent().isShowing(); } public IdeTooltip getCurrentIdeTooltip() { diff --git a/platform/util/src/com/intellij/util/ui/update/ComparableObject.java b/platform/util/src/com/intellij/util/ui/update/ComparableObject.java index bfe5f48d776e..dea34bd8b0f9 100644 --- a/platform/util/src/com/intellij/util/ui/update/ComparableObject.java +++ b/platform/util/src/com/intellij/util/ui/update/ComparableObject.java @@ -16,40 +16,43 @@ package com.intellij.util.ui.update; import com.intellij.util.ArrayUtil; +import org.jetbrains.annotations.NotNull; public interface ComparableObject { - Object[] NONE = ArrayUtil.EMPTY_OBJECT_ARRAY; + @NotNull Object[] getEqualityObjects(); class Impl implements ComparableObject { - - private Object[] myObjects; + private final Object[] myObjects; public Impl() { this(NONE); } - public Impl(Object object) { + public Impl(@NotNull Object object) { this(new Object[] {object}); } - public Impl(Object[] objects) { + public Impl(@NotNull Object[] objects) { myObjects = objects; } + @NotNull + @Override public Object[] getEqualityObjects() { return myObjects; } + @Override public final boolean equals(Object obj) { return ComparableObjectCheck.equals(this, obj); } + @Override public final int hashCode() { return ComparableObjectCheck.hashCode(this, super.hashCode()); } } - } diff --git a/xml/dom-openapi/src/com/intellij/util/xml/tree/BaseDomElementNode.java b/xml/dom-openapi/src/com/intellij/util/xml/tree/BaseDomElementNode.java index b24e352313a1..92aaedede5a5 100644 --- a/xml/dom-openapi/src/com/intellij/util/xml/tree/BaseDomElementNode.java +++ b/xml/dom-openapi/src/com/intellij/util/xml/tree/BaseDomElementNode.java @@ -178,6 +178,7 @@ public class BaseDomElementNode extends AbstractDomElementNode { return consolidated; } + @NotNull public Object[] getEqualityObjects() { return new Object[]{myDomElement}; } diff --git a/xml/dom-openapi/src/com/intellij/util/xml/tree/DomElementsGroupNode.java b/xml/dom-openapi/src/com/intellij/util/xml/tree/DomElementsGroupNode.java index 83fba1184617..ea8ca192df60 100644 --- a/xml/dom-openapi/src/com/intellij/util/xml/tree/DomElementsGroupNode.java +++ b/xml/dom-openapi/src/com/intellij/util/xml/tree/DomElementsGroupNode.java @@ -28,6 +28,7 @@ import com.intellij.util.xml.highlighting.DomElementAnnotationsManager; import com.intellij.util.xml.highlighting.DomElementProblemDescriptor; import com.intellij.util.xml.highlighting.DomElementsProblemsHolder; import com.intellij.util.xml.reflect.DomCollectionChildDescription; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.util.ArrayList; @@ -60,6 +61,7 @@ public class DomElementsGroupNode extends AbstractDomElementNode { return simpleNodes.toArray(new SimpleNode[simpleNodes.size()]); } + @NotNull public Object[] getEqualityObjects() { return new Object[]{myParentElement, myChildrenTagName}; } diff --git a/xml/dom-openapi/src/com/intellij/util/xml/tree/GenericValueNode.java b/xml/dom-openapi/src/com/intellij/util/xml/tree/GenericValueNode.java index 77b161179468..d71a64c4692d 100644 --- a/xml/dom-openapi/src/com/intellij/util/xml/tree/GenericValueNode.java +++ b/xml/dom-openapi/src/com/intellij/util/xml/tree/GenericValueNode.java @@ -20,6 +20,7 @@ import com.intellij.ui.treeStructure.SimpleNode; import com.intellij.util.xml.GenericDomValue; import com.intellij.util.xml.DomElement; import com.intellij.ui.SimpleTextAttributes; +import org.jetbrains.annotations.NotNull; public class GenericValueNode extends AbstractDomElementNode { protected GenericDomValue myModelElement; @@ -66,6 +67,7 @@ public class GenericValueNode extends AbstractDomElementNode { return NO_CHILDREN; } + @NotNull public Object[] getEqualityObjects() { return new Object[]{myModelElement}; }