From 43b7cac7ef4d04fc0ea362027ccb5284b50db3be Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Tue, 13 Mar 2012 18:46:46 +0400 Subject: [PATCH] notnull 2 --- .../intellij/ide/JavaFilePasteProvider.java | 7 +- .../ide/projectView/impl/PackageViewPane.java | 4 +- .../editor/ex/DocumentBulkUpdateListener.java | 9 +- .../impl/source/text/BlockSupportImpl.java | 2 +- .../folding/impl/CodeFoldingManagerImpl.java | 2 +- .../intention/impl/config/LazyEditor.java | 2 +- .../console/LanguageConsoleImpl.java | 1 + .../com/intellij/ide/CopyPasteDelegator.java | 18 +- .../intellij/ide/FileListPasteProvider.java | 7 +- .../ide/actions/PasteReferenceProvider.java | 7 +- .../ide/commander/CommanderPanel.java | 4 +- .../FavoritesTreeViewPanel.java | 4 +- .../hierarchy/TypeHierarchyBrowserBase.java | 4 +- .../ide/projectView/impl/ProjectViewImpl.java | 8 +- .../ide/scopeView/ScopeTreeViewPanel.java | 4 +- .../com/intellij/ide/util/DeleteHandler.java | 5 +- .../injected/editor/EditorWindow.java | 4 + .../roots/impl/LibraryOrderEntryBaseImpl.java | 30 +- .../actions/ModuleDeleteProvider.java | 4 +- .../psi/impl/PsiToDocumentSynchronizer.java | 7 +- .../execution/ui/ConsoleViewContentType.java | 4 +- .../src/com/intellij/ide/CopyProvider.java | 7 +- .../src/com/intellij/ide/CutProvider.java | 7 +- .../src/com/intellij/ide/DataManager.java | 1 + .../src/com/intellij/ide/DeleteProvider.java | 5 +- .../src/com/intellij/ide/PasteProvider.java | 7 +- .../com/intellij/openapi/editor/Editor.java | 1 + .../editor/actionSystem/EditorAction.java | 9 +- .../editor/colors/EditorColorsScheme.java | 2 + .../src/com/intellij/ui/TreeCopyProvider.java | 7 +- .../execution/impl/ConsoleViewUtil.java | 2 + .../errorTreeView/NewErrorTreeViewPanel.java | 6 +- .../intellij/ide/impl/DataManagerImpl.java | 1 + .../intellij/idea/CommandLineApplication.java | 1 + .../openapi/command/impl/CommandMerger.java | 6 +- .../openapi/command/impl/UndoManagerImpl.java | 19 +- .../command/impl/UndoRedoStacksHolder.java | 43 +- .../openapi/command/impl/UndoableGroup.java | 2 + .../colors/impl/AbstractColorsScheme.java | 2 + .../colors/impl/DelegateColorScheme.java | 2 + .../intellij/openapi/editor/ex/EditorEx.java | 3 + .../openapi/editor/impl/CaretModelImpl.java | 4 +- .../openapi/editor/impl/EditorImpl.java | 438 ++++++++++-------- .../editor/impl/TextDrawingCallback.java | 4 +- .../editor/textarea/TextComponentEditor.java | 1 + .../actions/VirtualFileDeleteProvider.java | 5 +- .../openapi/vfs/newvfs/VfsImplUtil.java | 6 +- .../execution/testframework/TestTreeView.java | 6 +- .../intellij/usages/impl/UsageViewImpl.java | 6 +- .../shelf/ShelvedChangesViewManager.java | 12 +- .../vcs/impl/LineStatusTrackerManager.java | 4 +- .../lang/ant/config/execution/TreeView.java | 7 +- .../dynamic/DynamicToolWindowWrapper.java | 4 +- .../ResourceBundleDeleteProvider.java | 5 +- .../uiDesigner/CutCopyPasteSupport.java | 19 +- .../componentTree/ComponentTree.java | 4 +- .../designSurface/GridCaptionPanel.java | 5 +- .../uiDesigner/designSurface/GuiEditor.java | 4 +- .../FormMergerTreeStructureProvider.java | 5 +- .../actions/CommonEditActionsProvider.java | 23 +- 60 files changed, 476 insertions(+), 356 deletions(-) diff --git a/java/java-impl/src/com/intellij/ide/JavaFilePasteProvider.java b/java/java-impl/src/com/intellij/ide/JavaFilePasteProvider.java index f7775adce57e..06b1828f787c 100644 --- a/java/java-impl/src/com/intellij/ide/JavaFilePasteProvider.java +++ b/java/java-impl/src/com/intellij/ide/JavaFilePasteProvider.java @@ -29,6 +29,7 @@ import com.intellij.openapi.util.TextRange; import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleManager; import com.intellij.util.IncorrectOperationException; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.awt.datatransfer.DataFlavor; @@ -38,7 +39,7 @@ import java.awt.datatransfer.Transferable; * @author yole */ public class JavaFilePasteProvider implements PasteProvider { - public void performPaste(final DataContext dataContext) { + public void performPaste(@NotNull final DataContext dataContext) { final Project project = DataKeys.PROJECT.getData(dataContext); final IdeView ideView = DataKeys.IDE_VIEW.getData(dataContext); if (project == null || ideView == null) return; @@ -107,11 +108,11 @@ public class JavaFilePasteProvider implements PasteProvider { } } - public boolean isPastePossible(final DataContext dataContext) { + public boolean isPastePossible(@NotNull final DataContext dataContext) { return true; } - public boolean isPasteEnabled(final DataContext dataContext) { + public boolean isPasteEnabled(@NotNull final DataContext dataContext) { final Project project = DataKeys.PROJECT.getData(dataContext); final IdeView ideView = DataKeys.IDE_VIEW.getData(dataContext); if (project == null || ideView == null || ideView.getDirectories().length == 0) { diff --git a/java/java-impl/src/com/intellij/ide/projectView/impl/PackageViewPane.java b/java/java-impl/src/com/intellij/ide/projectView/impl/PackageViewPane.java index 8cd27169478f..593f15abcd84 100644 --- a/java/java-impl/src/com/intellij/ide/projectView/impl/PackageViewPane.java +++ b/java/java-impl/src/com/intellij/ide/projectView/impl/PackageViewPane.java @@ -293,14 +293,14 @@ public final class PackageViewPane extends AbstractProjectViewPSIPane { } private final class MyDeletePSIElementProvider implements DeleteProvider { - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { for (PsiDirectory directory : getSelectedDirectories()) { if (!directory.getManager().isInProject(directory)) return false; } return true; } - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { List allElements = Arrays.asList(getSelectedDirectories()); List validElements = new ArrayList(); for (PsiElement psiElement : allElements) { diff --git a/platform/core-impl/src/com/intellij/openapi/editor/ex/DocumentBulkUpdateListener.java b/platform/core-impl/src/com/intellij/openapi/editor/ex/DocumentBulkUpdateListener.java index 72a53cbe6e08..b85db01dc00b 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/ex/DocumentBulkUpdateListener.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/ex/DocumentBulkUpdateListener.java @@ -21,17 +21,18 @@ package com.intellij.openapi.editor.ex; import com.intellij.openapi.editor.Document; import com.intellij.util.messages.Topic; +import org.jetbrains.annotations.NotNull; public interface DocumentBulkUpdateListener { Topic TOPIC = Topic.create("Bulk document change notifcation like reformat, etc.", DocumentBulkUpdateListener.class); - void updateStarted(Document doc); - void updateFinished(Document doc); + void updateStarted(@NotNull Document doc); + void updateFinished(@NotNull Document doc); abstract class Adapter implements DocumentBulkUpdateListener { @Override - public void updateFinished(final Document doc) {} + public void updateFinished(@NotNull final Document doc) {} @Override - public void updateStarted(final Document doc) {} + public void updateStarted(@NotNull final Document doc) {} } } \ No newline at end of file diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java b/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java index 1daba8253274..efb9d3bf0aa8 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java @@ -55,7 +55,7 @@ public class BlockSupportImpl extends BlockSupport { public BlockSupportImpl(Project project) { project.getMessageBus().connect().subscribe(DocumentBulkUpdateListener.TOPIC, new DocumentBulkUpdateListener.Adapter() { @Override - public void updateStarted(final Document doc) { + public void updateStarted(@NotNull final Document doc) { doc.putUserData(DO_NOT_REPARSE_INCREMENTALLY, Boolean.TRUE); } }); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/CodeFoldingManagerImpl.java b/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/CodeFoldingManagerImpl.java index 92e4f5bdc96a..f2008c380b8f 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/CodeFoldingManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/folding/impl/CodeFoldingManagerImpl.java @@ -59,7 +59,7 @@ public class CodeFoldingManagerImpl extends CodeFoldingManager implements Projec CodeFoldingManagerImpl(Project project) { myProject = project; project.getMessageBus().connect().subscribe(DocumentBulkUpdateListener.TOPIC, new DocumentBulkUpdateListener.Adapter() { - public void updateStarted(final Document doc) { + public void updateStarted(@NotNull final Document doc) { resetFoldingInfo(doc); } }); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/config/LazyEditor.java b/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/config/LazyEditor.java index 676b37d33b3e..d80dd4be9c8e 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/config/LazyEditor.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/intention/impl/config/LazyEditor.java @@ -1,4 +1,3 @@ - package com.intellij.codeInsight.intention.impl.config; import com.intellij.openapi.editor.*; @@ -218,6 +217,7 @@ class LazyEditor extends UserDataHolderBase implements Editor { return getEditor().getHeaderComponent(); } + @NotNull public IndentsModel getIndentsModel() { return getEditor().getIndentsModel(); } diff --git a/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java b/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java index 4dc491c76175..ae4db40e4b7f 100644 --- a/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java @@ -142,6 +142,7 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider { public void initComponents() { final EditorColorsScheme colorsScheme = myConsoleEditor.getColorsScheme(); final DelegateColorScheme scheme = new DelegateColorScheme(colorsScheme) { + @NotNull @Override public Color getDefaultBackground() { final Color color = getColor(ConsoleViewContentType.CONSOLE_BACKGROUND_KEY); diff --git a/platform/lang-impl/src/com/intellij/ide/CopyPasteDelegator.java b/platform/lang-impl/src/com/intellij/ide/CopyPasteDelegator.java index 25d449fb3c83..76c9444edd19 100644 --- a/platform/lang-impl/src/com/intellij/ide/CopyPasteDelegator.java +++ b/platform/lang-impl/src/com/intellij/ide/CopyPasteDelegator.java @@ -82,22 +82,22 @@ public abstract class CopyPasteDelegator implements CopyPasteSupport { } private class MyEditable implements CutProvider, CopyProvider, PasteProvider { - public void performCopy(DataContext dataContext) { + public void performCopy(@NotNull DataContext dataContext) { PsiElement[] elements = getValidSelectedElements(); PsiCopyPasteManager.getInstance().setElements(elements, true); updateView(); } - public boolean isCopyEnabled(DataContext dataContext) { + public boolean isCopyEnabled(@NotNull DataContext dataContext) { PsiElement[] elements = getValidSelectedElements(); return CopyHandler.canCopy(elements) || PsiCopyPasteManager.asFileList(elements) != null; } - public boolean isCopyVisible(DataContext dataContext) { + public boolean isCopyVisible(@NotNull DataContext dataContext) { return true; } - public void performCut(DataContext dataContext) { + public void performCut(@NotNull DataContext dataContext) { PsiElement[] elements = getValidSelectedElements(); if (MoveHandler.adjustForMove(myProject, elements, null) == null) { return; @@ -108,16 +108,16 @@ public abstract class CopyPasteDelegator implements CopyPasteSupport { updateView(); } - public boolean isCutEnabled(DataContext dataContext) { + public boolean isCutEnabled(@NotNull DataContext dataContext) { final PsiElement[] elements = getValidSelectedElements(); return elements.length != 0 && MoveHandler.canMove(elements, null); } - public boolean isCutVisible(DataContext dataContext) { + public boolean isCutVisible(@NotNull DataContext dataContext) { return true; } - public void performPaste(DataContext dataContext) { + public void performPaste(@NotNull DataContext dataContext) { if (!performDefaultPaste(dataContext)) { for(PasteProvider provider: Extensions.getExtensions(EP_NAME)) { if (provider.isPasteEnabled(dataContext)) { @@ -176,11 +176,11 @@ public abstract class CopyPasteDelegator implements CopyPasteSupport { return true; } - public boolean isPastePossible(DataContext dataContext) { + public boolean isPastePossible(@NotNull DataContext dataContext) { return true; } - public boolean isPasteEnabled(DataContext dataContext){ + public boolean isPasteEnabled(@NotNull DataContext dataContext){ if (isDefaultPasteEnabled(dataContext)) { return true; } diff --git a/platform/lang-impl/src/com/intellij/ide/FileListPasteProvider.java b/platform/lang-impl/src/com/intellij/ide/FileListPasteProvider.java index 04cdc5dcd564..33d59f2c117a 100644 --- a/platform/lang-impl/src/com/intellij/ide/FileListPasteProvider.java +++ b/platform/lang-impl/src/com/intellij/ide/FileListPasteProvider.java @@ -32,6 +32,7 @@ import com.intellij.psi.PsiManager; import com.intellij.psi.util.PsiUtilCore; import com.intellij.refactoring.copy.CopyFilesOrDirectoriesHandler; import com.intellij.refactoring.move.moveFilesOrDirectories.MoveFilesOrDirectoriesHandler; +import org.jetbrains.annotations.NotNull; import java.awt.datatransfer.Transferable; import java.io.File; @@ -42,7 +43,7 @@ import java.util.List; * @author yole */ public class FileListPasteProvider implements PasteProvider { - public void performPaste(DataContext dataContext) { + public void performPaste(@NotNull DataContext dataContext) { final Project project = PlatformDataKeys.PROJECT.getData(dataContext); final IdeView ideView = LangDataKeys.IDE_VIEW.getData(dataContext); if (project == null || ideView == null) return; @@ -78,11 +79,11 @@ public class FileListPasteProvider implements PasteProvider { } } - public boolean isPastePossible(DataContext dataContext) { + public boolean isPastePossible(@NotNull DataContext dataContext) { return true; } - public boolean isPasteEnabled(DataContext dataContext) { + public boolean isPasteEnabled(@NotNull DataContext dataContext) { final Transferable contents = CopyPasteManager.getInstance().getContents(); final IdeView ideView = LangDataKeys.IDE_VIEW.getData(dataContext); return contents != null && FileCopyPasteUtil.isFileListFlavorSupported(contents) && ideView != null; diff --git a/platform/lang-impl/src/com/intellij/ide/actions/PasteReferenceProvider.java b/platform/lang-impl/src/com/intellij/ide/actions/PasteReferenceProvider.java index e2b11bc6311b..2fc615e5d58d 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/PasteReferenceProvider.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/PasteReferenceProvider.java @@ -34,12 +34,13 @@ import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.util.Producer; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.awt.datatransfer.Transferable; public class PasteReferenceProvider implements PasteProvider { - public void performPaste(DataContext dataContext) { + public void performPaste(@NotNull DataContext dataContext) { final Project project = PlatformDataKeys.PROJECT.getData(dataContext); final Editor editor = PlatformDataKeys.EDITOR.getData(dataContext); if (project == null || editor == null) return; @@ -61,13 +62,13 @@ public class PasteReferenceProvider implements PasteProvider { } } - public boolean isPastePossible(DataContext dataContext) { + public boolean isPastePossible(@NotNull DataContext dataContext) { final Project project = PlatformDataKeys.PROJECT.getData(dataContext); final Editor editor = PlatformDataKeys.EDITOR.getData(dataContext); return project != null && editor != null && getCopiedFqn(dataContext) != null; } - public boolean isPasteEnabled(DataContext dataContext) { + public boolean isPasteEnabled(@NotNull DataContext dataContext) { final Project project = PlatformDataKeys.PROJECT.getData(dataContext); String fqn = getCopiedFqn(dataContext); if (project == null || fqn == null) { diff --git a/platform/lang-impl/src/com/intellij/ide/commander/CommanderPanel.java b/platform/lang-impl/src/com/intellij/ide/commander/CommanderPanel.java index 459f80aab63b..d34eb16104d1 100644 --- a/platform/lang-impl/src/com/intellij/ide/commander/CommanderPanel.java +++ b/platform/lang-impl/src/com/intellij/ide/commander/CommanderPanel.java @@ -540,7 +540,7 @@ public class CommanderPanel extends JPanel { } private final class MyDeleteElementProvider implements DeleteProvider { - public void deleteElement(final DataContext dataContext) { + public void deleteElement(@NotNull final DataContext dataContext) { LocalHistoryAction a = LocalHistory.getInstance().startAction(IdeBundle.message("progress.deleting")); try { final PsiElement[] elements = getSelectedElements(); @@ -551,7 +551,7 @@ public class CommanderPanel extends JPanel { } } - public boolean canDeleteElement(final DataContext dataContext) { + public boolean canDeleteElement(@NotNull final DataContext dataContext) { final PsiElement[] elements = getSelectedElements(); return DeleteHandler.shouldEnableDeleteAction(elements); } diff --git a/platform/lang-impl/src/com/intellij/ide/favoritesTreeView/FavoritesTreeViewPanel.java b/platform/lang-impl/src/com/intellij/ide/favoritesTreeView/FavoritesTreeViewPanel.java index 085e9213a0b5..f0c602ca2711 100644 --- a/platform/lang-impl/src/com/intellij/ide/favoritesTreeView/FavoritesTreeViewPanel.java +++ b/platform/lang-impl/src/com/intellij/ide/favoritesTreeView/FavoritesTreeViewPanel.java @@ -441,12 +441,12 @@ public class FavoritesTreeViewPanel extends JPanel implements DataProvider { } private final class MyDeletePSIElementProvider implements DeleteProvider { - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { final PsiElement[] elements = getElementsToDelete(); return DeleteHandler.shouldEnableDeleteAction(elements); } - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { List allElements = Arrays.asList(getElementsToDelete()); List validElements = new ArrayList(); for (PsiElement psiElement : allElements) { diff --git a/platform/lang-impl/src/com/intellij/ide/hierarchy/TypeHierarchyBrowserBase.java b/platform/lang-impl/src/com/intellij/ide/hierarchy/TypeHierarchyBrowserBase.java index ea1a5c986611..dde30d8e31ca 100644 --- a/platform/lang-impl/src/com/intellij/ide/hierarchy/TypeHierarchyBrowserBase.java +++ b/platform/lang-impl/src/com/intellij/ide/hierarchy/TypeHierarchyBrowserBase.java @@ -97,7 +97,7 @@ public abstract class TypeHierarchyBrowserBase extends HierarchyBrowserBaseEx { } private final class MyDeleteProvider implements DeleteProvider { - public final void deleteElement(final DataContext dataContext) { + public final void deleteElement(@NotNull final DataContext dataContext) { final PsiElement aClass = getSelectedElement(); if (!canBeDeleted(aClass)) return; LocalHistoryAction a = LocalHistory.getInstance().startAction(IdeBundle.message("progress.deleting.class", getQualifiedName(aClass))); @@ -110,7 +110,7 @@ public abstract class TypeHierarchyBrowserBase extends HierarchyBrowserBaseEx { } } - public final boolean canDeleteElement(final DataContext dataContext) { + public final boolean canDeleteElement(@NotNull final DataContext dataContext) { final PsiElement aClass = getSelectedElement(); if (!canBeDeleted(aClass)) { return false; diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java index 73589cae29d7..c75b4662f6f5 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java @@ -851,12 +851,12 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo } private final class MyDeletePSIElementProvider implements DeleteProvider { - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { final PsiElement[] elements = getElementsToDelete(); return DeleteHandler.shouldEnableDeleteAction(elements); } - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { List allElements = Arrays.asList(getElementsToDelete()); List validElements = new ArrayList(); for (PsiElement psiElement : allElements) { @@ -1002,11 +1002,11 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo final LibraryOrderEntry orderEntry = getSelectedLibrary(); if (orderEntry != null) { return new DeleteProvider() { - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { detachLibrary(orderEntry, myProject); } - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { return true; } }; diff --git a/platform/lang-impl/src/com/intellij/ide/scopeView/ScopeTreeViewPanel.java b/platform/lang-impl/src/com/intellij/ide/scopeView/ScopeTreeViewPanel.java index 42f51ec78d08..03f1c39ea5e6 100644 --- a/platform/lang-impl/src/com/intellij/ide/scopeView/ScopeTreeViewPanel.java +++ b/platform/lang-impl/src/com/intellij/ide/scopeView/ScopeTreeViewPanel.java @@ -812,12 +812,12 @@ public class ScopeTreeViewPanel extends JPanel implements Disposable { } private final class MyDeletePSIElementProvider implements DeleteProvider { - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { final PsiElement[] elements = getSelectedPsiElements(); return DeleteHandler.shouldEnableDeleteAction(elements); } - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { List allElements = Arrays.asList(getSelectedPsiElements()); ArrayList validElements = new ArrayList(); for (PsiElement psiElement : allElements) { diff --git a/platform/lang-impl/src/com/intellij/ide/util/DeleteHandler.java b/platform/lang-impl/src/com/intellij/ide/util/DeleteHandler.java index 6b2f497d0cc8..1be2ce823f06 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/DeleteHandler.java +++ b/platform/lang-impl/src/com/intellij/ide/util/DeleteHandler.java @@ -45,6 +45,7 @@ import com.intellij.refactoring.util.CommonRefactoringUtil; import com.intellij.refactoring.util.RefactoringUIUtil; import com.intellij.util.IncorrectOperationException; import com.intellij.util.io.ReadOnlyAttributeUtil; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.IOException; @@ -56,7 +57,7 @@ public class DeleteHandler { } public static class DefaultDeleteProvider implements DeleteProvider { - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { if (PlatformDataKeys.PROJECT.getData(dataContext) == null) { return false; } @@ -82,7 +83,7 @@ public class DeleteHandler { return elements; } - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { PsiElement[] elements = getPsiElements(dataContext); if (elements == null) return; Project project = PlatformDataKeys.PROJECT.getData(dataContext); diff --git a/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java b/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java index d1362c6cc989..c172d60c64ca 100644 --- a/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java +++ b/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java @@ -301,6 +301,7 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { return myDelegate.getContentComponent(); } + @NotNull @Override public EditorGutterComponentEx getGutterComponentEx() { return myDelegate.getGutterComponentEx(); @@ -364,6 +365,7 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { return new LogicalPosition(lineNumber, column); } + @NotNull @Override public EditorColorsScheme createBoundColorSchemeDelegate(@Nullable EditorColorsScheme customGlobalScheme) { return myDelegate.createBoundColorSchemeDelegate(customGlobalScheme); @@ -598,6 +600,7 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { return new LogicalPosition(pos.line, pos.column); } + @NotNull @Override public DataContext getDataContext() { return myDelegate.getDataContext(); @@ -745,6 +748,7 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { return myDelegate.calcColumnNumber(myDocumentWindow.injectedToHost(offset), myDocumentWindow.injectedToHostLine(lineIndex)); } + @NotNull @Override public IndentsModel getIndentsModel() { return myDelegate.getIndentsModel(); diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/LibraryOrderEntryBaseImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/LibraryOrderEntryBaseImpl.java index 33b2495a0364..760cab43afe0 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/LibraryOrderEntryBaseImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/LibraryOrderEntryBaseImpl.java @@ -27,6 +27,7 @@ import com.intellij.util.ArrayUtil; import com.intellij.util.NullableFunction; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.List; @@ -37,9 +38,9 @@ abstract class LibraryOrderEntryBaseImpl extends OrderEntryBaseImpl { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.roots.impl.LibraryOrderEntryBaseImpl"); protected final ProjectRootManagerImpl myProjectRootManagerImpl; @NotNull protected DependencyScope myScope = DependencyScope.COMPILE; - private RootProvider myCurrentlySubscribedRootProvider = null; + @Nullable private RootProvider myCurrentlySubscribedRootProvider = null; - LibraryOrderEntryBaseImpl(RootModelImpl rootModel, ProjectRootManagerImpl instanceImpl) { + LibraryOrderEntryBaseImpl(@NotNull RootModelImpl rootModel, @NotNull ProjectRootManagerImpl instanceImpl) { super(rootModel); myProjectRootManagerImpl = instanceImpl; } @@ -48,12 +49,13 @@ abstract class LibraryOrderEntryBaseImpl extends OrderEntryBaseImpl { updateFromRootProviderAndSubscribe(); } + @Override @NotNull - public VirtualFile[] getFiles(OrderRootType type) { + public VirtualFile[] getFiles(@NotNull OrderRootType type) { if (type == OrderRootType.COMPILATION_CLASSES) { return getRootFiles(OrderRootType.CLASSES); } - else if (type == OrderRootType.PRODUCTION_COMPILATION_CLASSES) { + if (type == OrderRootType.PRODUCTION_COMPILATION_CLASSES) { if (!myScope.isForProductionCompile()) { return VirtualFile.EMPTY_ARRAY; } @@ -65,15 +67,16 @@ abstract class LibraryOrderEntryBaseImpl extends OrderEntryBaseImpl { return getRootFiles(type); } + @Override @NotNull - public String[] getUrls(OrderRootType type) { + public String[] getUrls(@NotNull OrderRootType type) { LOG.assertTrue(!getRootModel().getModule().isDisposed()); RootProvider rootProvider = getRootProvider(); if (rootProvider == null) return ArrayUtil.EMPTY_STRING_ARRAY; if (type == OrderRootType.COMPILATION_CLASSES) { return rootProvider.getUrls(OrderRootType.CLASSES); } - else if (type == OrderRootType.PRODUCTION_COMPILATION_CLASSES) { + if (type == OrderRootType.PRODUCTION_COMPILATION_CLASSES) { if (!myScope.isForProductionCompile()) { return ArrayUtil.EMPTY_STRING_ARRAY; } @@ -85,28 +88,32 @@ abstract class LibraryOrderEntryBaseImpl extends OrderEntryBaseImpl { return rootProvider.getUrls(type); } - public VirtualFile[] getRootFiles(OrderRootType type) { + public VirtualFile[] getRootFiles(@NotNull OrderRootType type) { RootProvider rootProvider = getRootProvider(); return rootProvider == null ? VirtualFile.EMPTY_ARRAY : filterDirectories(rootProvider.getFiles(type)); } - protected VirtualFile[] filterDirectories(VirtualFile[] files) { + protected VirtualFile[] filterDirectories(@NotNull VirtualFile[] files) { List filtered = ContainerUtil.mapNotNull(files, new NullableFunction() { - public VirtualFile fun(VirtualFile file) { + @Override + public VirtualFile fun(@NotNull VirtualFile file) { return file.isDirectory() ? file : null; } }); return VfsUtil.toVirtualFileArray(filtered); } + @Nullable protected abstract RootProvider getRootProvider(); + @NotNull @SuppressWarnings({"UnusedDeclaration"}) - public String[] getRootUrls(OrderRootType type) { + public String[] getRootUrls(@NotNull OrderRootType type) { RootProvider rootProvider = getRootProvider(); return rootProvider == null ? ArrayUtil.EMPTY_STRING_ARRAY : rootProvider.getUrls(type); } + @Override @NotNull public final Module getOwnerModule() { return getRootModel().getModule(); @@ -114,6 +121,7 @@ abstract class LibraryOrderEntryBaseImpl extends OrderEntryBaseImpl { protected void updateFromRootProviderAndSubscribe() { getRootModel().makeExternalChange(new Runnable() { + @Override public void run() { resubscribe(getRootProvider()); } @@ -125,7 +133,7 @@ abstract class LibraryOrderEntryBaseImpl extends OrderEntryBaseImpl { subscribe(wrapper); } - private void subscribe(RootProvider wrapper) { + private void subscribe(@Nullable RootProvider wrapper) { if (wrapper != null) { myProjectRootManagerImpl.subscribeToRootProvider(this, wrapper); } diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/actions/ModuleDeleteProvider.java b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/actions/ModuleDeleteProvider.java index 83fbc587b739..aadf4e5bb7a3 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/actions/ModuleDeleteProvider.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/actions/ModuleDeleteProvider.java @@ -45,7 +45,7 @@ import java.util.HashMap; import java.util.Map; public class ModuleDeleteProvider implements DeleteProvider, TitledHandler { - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { final Module[] modules = LangDataKeys.MODULE_CONTEXT_ARRAY.getData(dataContext); return modules != null && !isPrimaryModule(modules); } @@ -64,7 +64,7 @@ public class ModuleDeleteProvider implements DeleteProvider, TitledHandler { return false; } - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { final Module[] modules = LangDataKeys.MODULE_CONTEXT_ARRAY.getData(dataContext); assert modules != null; final Project project = PlatformDataKeys.PROJECT.getData(dataContext); diff --git a/platform/lang-impl/src/com/intellij/psi/impl/PsiToDocumentSynchronizer.java b/platform/lang-impl/src/com/intellij/psi/impl/PsiToDocumentSynchronizer.java index 9dc735676b3d..a7178d262a44 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/PsiToDocumentSynchronizer.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/PsiToDocumentSynchronizer.java @@ -1,4 +1,3 @@ - /* * Copyright 2000-2009 JetBrains s.r.o. * @@ -68,9 +67,9 @@ public class PsiToDocumentSynchronizer extends PsiTreeChangeAdapter { void syncDocument(Document document, PsiTreeChangeEventImpl event); } - private void doSync(final PsiTreeChangeEvent event, boolean force, final DocSyncAction syncAction) { + private void doSync(@NotNull final PsiTreeChangeEvent event, boolean force, @NotNull final DocSyncAction syncAction) { if (!toProcessPsiEvent()) return; - PsiFile psiFile = event.getFile(); + final PsiFile psiFile = event.getFile(); if (psiFile == null || psiFile.getNode() == null) return; final DocumentEx document = (DocumentEx)myPsiDocumentManager.getCachedDocument(psiFile); @@ -96,7 +95,7 @@ public class PsiToDocumentSynchronizer extends PsiTreeChangeAdapter { myPsiDocumentManager.commitOtherFilesAssociatedWithDocument(document, psiFile); final boolean insideTransaction = myTransactionsMap.containsKey(document); - if(!insideTransaction){ + if (!insideTransaction) { document.setModificationStamp(psiFile.getModificationStamp()); if (LOG.isDebugEnabled()) { PsiDocumentManagerImpl.checkConsistency(psiFile, document); diff --git a/platform/platform-api/src/com/intellij/execution/ui/ConsoleViewContentType.java b/platform/platform-api/src/com/intellij/execution/ui/ConsoleViewContentType.java index 6029198155c3..1b51bac6c481 100644 --- a/platform/platform-api/src/com/intellij/execution/ui/ConsoleViewContentType.java +++ b/platform/platform-api/src/com/intellij/execution/ui/ConsoleViewContentType.java @@ -82,11 +82,11 @@ public class ConsoleViewContentType { return myTextAttributes; } - public synchronized static void registerNewConsoleViewType(final Key processOutputType, final ConsoleViewContentType attributes) { + public static synchronized void registerNewConsoleViewType(final Key processOutputType, final ConsoleViewContentType attributes) { ourRegisteredTypes.put(processOutputType, attributes); } - public synchronized static ConsoleViewContentType getConsoleViewType(final Key processOutputType) { + public static synchronized ConsoleViewContentType getConsoleViewType(final Key processOutputType) { if (ourRegisteredTypes.containsKey(processOutputType)) { return ourRegisteredTypes.get(processOutputType); } diff --git a/platform/platform-api/src/com/intellij/ide/CopyProvider.java b/platform/platform-api/src/com/intellij/ide/CopyProvider.java index 9fcb2b908c95..797f15546801 100644 --- a/platform/platform-api/src/com/intellij/ide/CopyProvider.java +++ b/platform/platform-api/src/com/intellij/ide/CopyProvider.java @@ -16,9 +16,10 @@ package com.intellij.ide; import com.intellij.openapi.actionSystem.DataContext; +import org.jetbrains.annotations.NotNull; public interface CopyProvider { - void performCopy(DataContext dataContext); - boolean isCopyEnabled(DataContext dataContext); - boolean isCopyVisible(DataContext dataContext); + void performCopy(@NotNull DataContext dataContext); + boolean isCopyEnabled(@NotNull DataContext dataContext); + boolean isCopyVisible(@NotNull DataContext dataContext); } diff --git a/platform/platform-api/src/com/intellij/ide/CutProvider.java b/platform/platform-api/src/com/intellij/ide/CutProvider.java index 3ed6dcd8d83e..ada2e5587949 100644 --- a/platform/platform-api/src/com/intellij/ide/CutProvider.java +++ b/platform/platform-api/src/com/intellij/ide/CutProvider.java @@ -16,9 +16,10 @@ package com.intellij.ide; import com.intellij.openapi.actionSystem.DataContext; +import org.jetbrains.annotations.NotNull; public interface CutProvider { - void performCut(DataContext dataContext); - boolean isCutEnabled(DataContext dataContext); - boolean isCutVisible(DataContext dataContext); + void performCut(@NotNull DataContext dataContext); + boolean isCutEnabled(@NotNull DataContext dataContext); + boolean isCutVisible(@NotNull DataContext dataContext); } diff --git a/platform/platform-api/src/com/intellij/ide/DataManager.java b/platform/platform-api/src/com/intellij/ide/DataManager.java index 6ae4ff7955e8..1a50c3c69b24 100644 --- a/platform/platform-api/src/com/intellij/ide/DataManager.java +++ b/platform/platform-api/src/com/intellij/ide/DataManager.java @@ -38,6 +38,7 @@ public abstract class DataManager { * @return {@link DataContext} constructed by the current focused component * @deprecated use either {@link #getDataContext(java.awt.Component)} or {@link #getDataContextFromFocus()} */ + @NotNull public abstract DataContext getDataContext(); public abstract AsyncResult getDataContextFromFocus(); diff --git a/platform/platform-api/src/com/intellij/ide/DeleteProvider.java b/platform/platform-api/src/com/intellij/ide/DeleteProvider.java index 897212ff9f47..5855573a276f 100644 --- a/platform/platform-api/src/com/intellij/ide/DeleteProvider.java +++ b/platform/platform-api/src/com/intellij/ide/DeleteProvider.java @@ -16,8 +16,9 @@ package com.intellij.ide; import com.intellij.openapi.actionSystem.DataContext; +import org.jetbrains.annotations.NotNull; public interface DeleteProvider { - void deleteElement(DataContext dataContext); - boolean canDeleteElement(DataContext dataContext); + void deleteElement(@NotNull DataContext dataContext); + boolean canDeleteElement(@NotNull DataContext dataContext); } diff --git a/platform/platform-api/src/com/intellij/ide/PasteProvider.java b/platform/platform-api/src/com/intellij/ide/PasteProvider.java index b1fb041c0acf..2ef94432e336 100644 --- a/platform/platform-api/src/com/intellij/ide/PasteProvider.java +++ b/platform/platform-api/src/com/intellij/ide/PasteProvider.java @@ -17,14 +17,15 @@ package com.intellij.ide; import com.intellij.openapi.actionSystem.DataContext; +import org.jetbrains.annotations.NotNull; public interface PasteProvider { - void performPaste(DataContext dataContext); + void performPaste(@NotNull DataContext dataContext); /** * Should perform fast and memory cheap negation. May return incorrect true. * See #12326 */ - boolean isPastePossible(DataContext dataContext); - boolean isPasteEnabled(DataContext dataContext); + boolean isPastePossible(@NotNull DataContext dataContext); + boolean isPasteEnabled(@NotNull DataContext dataContext); } diff --git a/platform/platform-api/src/com/intellij/openapi/editor/Editor.java b/platform/platform-api/src/com/intellij/openapi/editor/Editor.java index 6a84999330d9..27f45aa5c223 100644 --- a/platform/platform-api/src/com/intellij/openapi/editor/Editor.java +++ b/platform/platform-api/src/com/intellij/openapi/editor/Editor.java @@ -323,5 +323,6 @@ public interface Editor extends UserDataHolder { @Nullable JComponent getHeaderComponent(); + @NotNull IndentsModel getIndentsModel(); } diff --git a/platform/platform-api/src/com/intellij/openapi/editor/actionSystem/EditorAction.java b/platform/platform-api/src/com/intellij/openapi/editor/actionSystem/EditorAction.java index 5cd3a7812d9f..e2c2bb4d57c8 100644 --- a/platform/platform-api/src/com/intellij/openapi/editor/actionSystem/EditorAction.java +++ b/platform/platform-api/src/com/intellij/openapi/editor/actionSystem/EditorAction.java @@ -21,6 +21,7 @@ import com.intellij.openapi.command.UndoConfirmationPolicy; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.project.DumbAware; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.awt.event.KeyEvent; @@ -59,6 +60,7 @@ public abstract class EditorAction extends AnAction implements DumbAware { } } + @Override public final void actionPerformed(AnActionEvent e) { DataContext dataContext = e.getDataContext(); Editor editor = getEditor(dataContext); @@ -70,11 +72,12 @@ public abstract class EditorAction extends AnAction implements DumbAware { return PlatformDataKeys.EDITOR.getData(dataContext); } - public final void actionPerformed(final Editor editor, final DataContext dataContext) { + public final void actionPerformed(final Editor editor, @NotNull final DataContext dataContext) { if (editor == null) return; final EditorActionHandler handler = getHandler(); Runnable command = new Runnable() { + @Override public void run() { handler.execute(editor, getProjectAwareDataContext(editor, dataContext)); } @@ -103,6 +106,7 @@ public abstract class EditorAction extends AnAction implements DumbAware { update(editor, presentation, dataContext); } + @Override public void update(AnActionEvent e) { Presentation presentation = e.getPresentation(); DataContext dataContext = e.getDataContext(); @@ -120,12 +124,13 @@ public abstract class EditorAction extends AnAction implements DumbAware { } } - private static DataContext getProjectAwareDataContext(final Editor editor, final DataContext original) { + private static DataContext getProjectAwareDataContext(final Editor editor, @NotNull final DataContext original) { if (PlatformDataKeys.PROJECT.getData(original) == editor.getProject()) { return original; } return new DataContext() { + @Override public Object getData(String dataId) { if (PlatformDataKeys.PROJECT.is(dataId)) { return editor.getProject(); diff --git a/platform/platform-api/src/com/intellij/openapi/editor/colors/EditorColorsScheme.java b/platform/platform-api/src/com/intellij/openapi/editor/colors/EditorColorsScheme.java index 1b187bd3aed6..ebeb699366af 100644 --- a/platform/platform-api/src/com/intellij/openapi/editor/colors/EditorColorsScheme.java +++ b/platform/platform-api/src/com/intellij/openapi/editor/colors/EditorColorsScheme.java @@ -32,7 +32,9 @@ public interface EditorColorsScheme extends Cloneable, JDOMExternalizable, Schem TextAttributes getAttributes(TextAttributesKey key); void setAttributes(TextAttributesKey key, TextAttributes attributes); + @NotNull Color getDefaultBackground(); + @NotNull Color getDefaultForeground(); Color getColor(ColorKey key); diff --git a/platform/platform-api/src/com/intellij/ui/TreeCopyProvider.java b/platform/platform-api/src/com/intellij/ui/TreeCopyProvider.java index 0ee014c5456c..6303137817b7 100644 --- a/platform/platform-api/src/com/intellij/ui/TreeCopyProvider.java +++ b/platform/platform-api/src/com/intellij/ui/TreeCopyProvider.java @@ -19,6 +19,7 @@ package com.intellij.ui; import com.intellij.ide.CopyProvider; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.diagnostic.Logger; +import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.datatransfer.Clipboard; @@ -34,7 +35,7 @@ public class TreeCopyProvider implements CopyProvider { myTree = tree; } - public void performCopy(DataContext dataContext) { + public void performCopy(@NotNull DataContext dataContext) { try { final Clipboard clipboard = myTree.getToolkit().getSystemClipboard(); myTree.getTransferHandler().exportToClipboard(myTree, clipboard, TransferHandler.COPY); @@ -45,11 +46,11 @@ public class TreeCopyProvider implements CopyProvider { } } - public boolean isCopyEnabled(DataContext dataContext) { + public boolean isCopyEnabled(@NotNull DataContext dataContext) { return myTree.getSelectionPath() != null; } - public boolean isCopyVisible(DataContext dataContext) { + public boolean isCopyVisible(@NotNull DataContext dataContext) { return true; } } diff --git a/platform/platform-impl/src/com/intellij/execution/impl/ConsoleViewUtil.java b/platform/platform-impl/src/com/intellij/execution/impl/ConsoleViewUtil.java index e182d0330e0b..0e06d2ed4d2f 100644 --- a/platform/platform-impl/src/com/intellij/execution/impl/ConsoleViewUtil.java +++ b/platform/platform-impl/src/com/intellij/execution/impl/ConsoleViewUtil.java @@ -26,6 +26,7 @@ import com.intellij.openapi.editor.ex.EditorEx; import com.intellij.openapi.editor.impl.EditorFactoryImpl; import com.intellij.openapi.editor.impl.softwrap.SoftWrapAppliancePlaces; import com.intellij.openapi.project.Project; +import org.jetbrains.annotations.NotNull; import java.awt.*; @@ -60,6 +61,7 @@ public class ConsoleViewUtil { public static DelegateColorScheme updateConsoleColorScheme(EditorColorsScheme scheme) { return new DelegateColorScheme(scheme) { + @NotNull @Override public Color getDefaultBackground() { final Color color = getColor(ConsoleViewContentType.CONSOLE_BACKGROUND_KEY); diff --git a/platform/platform-impl/src/com/intellij/ide/errorTreeView/NewErrorTreeViewPanel.java b/platform/platform-impl/src/com/intellij/ide/errorTreeView/NewErrorTreeViewPanel.java index dbb465c1a0a5..bd36f9f98b3b 100644 --- a/platform/platform-impl/src/com/intellij/ide/errorTreeView/NewErrorTreeViewPanel.java +++ b/platform/platform-impl/src/com/intellij/ide/errorTreeView/NewErrorTreeViewPanel.java @@ -165,7 +165,7 @@ public class NewErrorTreeViewPanel extends JPanel implements DataProvider, Occur Disposer.dispose(myBuilder); } - public void performCopy(DataContext dataContext) { + public void performCopy(@NotNull DataContext dataContext) { final ErrorTreeNodeDescriptor descriptor = getSelectedNodeDescriptor(); if (descriptor != null) { final String[] lines = descriptor.getElement().getText(); @@ -173,11 +173,11 @@ public class NewErrorTreeViewPanel extends JPanel implements DataProvider, Occur } } - public boolean isCopyEnabled(DataContext dataContext) { + public boolean isCopyEnabled(@NotNull DataContext dataContext) { return getSelectedNodeDescriptor() != null; } - public boolean isCopyVisible(DataContext dataContext) { + public boolean isCopyVisible(@NotNull DataContext dataContext) { return true; } diff --git a/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java b/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java index 6c0eed23a12a..12da4eca007a 100644 --- a/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java @@ -201,6 +201,7 @@ public class DataManagerImpl extends DataManager implements ApplicationComponent myWindowManager = windowManager; } + @NotNull public DataContext getDataContext() { return getDataContext(getFocusedComponent()); } diff --git a/platform/platform-impl/src/com/intellij/idea/CommandLineApplication.java b/platform/platform-impl/src/com/intellij/idea/CommandLineApplication.java index 3e91d70912d3..349134150a67 100644 --- a/platform/platform-impl/src/com/intellij/idea/CommandLineApplication.java +++ b/platform/platform-impl/src/com/intellij/idea/CommandLineApplication.java @@ -64,6 +64,7 @@ public class CommandLineApplication { public static class MyDataManagerImpl extends DataManagerImpl { + @NotNull public DataContext getDataContext() { return new CommandLineDataContext(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/command/impl/CommandMerger.java b/platform/platform-impl/src/com/intellij/openapi/command/impl/CommandMerger.java index d2b855e5aae4..20a9f76f8891 100644 --- a/platform/platform-impl/src/com/intellij/openapi/command/impl/CommandMerger.java +++ b/platform/platform-impl/src/com/intellij/openapi/command/impl/CommandMerger.java @@ -231,8 +231,10 @@ public class CommandMerger { return !myCurrentActions.isEmpty(); } - public boolean isUndoAvailable(Collection refs) { - if (hasNonUndoableActions()) return false; + public boolean isUndoAvailable(@NotNull Collection refs) { + if (hasNonUndoableActions()) { + return false; + } if (refs.isEmpty()) return isGlobal() && hasActions(); for (DocumentReference each : refs) { diff --git a/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoManagerImpl.java index ece4a2a8571e..9131705b856e 100644 --- a/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoManagerImpl.java @@ -386,29 +386,35 @@ public class UndoManagerImpl extends UndoManager implements ProjectComponent, Ap ApplicationManager.getApplication().assertIsDispatchThread(); Collection refs = getDocRefs(editor); - if (refs == null) return false; + if (refs == null) { + return false; + } return isUndoOrRedoAvailable(refs, undo); } - public boolean isUndoOrRedoAvailable(DocumentReference ref) { + public boolean isUndoOrRedoAvailable(@NotNull DocumentReference ref) { Set refs = Collections.singleton(ref); return isUndoOrRedoAvailable(refs, true) || isUndoOrRedoAvailable(refs, false); } - private boolean isUndoOrRedoAvailable(Collection refs, boolean isUndo) { + private boolean isUndoOrRedoAvailable(@NotNull Collection refs, boolean isUndo) { if (isUndo && myMerger.isUndoAvailable(refs)) return true; UndoRedoStacksHolder stackHolder = getStackHolder(isUndo); return stackHolder.canBeUndoneOrRedone(refs); } - private static Collection getDocRefs(FileEditor editor) { + private static Collection getDocRefs(@Nullable FileEditor editor) { if (editor instanceof TextEditor && ((TextEditor)editor).getEditor().isViewer()) { return null; } + if (editor == null) { + return Collections.emptyList(); + } return getDocumentReferences(editor); } - static Set getDocumentReferences(FileEditor editor) { + @NotNull + static Set getDocumentReferences(@NotNull FileEditor editor) { Set result = new THashSet(); if (editor instanceof DocumentReferenceProvider) { @@ -416,7 +422,7 @@ public class UndoManagerImpl extends UndoManager implements ProjectComponent, Ap return result; } - Document[] documents = editor == null ? null : TextEditorProvider.getDocuments(editor); + Document[] documents = TextEditorProvider.getDocuments(editor); if (documents != null) { for (Document each : documents) { Document original = getOriginal(each); @@ -429,6 +435,7 @@ public class UndoManagerImpl extends UndoManager implements ProjectComponent, Ap return result; } + @NotNull private UndoRedoStacksHolder getStackHolder(boolean isUndo) { return isUndo ? myUndoStacksHolder : myRedoStacksHolder; } diff --git a/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoRedoStacksHolder.java b/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoRedoStacksHolder.java index c5fbb61dcbf2..438ebb3af4d1 100644 --- a/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoRedoStacksHolder.java +++ b/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoRedoStacksHolder.java @@ -32,19 +32,20 @@ class UndoRedoStacksHolder { private final boolean myUndo; private final LinkedList myGlobalStack = new LinkedList(); - private final Map> myDocumentStacks - = new HashMap>(); + private final Map> myDocumentStacks = new HashMap>(); private final WeakList myDocumentsWithStacks = new WeakList(); public UndoRedoStacksHolder(boolean isUndo) { myUndo = isUndo; } + @NotNull LinkedList getStack(@NotNull DocumentReference r) { return r.getFile() != null ? doGetStackForFile(r) : doGetStackForDocument(r); } - private LinkedList doGetStackForFile(DocumentReference r) { + @NotNull + private LinkedList doGetStackForFile(@NotNull DocumentReference r) { LinkedList result = myDocumentStacks.get(r); if (result == null) { result = new LinkedList(); @@ -53,7 +54,8 @@ class UndoRedoStacksHolder { return result; } - private LinkedList doGetStackForDocument(DocumentReference r) { + @NotNull + private LinkedList doGetStackForDocument(@NotNull DocumentReference r) { // If document is not associated with file, we have to store its stack in document // itself to avoid memory leaks caused by holding stacks of all documents, ever created, here. // And to know, what documents do exist now, we have to maintain weak reference list of them. @@ -68,7 +70,7 @@ class UndoRedoStacksHolder { return result; } - public boolean canBeUndoneOrRedone(Collection refs) { + public boolean canBeUndoneOrRedone(@NotNull Collection refs) { if (refs.isEmpty()) return !myGlobalStack.isEmpty() && myGlobalStack.getLast().isValid(); for (DocumentReference each : refs) { if (!getStack(each).isEmpty() && getStack(each).getLast().isValid()) return true; @@ -100,7 +102,8 @@ class UndoRedoStacksHolder { return mostRecentAction; } - public Set collectClashingActions(UndoableGroup group) { + @NotNull + public Set collectClashingActions(@NotNull UndoableGroup group) { Set result = new THashSet(); for (DocumentReference each : group.getAffectedDocuments()) { @@ -120,13 +123,13 @@ class UndoRedoStacksHolder { return result; } - public void addToStacks(UndoableGroup group) { + public void addToStacks(@NotNull UndoableGroup group) { for (LinkedList each : getAffectedStacks(group)) { doAddToStack(each, group, each == myGlobalStack ? UndoManagerImpl.getGlobalUndoLimit() : UndoManagerImpl.getDocumentUndoLimit()); } } - private void doAddToStack(LinkedList stack, UndoableGroup group, int limit) { + private void doAddToStack(@NotNull LinkedList stack, @NotNull UndoableGroup group, int limit) { if (!group.isUndoable() && stack.isEmpty()) return; stack.addLast(group); @@ -135,14 +138,14 @@ class UndoRedoStacksHolder { } } - public void removeFromStacks(UndoableGroup group) { + public void removeFromStacks(@NotNull UndoableGroup group) { for (LinkedList each : getAffectedStacks(group)) { assert each.getLast() == group; each.removeLast(); } } - public void clearStacks(boolean clearGlobal, Set refs) { + public void clearStacks(boolean clearGlobal, @NotNull Set refs) { for (LinkedList each : getAffectedStacks(clearGlobal, refs)) { while(!each.isEmpty()) { clearStacksFrom(each.getLast()); @@ -169,7 +172,7 @@ class UndoRedoStacksHolder { myDocumentsWithStacks.removeAll(docsToDrop); } - private void clearStacksFrom(UndoableGroup from) { + private void clearStacksFrom(@NotNull UndoableGroup from) { for (LinkedList each : getAffectedStacks(from)) { int pos = each.indexOf(from); if (pos == -1) continue; @@ -183,11 +186,14 @@ class UndoRedoStacksHolder { } } - private List> getAffectedStacks(UndoableGroup group) { + @NotNull + private List> getAffectedStacks(@NotNull UndoableGroup group) { return getAffectedStacks(group.isGlobal(), group.getAffectedDocuments()); } - private List> getAffectedStacks(boolean global, Collection refs) { - List> result = new ArrayList>(); + + @NotNull + private List> getAffectedStacks(boolean global, @NotNull Collection refs) { + List> result = new ArrayList>(refs.size() + 1); if (global) result.add(myGlobalStack); for (DocumentReference each : refs) { result.add(getStack(each)); @@ -199,33 +205,34 @@ class UndoRedoStacksHolder { clearStacks(true, getAffectedDocuments()); } - public void collectAllAffectedDocuments(Collection result) { + public void collectAllAffectedDocuments(@NotNull Collection result) { for (UndoableGroup each : myGlobalStack) { result.addAll(each.getAffectedDocuments()); } collectLocalAffectedDocuments(result); } - private void collectLocalAffectedDocuments(Collection result) { + private void collectLocalAffectedDocuments(@NotNull Collection result) { result.addAll(myDocumentStacks.keySet()); for (Document each : myDocumentsWithStacks) { result.add(DocumentReferenceManager.getInstance().create(each)); } } + @NotNull private Set getAffectedDocuments() { Set result = new THashSet(); collectAllAffectedDocuments(result); return result; } - public int getLastCommandTimestamp(DocumentReference r) { + public int getLastCommandTimestamp(@NotNull DocumentReference r) { LinkedList stack = getStack(r); if (stack.isEmpty()) return 0; return Math.max(stack.getFirst().getCommandTimestamp(), stack.getLast().getCommandTimestamp()); } - public void invalidateActionsFor(DocumentReference ref) { + public void invalidateActionsFor(@NotNull DocumentReference ref) { for (LinkedList eachStack : getAffectedStacks(true, Collections.singleton(ref))) { for (UndoableGroup eachGroup : eachStack) { eachGroup.invalidateActionsFor(ref); diff --git a/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoableGroup.java b/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoableGroup.java index f50811e2f039..1aa9b6f5b917 100644 --- a/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoableGroup.java +++ b/platform/platform-impl/src/com/intellij/openapi/command/impl/UndoableGroup.java @@ -34,6 +34,7 @@ import com.intellij.psi.PsiDocumentManager; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import gnu.trove.THashSet; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.*; @@ -265,6 +266,7 @@ class UndoableGroup { } } + @NotNull public Collection getAffectedDocuments() { Set result = new THashSet(); for (UndoableAction action : myActions) { diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java index 84c555cc753b..b9f85485953b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/AbstractColorsScheme.java @@ -95,12 +95,14 @@ public abstract class AbstractColorsScheme implements EditorColorsScheme { myDefaultColorSchemesManager = defaultColorSchemesManager; } + @NotNull @Override public Color getDefaultBackground() { final Color c = getAttributes(HighlighterColors.TEXT).getBackgroundColor(); return c != null ? c : Color.white; } + @NotNull @Override public Color getDefaultForeground() { final Color c = getAttributes(HighlighterColors.TEXT).getForegroundColor(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/DelegateColorScheme.java b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/DelegateColorScheme.java index 5ec554478d10..85a0cbd88554 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/DelegateColorScheme.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/DelegateColorScheme.java @@ -59,11 +59,13 @@ public abstract class DelegateColorScheme implements EditorColorsScheme { myDelegate.setAttributes(key, attributes); } + @NotNull @Override public Color getDefaultBackground() { return myDelegate.getDefaultBackground(); } + @NotNull @Override public Color getDefaultForeground() { return myDelegate.getDefaultForeground(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java index 2165e73880e7..7c13d8d45b66 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java @@ -47,6 +47,7 @@ public interface EditorEx extends Editor { @NonNls String PROP_FONT_SIZE = "fontSize"; Key LAST_PASTED_REGION = Key.create("LAST_PASTED_REGION"); + @NotNull EditorGutterComponentEx getGutterComponentEx(); EditorHighlighter getHighlighter(); @@ -108,6 +109,7 @@ public interface EditorEx extends Editor { void setFile(VirtualFile vFile); + @NotNull DataContext getDataContext(); boolean processKeyTyped(@NotNull KeyEvent e); @@ -156,6 +158,7 @@ public interface EditorEx extends Editor { * @param customGlobalScheme * @return */ + @NotNull EditorColorsScheme createBoundColorSchemeDelegate(@Nullable EditorColorsScheme customGlobalScheme); /** diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java index 5bdeb8d52428..607b043b00b8 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java @@ -109,12 +109,12 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, myVisualLineEnd = doc.getLineCount() > 1 ? doc.getLineStartOffset(1) : doc.getLineCount() == 0 ? 0 : doc.getLineEndOffset(0); DocumentBulkUpdateListener bulkUpdateListener = new DocumentBulkUpdateListener() { @Override - public void updateStarted(Document doc) { + public void updateStarted(@NotNull Document doc) { if (doc != myEditor.getDocument() && myOffset >= doc.getTextLength()) return; savedBeforeBulkCaretMarker = doc.createRangeMarker(myOffset, myOffset); } @Override - public void updateFinished(Document doc) { + public void updateFinished(@NotNull Document doc) { if (doc != myEditor.getDocument() || myIsInUpdate) return; if (savedBeforeBulkCaretMarker != null && savedBeforeBulkCaretMarker.isValid()) { moveToOffset(savedBeforeBulkCaretMarker.getStartOffset()); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java index 57043be93421..d967607f0885 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java @@ -131,25 +131,24 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi public static final Key PERMANENT_HEADER = Key.create("PERMANENT_HEADER"); public static final Key DO_DOCUMENT_UPDATE_TEST = Key.create("DoDocumentUpdateTest"); public static final Key> EDITABLE_AREA_MARKER = Key.create("editable.area.marker"); - private static final boolean HONOR_CAMEL_HUMPS_ON_TRIPLE_CLICK - = Boolean.parseBoolean(System.getProperty("idea.honor.camel.humps.on.triple.click")); - public static final Key BUFFER = Key.create("buffer"); - private final DocumentImpl myDocument; + private static final boolean HONOR_CAMEL_HUMPS_ON_TRIPLE_CLICK = Boolean.parseBoolean(System.getProperty("idea.honor.camel.humps.on.triple.click")); + private static final Key BUFFER = Key.create("buffer"); + @NotNull private final DocumentImpl myDocument; private final JPanel myPanel; - private final JScrollPane myScrollPane; - private final EditorComponentImpl myEditorComponent; - private final EditorGutterComponentImpl myGutterComponent; + @NotNull private final JScrollPane myScrollPane; + @NotNull private final EditorComponentImpl myEditorComponent; + @NotNull private final EditorGutterComponentImpl myGutterComponent; static { ComplementaryFontsRegistry.getFontAbleToDisplay(' ', 0,0, UIManager.getFont("Label.font").getFamily()); // load costly font info } private final CommandProcessor myCommandProcessor; - private final MyScrollBar myVerticalScrollBar; + @NotNull private final MyScrollBar myVerticalScrollBar; private final CopyOnWriteArrayList myMouseListeners = ContainerUtil.createEmptyCOWList(); - private final CopyOnWriteArrayList myMouseMotionListeners; + @NotNull private final CopyOnWriteArrayList myMouseMotionListeners; private int myCharHeight = -1; private int myLineHeight = -1; @@ -157,20 +156,20 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private boolean myIsInsertMode = true; - private final CaretCursor myCaretCursor; + @NotNull private final CaretCursor myCaretCursor; private final ScrollingTimer myScrollingTimer = new ScrollingTimer(); private final Key MOUSE_DRAGGED_GROUP = Key.create("MouseDraggedGroup"); - private final SettingsImpl mySettings; + @NotNull private final SettingsImpl mySettings; private boolean isReleased = false; - private MouseEvent myMousePressedEvent = null; - private MouseEvent myMouseMovedEvent = null; + @Nullable private MouseEvent myMousePressedEvent = null; + @Nullable private MouseEvent myMouseMovedEvent = null; /** Holds information about area where mouse was pressed. */ - private EditorMouseEventArea myMousePressArea; + @Nullable private EditorMouseEventArea myMousePressArea; private int mySavedSelectionStart = -1; private int mySavedSelectionEnd = -1; private int myLastColumnNumber = 0; @@ -181,18 +180,18 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private EditorColorsScheme myScheme; private ArrowPainter myTabPainter; private final boolean myIsViewer; - private final SelectionModelImpl mySelectionModel; - private final EditorMarkupModelImpl myMarkupModel; - private final FoldingModelImpl myFoldingModel; - private final ScrollingModelImpl myScrollingModel; - private final CaretModelImpl myCaretModel; - private final SoftWrapModelImpl mySoftWrapModel; + @NotNull private final SelectionModelImpl mySelectionModel; + @NotNull private final EditorMarkupModelImpl myMarkupModel; + @NotNull private final FoldingModelImpl myFoldingModel; + @NotNull private final ScrollingModelImpl myScrollingModel; + @NotNull private final CaretModelImpl myCaretModel; + @NotNull private final SoftWrapModelImpl mySoftWrapModel; - private static final RepaintCursorCommand ourCaretBlinkingCommand; + @NotNull private static final RepaintCursorCommand ourCaretBlinkingCommand; private MessageBusConnection myConnection; private int myMouseSelectionState = MOUSE_SELECTION_STATE_NONE; - private FoldRegion myMouseSelectedRegion = null; + @Nullable private FoldRegion myMouseSelectedRegion = null; private static final int MOUSE_SELECTION_STATE_NONE = 0; private static final int MOUSE_SELECTION_STATE_WORD_SELECTED = 1; @@ -211,7 +210,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private static final int CACHED_CHARS_BUFFER_SIZE = 300; private final ArrayList myFontCache = new ArrayList(); - private FontInfo myCurrentFontType = null; + @Nullable private FontInfo myCurrentFontType = null; private final EditorSizeContainer mySizeContainer = new EditorSizeContainer(); @@ -230,10 +229,10 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private boolean myIsRendererMode; private VirtualFile myVirtualFile; private boolean myIsColumnMode = false; - private Color myForcedBackground = null; - private Dimension myPreferredSize; + @Nullable private Color myForcedBackground = null; + @Nullable private Dimension myPreferredSize; private int myVirtualPageHeight; - private Runnable myGutterSizeUpdater = null; + @Nullable private Runnable myGutterSizeUpdater = null; private boolean myGutterNeedsUpdate = false; private Alarm myAppleRepaintAlarm; @@ -241,7 +240,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private Runnable myMouseSelectionStateResetRunnable; private boolean myEmbeddedIntoDialogWrapper; - private CachedFontContent myLastCache; + @Nullable private CachedFontContent myLastCache; /** * Positive value is assumed to indicate that space width for all interested font styles (bold, italic etc) is equal. @@ -257,23 +256,23 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private boolean myForceRefreshFont; private boolean mySoftWrapsChanged; - private Point myLastBackgroundPosition = null; private Color myLastBackgroundColor = null; + private Point myLastBackgroundPosition = null; private int myLastBackgroundWidth; private static final boolean ourIsUnitTestMode = ApplicationManager.getApplication().isUnitTestMode(); - private final JPanel myHeaderPanel; + @NotNull private final JPanel myHeaderPanel; - private MouseEvent myInitialMouseEvent; + @Nullable private MouseEvent myInitialMouseEvent; private boolean myIgnoreMouseEventsConsecutiveToInitial; - private String myReleasedAt = null; + @Nullable private String myReleasedAt = null; private EditorDropHandler myDropHandler; private char[] myPrefixText; private TextAttributes myPrefixAttributes; private int myPrefixWidthInPixels; - private final IndentsModel myIndentsModel; + @NotNull private final IndentsModel myIndentsModel; @Nullable private CharSequence myPlaceholderText; @@ -366,8 +365,8 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myIndentsModel = new IndentsModelImpl(this); myCaretModel.addCaretListener(new CaretListener() { - private LightweightHint myCurrentHint = null; - private IndentGuideDescriptor myCurrentCaretGuide = null; + @Nullable private LightweightHint myCurrentHint = null; + @Nullable private IndentGuideDescriptor myCurrentCaretGuide = null; @Override public void caretPositionChanged(CaretEvent e) { @@ -485,17 +484,19 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @NotNull @Override public EditorColorsScheme createBoundColorSchemeDelegate(@Nullable final EditorColorsScheme customGlobalScheme) { return new MyColorSchemeDelegate(customGlobalScheme); } - private void repaintGuide(IndentGuideDescriptor guide) { + private void repaintGuide(@Nullable IndentGuideDescriptor guide) { if (guide != null) { repaintLines(guide.startLine, guide.endLine); } } + @Override public void setPrefixTextAndAttributes(@Nullable String prefixText, @Nullable TextAttributes attributes) { myPrefixText = prefixText == null ? null: prefixText.toCharArray(); myPrefixAttributes = attributes; @@ -755,7 +756,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myEditorComponent.addKeyListener(new KeyAdapter() { @Override - public void keyTyped(KeyEvent event) { + public void keyTyped(@NotNull KeyEvent event) { if (Patches.APPLE_BUG_ID_3337563) return; // Everything is going through InputMethods under MacOS X in JDK releases earlier than 1.4.2_03-117.1 if (event.isConsumed()) { return; @@ -804,7 +805,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } @Override - public void dragOver(DropTargetDragEvent e) { + public void dragOver(@NotNull DropTargetDragEvent e) { Point location = e.getLocation(); moveCaretToScreenPos(location.x, location.y); @@ -840,7 +841,8 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myScrollPane.getViewport().invalidate(); } - public ActionCallback type(final String text) { + @NotNull + public ActionCallback type(@NotNull final String text) { final ActionCallback result = new ActionCallback(); ApplicationManager.getApplication().runWriteAction(new Runnable() { @@ -891,6 +893,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @NotNull private FocusChangeListener[] getFocusListeners() { return myFocusListeners.toArray(new FocusChangeListener[myFocusListeners.size()]); } @@ -933,6 +936,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return myEditorComponent; } + @NotNull @Override public EditorGutterComponentEx getGutterComponentEx() { return myGutterComponent; @@ -1403,20 +1407,19 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } @Override - public void repaint(final int startOffset, final int endOffset) { + public void repaint(final int startOffset, int endOffset) { if (!isShowing() || myScrollPane == null || myDocument.isInBulkUpdate()) { return; } - int startOffsetToUse = startOffset; - int endOffsetToUse = Math.min(endOffset, myDocument.getTextLength()); + endOffset = Math.min(endOffset, myDocument.getTextLength()); assertIsDispatchThread(); // We do repaint in case of equal offsets because there is a possible case that there is a soft wrap at the same offset and // it does occupy particular amount of visual space that may be necessary to repaint. - if (startOffsetToUse <= endOffsetToUse) { - int startLine = myDocument.getLineNumber(startOffsetToUse); - int endLine = myDocument.getLineNumber(endOffsetToUse); + if (startOffset <= endOffset) { + int startLine = myDocument.getLineNumber(startOffset); + int endLine = myDocument.getLineNumber(endOffset); repaintLines(startLine, endLine); } } @@ -1478,7 +1481,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi updateCaretCursor(); } - private void beforeChangedUpdate(DocumentEvent e) { + private void beforeChangedUpdate(@NotNull DocumentEvent e) { if (isStickySelection()) { setStickySelection(false); } @@ -1545,11 +1548,12 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myScrollToCaret = scrollToCaret; } + @NotNull public Disposable getDisposable() { return myDisposable; } - private static int countLineFeeds(CharSequence c) { + private static int countLineFeeds(@NotNull CharSequence c) { return StringUtil.countNewLines(c); } @@ -1586,6 +1590,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi stopOptimizedScrolling(); myGutterComponent.setLineNumberAreaWidth(new Convertor() { + @NotNull @Override public Integer convert(Integer lineNumber) { return getFontMetrics(Font.PLAIN).stringWidth(Integer.toString(lineNumber + 2)) + 6; @@ -1689,7 +1694,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi putUserData(BUFFER, image); } - void paint(Graphics2D g) { + void paint(@NotNull Graphics2D g) { Rectangle clip = g.getClipBounds(); if (clip == null) { @@ -1750,10 +1755,10 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi paintComposedTextDecoration(g); } - private void paintCustomRenderers(final Graphics2D g, final int clipStartOffset, final int clipEndOffset) { + private void paintCustomRenderers(@NotNull final Graphics2D g, final int clipStartOffset, final int clipEndOffset) { myMarkupModel.processRangeHighlightersOverlappingWith(clipStartOffset, clipEndOffset, new Processor() { @Override - public boolean process(RangeHighlighterEx highlighter) { + public boolean process(@NotNull RangeHighlighterEx highlighter) { final CustomHighlighterRenderer customRenderer = highlighter.getCustomRenderer(); if (customRenderer != null && clipStartOffset < highlighter.getEndOffset() && highlighter.getStartOffset() < clipEndOffset) { customRenderer.paint(EditorImpl.this, highlighter, g); @@ -1763,6 +1768,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi }); } + @NotNull @Override public IndentsModel getIndentsModel() { return myIndentsModel; @@ -1804,10 +1810,12 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myForcedBackground = color; } - public Color getForegroundColor() { + @NotNull + private Color getForegroundColor() { return myScheme.getDefaultForeground(); } + @NotNull @Override public Color getBackgroundColor() { if (myForcedBackground != null) return myForcedBackground; @@ -1815,6 +1823,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return getBackgroundIgnoreForced(); } + @NotNull @Override public TextDrawingCallback getTextDrawingCallback() { return myTextDrawingCallback; @@ -1825,11 +1834,12 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myPlaceholderText = text; } - private Color getBackgroundColor(final TextAttributes attributes) { + private Color getBackgroundColor(@NotNull final TextAttributes attributes) { final Color attrColor = attributes.getBackgroundColor(); return Comparing.equal(attrColor, myScheme.getDefaultBackground()) ? getBackgroundColor() : attrColor; } + @NotNull private Color getBackgroundIgnoreForced() { Color color = myScheme.getDefaultBackground(); if (myDocument.isWritable()) { @@ -1839,7 +1849,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return readOnlyColor != null ? readOnlyColor : color; } - private void paintComposedTextDecoration(Graphics2D g) { + private void paintComposedTextDecoration(@NotNull Graphics2D g) { if (myInputMethodRequestsHandler != null && myInputMethodRequestsHandler.composedText != null) { VisualPosition visStart = offsetToVisualPosition(Math.min(myInputMethodRequestsHandler.composedTextStart, myDocument.getTextLength())); @@ -1856,7 +1866,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private void paintRightMargin(Graphics g, Rectangle clip) { + private void paintRightMargin(@NotNull Graphics g, @NotNull Rectangle clip) { Color rightMargin = myScheme.getColor(EditorColors.RIGHT_MARGIN_COLOR); if (!mySettings.isRightMarginShown() || rightMargin == null) { return; @@ -1868,17 +1878,18 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private void paintSegmentHighlightersBorderAndAfterEndOfLine(final Graphics g, - Rectangle clip, + private void paintSegmentHighlightersBorderAndAfterEndOfLine(@NotNull final Graphics g, + @NotNull Rectangle clip, int clipStartOffset, - int clipEndOffset, MarkupModelEx docMarkup) { + int clipEndOffset, + @NotNull MarkupModelEx docMarkup) { if (myDocument.getLineCount() == 0) return; final int startLine = yPositionToVisibleLine(clip.y); final int endLine = yPositionToVisibleLine(clip.y + clip.height) + 1; Processor paintProcessor = new Processor() { @Override - public boolean process(RangeHighlighterEx highlighter) { + public boolean process(@NotNull RangeHighlighterEx highlighter) { paintSegmentHighlighterAfterEndOfLine(g, highlighter, startLine, endLine); return true; } @@ -1887,8 +1898,8 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myMarkupModel.processRangeHighlightersOverlappingWith(clipStartOffset, clipEndOffset, paintProcessor); } - private void paintSegmentHighlighterAfterEndOfLine(Graphics g, - RangeHighlighterEx segmentHighlighter, + private void paintSegmentHighlighterAfterEndOfLine(@NotNull Graphics g, + @NotNull RangeHighlighterEx segmentHighlighter, int startLine, int endLine) { if (!segmentHighlighter.isAfterEndOfLine()) { @@ -1958,10 +1969,10 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return width; } - private void paintBackgrounds(Graphics g, - Rectangle clip, - LogicalPosition clipStartPosition, - VisualPosition clipStartVisualPos, + private void paintBackgrounds(@NotNull Graphics g, + @NotNull Rectangle clip, + @NotNull LogicalPosition clipStartPosition, + @NotNull VisualPosition clipStartVisualPos, int clipStartOffset, int clipEndOffset) { Color defaultBackground = getBackgroundColor(); g.setColor(defaultBackground); @@ -2127,7 +2138,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private void paintRectangularSelection(Graphics g) { + private void paintRectangularSelection(@NotNull Graphics g) { final SelectionModel model = getSelectionModel(); if (!model.hasBlockSelection()) return; final LogicalPosition blockStart = model.getBlockStart(); @@ -2153,13 +2164,13 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi g.fillRect(x, y, width, height); } - private void paintAfterFileEndBackground(IterationState iterationState, - Graphics g, - Point position, - Rectangle clip, - int lineHeight, - final Color defaultBackground, - boolean[] caretRowPainted) { + private void paintAfterFileEndBackground(@NotNull IterationState iterationState, + @NotNull Graphics g, + @NotNull Point position, + @NotNull Rectangle clip, + int lineHeight, + @NotNull Color defaultBackground, + @NotNull boolean[] caretRowPainted) { Color backColor = iterationState.getPastFileEndBackground(); if (backColor == null || backColor.equals(defaultBackground)) { return; @@ -2171,9 +2182,17 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi g.fillRect(position.x, position.y, clip.x + clip.width - position.x, lineHeight); } - private int drawSoftWrapAwareBackground(Graphics g, Color backColor, CharSequence text, int start, int end, Point position, - @JdkConstants.FontStyle int fontType, Color defaultBackground, Rectangle clip, TIntHashSet softWrapsToSkip, - boolean[] caretRowPainted) { + private int drawSoftWrapAwareBackground(@NotNull Graphics g, + Color backColor, + @NotNull CharSequence text, + int start, + int end, + @NotNull Point position, + @JdkConstants.FontStyle int fontType, + @NotNull Color defaultBackground, + @NotNull Rectangle clip, + @NotNull TIntHashSet softWrapsToSkip, + @NotNull boolean[] caretRowPainted) { int startToUse = start; // Given 'end' offset is exclusive though SoftWrapModel.getSoftWrapsForRange() uses inclusive end offset. // Hence, we decrement it if necessary. Please note that we don't do that if start is equal to end. That is the case, @@ -2205,10 +2224,15 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return position.x; } - private void drawSoftWrap(Graphics g, SoftWrap softWrap, Point position, @JdkConstants.FontStyle int fontType, Color backColor, - boolean drawCustomBackgroundAtSoftWrapVirtualSpace, Color defaultBackground, Rectangle clip, - boolean[] caretRowPainted) - { + private void drawSoftWrap(@NotNull Graphics g, + @NotNull SoftWrap softWrap, + @NotNull Point position, + @JdkConstants.FontStyle int fontType, + @Nullable Color backColor, + boolean drawCustomBackgroundAtSoftWrapVirtualSpace, + @NotNull Color defaultBackground, + @NotNull Rectangle clip, + @NotNull boolean[] caretRowPainted) { // The main idea is to to do the following: // *) update given drawing position coordinates in accordance with the current soft wrap; // *) draw background at soft wrap-introduced virtual space if necessary; @@ -2262,9 +2286,11 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi * @param defaultBackground default background * @param fontType current font type */ - private void paintSelectionOnFirstSoftWrapLineIfNecessary(Graphics g, Point position, Rectangle clip, Color defaultBackground, - @JdkConstants.FontStyle int fontType) - { + private void paintSelectionOnFirstSoftWrapLineIfNecessary(@NotNull Graphics g, + @NotNull Point position, + @NotNull Rectangle clip, + @NotNull Color defaultBackground, + @JdkConstants.FontStyle int fontType) { // There is a possible case that the user performed selection at soft wrap virtual space. We need to paint corresponding background // there then. VisualPosition selectionStartPosition = getSelectionModel().getSelectionStartPosition(); @@ -2320,9 +2346,12 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi * @param fontType current font type * @param softWrap target soft wrap which second line virtual space may contain selection */ - private void paintSelectionOnSecondSoftWrapLineIfNecessary(Graphics g, Point position, Rectangle clip, Color defaultBackground, - @JdkConstants.FontStyle int fontType, SoftWrap softWrap) - { + private void paintSelectionOnSecondSoftWrapLineIfNecessary(@NotNull Graphics g, + @NotNull Point position, + @NotNull Rectangle clip, + @NotNull Color defaultBackground, + @JdkConstants.FontStyle int fontType, + @NotNull SoftWrap softWrap) { // There is a possible case that the user performed selection at soft wrap virtual space. We need to paint corresponding background // there then. VisualPosition selectionStartPosition = getSelectionModel().getSelectionStartPosition(); @@ -2355,20 +2384,24 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi drawBackground(g, getColorsScheme().getColor(EditorColors.SELECTION_BACKGROUND_COLOR), width, position, defaultBackground, clip); } - - private int drawBackground(Graphics g, Color backColor, CharSequence text, Point position, @JdkConstants.FontStyle int fontType, Color defaultBackground, - Rectangle clip) - { + + private int drawBackground(@NotNull Graphics g, + Color backColor, + @NotNull CharSequence text, + @NotNull Point position, + @JdkConstants.FontStyle int fontType, + @NotNull Color defaultBackground, + @NotNull Rectangle clip) { int width = getTextSegmentWidth(text, position.x, fontType, clip); return drawBackground(g, backColor, width, position, defaultBackground, clip); } - private int drawBackground(Graphics g, - Color backColor, + private int drawBackground(@NotNull Graphics g, + @Nullable Color backColor, int width, - Point position, - Color defaultBackground, - Rectangle clip) { + @NotNull Point position, + @NotNull Color defaultBackground, + @NotNull Rectangle clip) { if (backColor != null && !backColor.equals(defaultBackground) && clip.intersects(position.x, position.y, width, getLineHeight())) { if (backColor.equals(myLastBackgroundColor) && myLastBackgroundPosition.y == position.y && myLastBackgroundPosition.x + myLastBackgroundWidth == position.x) { @@ -2385,7 +2418,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return position.x + width; } - private void flushBackground(Graphics g, final Rectangle clip) { + private void flushBackground(@NotNull Graphics g, @NotNull final Rectangle clip) { if (myLastBackgroundColor != null) { final Point position = myLastBackgroundPosition; final int w = myLastBackgroundWidth; @@ -2398,14 +2431,16 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @NotNull private LineIterator createLineIterator() { return myDocument.createLineIterator(); } - private void paintText(Graphics g, - Rectangle clip, - LogicalPosition clipStartPosition, - int clipStartOffset, int clipEndOffset) { + private void paintText(@NotNull Graphics g, + @NotNull Rectangle clip, + @NotNull LogicalPosition clipStartPosition, + int clipStartOffset, + int clipEndOffset) { myCurrentFontType = null; myLastCache = null; final int plainSpaceWidth = EditorUtil.getSpaceWidth(Font.PLAIN, this); @@ -2427,7 +2462,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi // position is expected to be set to null as an indication that no soft wrap-introduced visual lines should be skipped on // current painting iteration. Ref logicalPosition = new Ref(clipStartPosition); - int startLine = logicalPosition.get().line; + int startLine = clipStartPosition.line; int start = clipStartOffset; Point position = new Point(0, visibleLine * lineHeight); @@ -2537,7 +2572,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi flushCachedChars(g); } - private void paintPlaceholderText(Graphics g, Rectangle clip) { + private void paintPlaceholderText(@NotNull Graphics g, @NotNull Rectangle clip) { CharSequence hintText = myPlaceholderText; if (myDocument.getTextLength() > 0 || hintText == null || hintText.length() == 0) { return; @@ -2568,6 +2603,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myPaintSelection = paintSelection; } + @NotNull @NonNls public String dumpState() { return "prefix: '" + (myPrefixText == null ? "none" : new String(myPrefixText)) @@ -2588,17 +2624,17 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi final Color[] color = new Color[CACHED_CHARS_BUFFER_SIZE]; int myCount = 0; - final FontInfo myFontType; + @NotNull final FontInfo myFontType; final int spaceWidth; - private char[] myLastData; + @Nullable private char[] myLastData; - private CachedFontContent(FontInfo fontInfo) { + private CachedFontContent(@NotNull FontInfo fontInfo) { myFontType = fontInfo; spaceWidth = fontInfo.charWidth(' ', myEditorComponent); } - private void flushContent(Graphics g) { + private void flushContent(@NotNull Graphics g) { if (myCount != 0) { if (myCurrentFontType != myFontType) { myCurrentFontType = myFontType; @@ -2621,7 +2657,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private void addContent(Graphics g, char[] _data, int _start, int _end, int _x, int _y, @Nullable Color _color) { + private void addContent(@NotNull Graphics g, char[] _data, int _start, int _end, int _x, int _y, @Nullable Color _color) { final int count = myCount; if (count > 0) { final int lastCount = count - 1; @@ -2650,35 +2686,35 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private void flushCachedChars(Graphics g) { + private void flushCachedChars(@NotNull Graphics g) { for (CachedFontContent cache : myFontCache) { cache.flushContent(g); } myLastCache = null; } - private void paintCaretCursor(Graphics g) { + private void paintCaretCursor(@NotNull Graphics g) { // There is a possible case that visual caret position is changed because of newly added or removed soft wraps. // We check if that's the case and ask caret model to recalculate visual position if necessary. myCaretCursor.paint(g); } - private void paintLineMarkersSeparators(final Graphics g, - final Rectangle clip, + private void paintLineMarkersSeparators(@NotNull final Graphics g, + @NotNull final Rectangle clip, @NotNull MarkupModelEx markupModel, int clipStartOffset, int clipEndOffset) { markupModel.processRangeHighlightersOverlappingWith(clipStartOffset, clipEndOffset, new Processor() { @Override - public boolean process(RangeHighlighterEx lineMarker) { + public boolean process(@NotNull RangeHighlighterEx lineMarker) { paintLineMarkerSeparator(lineMarker, clip, g); return true; } }); } - private void paintLineMarkerSeparator(RangeHighlighter marker, Rectangle clip, Graphics g) { + private void paintLineMarkerSeparator(@NotNull RangeHighlighter marker, @NotNull Rectangle clip, @NotNull Graphics g) { Color separatorColor = marker.getLineSeparatorColor(); if (separatorColor == null) { return; @@ -2724,31 +2760,31 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private int drawStringWithSoftWraps(Graphics g, - final String text, - Point position, - Rectangle clip, + private int drawStringWithSoftWraps(@NotNull Graphics g, + @NotNull final String text, + @NotNull Point position, + @NotNull Rectangle clip, Color effectColor, EffectType effectType, @JdkConstants.FontStyle int fontType, Color fontColor, - Ref startDrawingLogicalPosition) + @NotNull Ref startDrawingLogicalPosition) { return drawStringWithSoftWraps(g, text.toCharArray(), 0, text.length(), position, clip, effectColor, effectType, fontType, fontColor, startDrawingLogicalPosition); } - private int drawStringWithSoftWraps(Graphics g, + private int drawStringWithSoftWraps(@NotNull Graphics g, final char[] text, final int start, final int end, - Point position, - Rectangle clip, + @NotNull Point position, + @NotNull Rectangle clip, Color effectColor, EffectType effectType, @JdkConstants.FontStyle int fontType, Color fontColor, - Ref startDrawingLogicalPosition) { + @NotNull Ref startDrawingLogicalPosition) { int startToUse = start; // There is a possible case that starting logical line is split by soft-wraps and it's part after the split should be drawn. @@ -2854,12 +2890,12 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return position.x = drawString(g, text, startToUse, end, position, clip, effectColor, effectType, fontType, fontColor); } - private int drawString(Graphics g, + private int drawString(@NotNull Graphics g, final char[] text, int start, int end, - Point position, - Rectangle clip, + @NotNull Point position, + @NotNull Rectangle clip, @Nullable Color effectColor, @Nullable EffectType effectType, @JdkConstants.FontStyle int fontType, @@ -2875,10 +2911,10 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return drawTabbedString(g, text, start, end, x, y, effectColor, effectType, fontType, fontColor, clip); } - private int drawString(Graphics g, - String text, - Point position, - Rectangle clip, + private int drawString(@NotNull Graphics g, + @NotNull String text, + @NotNull Point position, + @NotNull Rectangle clip, Color effectColor, EffectType effectType, @JdkConstants.FontStyle int fontType, @@ -2893,17 +2929,17 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return drawTabbedString(g, text.toCharArray(), 0, text.length(), x, y, effectColor, effectType, fontType, fontColor, clip); } - private int drawTabbedString(Graphics g, + private int drawTabbedString(@NotNull Graphics g, char[] text, int start, int end, int x, int y, - Color effectColor, + @Nullable Color effectColor, EffectType effectType, @JdkConstants.FontStyle int fontType, Color fontColor, - final Rectangle clip) { + @NotNull final Rectangle clip) { int xStart = x; for (int i = start; i < end; i++) { @@ -2970,12 +3006,12 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private int drawTablessString(final char[] text, int start, final int end, - final Graphics g, + @NotNull final Graphics g, int x, final int y, @JdkConstants.FontStyle final int fontType, final Color fontColor, - final Rectangle clip) { + @NotNull final Rectangle clip) { int endX = x; if (start < end) { FontInfo font = EditorUtil.fontForChar(text[start], fontType, this); @@ -3031,7 +3067,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private void drawCharsCached(Graphics g, char[] data, int start, int end, int x, int y, @JdkConstants.FontStyle int fontType, Color color) { + private void drawCharsCached(@NotNull Graphics g, char[] data, int start, int end, int x, int y, @JdkConstants.FontStyle int fontType, Color color) { if (!myForceRefreshFont && myCommonSpaceWidth > 0 && myLastCache != null && spacesOnly(data, start, end)) { myLastCache.addContent(g, data, start, end, x, y, null); } @@ -3042,7 +3078,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private void drawCharsCached(Graphics g, char[] data, int start, int end, int x, int y, FontInfo fnt, Color color) { + private void drawCharsCached(@NotNull Graphics g, @NotNull char[] data, int start, int end, int x, int y, @NotNull FontInfo fnt, Color color) { CachedFontContent cache = null; for (CachedFontContent fontCache : myFontCache) { if (fontCache.myFontType == fnt) { @@ -3066,7 +3102,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return true; } - private void drawChars(Graphics g, char[] data, int start, int end, int x, int y) { + private void drawChars(@NotNull Graphics g, char[] data, int start, int end, int x, int y) { g.drawChars(data, start, end - start, x, y); if (mySettings.isWhitespacesShown()) { @@ -3103,7 +3139,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi UIUtil.drawLine(g, x + WAVE_SEGMENT_LENGTH / 2, y, x + WAVE_SEGMENT_LENGTH, y + WAVE_HEIGHT); } - private int getTextSegmentWidth(CharSequence text, int xStart, @JdkConstants.FontStyle int fontType, Rectangle clip) { + private int getTextSegmentWidth(@NotNull CharSequence text, int xStart, @JdkConstants.FontStyle int fontType, @NotNull Rectangle clip) { int x = xStart; final int textLength = text.length(); @@ -3148,6 +3184,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return myDescent; } + @NotNull FontMetrics getFontMetrics(@JdkConstants.FontStyle int fontType) { if (myPlainFontMetrics == null) { assertIsDispatchThread(); @@ -3243,12 +3280,14 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return size + mySettings.getAdditionalLinesCount() * getLineHeight(); } + @NotNull @Override public Dimension getContentSize() { Dimension size = mySizeContainer.getContentSize(); return new Dimension(size.width, size.height + mySettings.getAdditionalLinesCount() * getLineHeight()); } + @NotNull @Override public JScrollPane getScrollPane() { return myScrollPane; @@ -3330,6 +3369,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return doLogicalToVisualPosition(logicalPos, softWrapAware); } + @NotNull private VisualPosition doLogicalToVisualPosition(@NotNull LogicalPosition logicalPos, boolean softWrapAware) { assertReadAccess(); if (!myFoldingModel.isFoldingEnabled() && !mySoftWrapModel.isSoftWrappingEnabled()) { @@ -3410,7 +3450,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } @Nullable - private FoldRegion getLastCollapsedBeforePosition(VisualPosition visualPos) { + private FoldRegion getLastCollapsedBeforePosition(@NotNull VisualPosition visualPos) { FoldRegion[] topLevelCollapsed = myFoldingModel.fetchTopLevel(); if (topLevelCollapsed == null) return null; @@ -3628,7 +3668,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi getCaretModel().moveToLogicalPosition(pos1); } - private boolean checkIgnore(MouseEvent e, boolean isFinalCheck) { + private boolean checkIgnore(@NotNull MouseEvent e, boolean isFinalCheck) { if (!myIgnoreMouseEventsConsecutiveToInitial) { myInitialMouseEvent = null; return false; @@ -3650,7 +3690,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return true; } - private void processMouseReleased(MouseEvent e) { + private void processMouseReleased(@NotNull MouseEvent e) { if (checkIgnore(e, true)) return; if (e.getSource() == myGutterComponent) { @@ -3687,12 +3727,14 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @NotNull @Override public DataContext getDataContext() { return getProjectAwareDataContext(DataManager.getInstance().getDataContext(getContentComponent())); } - private DataContext getProjectAwareDataContext(final DataContext original) { + @NotNull + private DataContext getProjectAwareDataContext(@NotNull final DataContext original) { if (PlatformDataKeys.PROJECT.getData(original) == myProject) return original; return new DataContext() { @@ -3743,7 +3785,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private void validateMousePointer(MouseEvent e) { + private void validateMousePointer(@NotNull MouseEvent e) { if (e.getSource() == myGutterComponent) { FoldRegion foldingAtCursor = myGutterComponent.findFoldingAnchorAt(e.getX(), e.getY()); myGutterComponent.setActiveFoldRegion(foldingAtCursor); @@ -3767,7 +3809,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private void runMouseDraggedCommand(final MouseEvent e) { + private void runMouseDraggedCommand(@NotNull final MouseEvent e) { if (myCommandProcessor == null || myMousePressedEvent != null && myMousePressedEvent.isConsumed()) { return; } @@ -3779,7 +3821,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi }, "", MOUSE_DRAGGED_GROUP, UndoConfirmationPolicy.DEFAULT, getDocument()); } - private void processMouseDragged(MouseEvent e) { + private void processMouseDragged(@NotNull MouseEvent e) { if (SwingUtilities.isRightMouseButton(e)) { return; } @@ -3924,8 +3966,8 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private static class RepaintCursorCommand implements Runnable { private long mySleepTime = 500; private boolean myIsBlinkCaret = true; - private EditorImpl myEditor = null; - private final MyRepaintRunnable myRepaintRunnable; + @Nullable private EditorImpl myEditor = null; + @NotNull private final MyRepaintRunnable myRepaintRunnable; private ScheduledFuture mySchedulerHandle; private RepaintCursorCommand() { @@ -4121,7 +4163,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myEditorComponent.repaintEditorComponent(myLocation.x, myLocation.y, myWidth, getLineHeight()); } - private void paint(Graphics g) { + private void paint(@NotNull Graphics g) { if (!isEnabled() || !myIsShown || !IJSwingUtilities.hasFocus(getContentComponent()) || isRendererMode()) return; int x = myLocation.x; @@ -4432,62 +4474,62 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private class MyEditable implements CutProvider, CopyProvider, PasteProvider, DeleteProvider { @Override - public void performCopy(DataContext dataContext) { + public void performCopy(@NotNull DataContext dataContext) { executeAction(IdeActions.ACTION_EDITOR_COPY, dataContext); } @Override - public boolean isCopyEnabled(DataContext dataContext) { + public boolean isCopyEnabled(@NotNull DataContext dataContext) { return true; } @Override - public boolean isCopyVisible(DataContext dataContext) { + public boolean isCopyVisible(@NotNull DataContext dataContext) { return getSelectionModel().hasSelection() || getSelectionModel().hasBlockSelection(); } @Override - public void performCut(DataContext dataContext) { + public void performCut(@NotNull DataContext dataContext) { executeAction(IdeActions.ACTION_EDITOR_CUT, dataContext); } @Override - public boolean isCutEnabled(DataContext dataContext) { + public boolean isCutEnabled(@NotNull DataContext dataContext) { return !isViewer(); } @Override - public boolean isCutVisible(DataContext dataContext) { + public boolean isCutVisible(@NotNull DataContext dataContext) { return getSelectionModel().hasSelection() || getSelectionModel().hasBlockSelection(); } @Override - public void performPaste(DataContext dataContext) { + public void performPaste(@NotNull DataContext dataContext) { executeAction(IdeActions.ACTION_EDITOR_PASTE, dataContext); } @Override - public boolean isPastePossible(DataContext dataContext) { + public boolean isPastePossible(@NotNull DataContext dataContext) { // Copy of isPasteEnabled. See interface method javadoc. return !isViewer(); } @Override - public boolean isPasteEnabled(DataContext dataContext) { + public boolean isPasteEnabled(@NotNull DataContext dataContext) { return !isViewer(); } @Override - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { executeAction(IdeActions.ACTION_EDITOR_DELETE, dataContext); } @Override - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { return !isViewer(); } - private void executeAction(String actionId, DataContext dataContext) { + private void executeAction(@NotNull String actionId, @NotNull DataContext dataContext) { EditorAction action = (EditorAction)ActionManager.getInstance().getAction(actionId); if (action != null) { action.actionPerformed(EditorImpl.this, dataContext); @@ -4558,6 +4600,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return myScrollBarOrientation != EditorEx.VERTICAL_SCROLLBAR_RIGHT; } + @NotNull MyScrollBar getVerticalScrollBar() { return myVerticalScrollBar; } @@ -4600,16 +4643,17 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myMouseSelectionStateAlarm.cancelAllRequests(); } - void replaceInputMethodText(InputMethodEvent e) { + void replaceInputMethodText(@NotNull InputMethodEvent e) { getInputMethodRequests(); myInputMethodRequestsHandler.replaceInputMethodText(e); } - void inputMethodCaretPositionChanged(InputMethodEvent e) { + void inputMethodCaretPositionChanged(@NotNull InputMethodEvent e) { getInputMethodRequests(); myInputMethodRequestsHandler.setInputMethodCaretPosition(e); } + @NotNull InputMethodRequests getInputMethodRequests() { if (myInputMethodRequestsHandler == null) { myInputMethodRequestsHandler = new MyInputMethodHandler(); @@ -4639,7 +4683,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return myDropHandler; } - public void setDropHandler(EditorDropHandler dropHandler) { + public void setDropHandler(@NotNull EditorDropHandler dropHandler) { myDropHandler = dropHandler; } @@ -4796,6 +4840,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private int composedTextStart; private int composedTextEnd; + @NotNull @Override public Rectangle getTextLocation(TextHitInfo offset) { Point caret = logicalPositionToXY(getCaretModel().getLogicalPosition()); @@ -4902,7 +4947,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi return text == null ? null : new AttributedString(text).getIterator(); } - private void createComposedString(int composedIndex, AttributedCharacterIterator text) { + private void createComposedString(int composedIndex, @NotNull AttributedCharacterIterator text) { StringBuffer strBuf = new StringBuffer(); // create attributed string with no attributes @@ -4913,7 +4958,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi composedText = new String(strBuf); } - private void setInputMethodCaretPosition(InputMethodEvent e) { + private void setInputMethodCaretPosition(@NotNull InputMethodEvent e) { if (composedText != null) { int dot = composedTextStart; @@ -4927,7 +4972,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private void runUndoTransparent(final Runnable runnable) { + private void runUndoTransparent(@NotNull final Runnable runnable) { CommandProcessor.getInstance().runUndoTransparentAction(new Runnable() { @Override public void run() { @@ -4941,7 +4986,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi }); } - private void replaceInputMethodText(InputMethodEvent e) { + private void replaceInputMethodText(@NotNull InputMethodEvent e) { int commitCount = e.getCommittedCharacterCount(); AttributedCharacterIterator text = e.getText(); @@ -4999,13 +5044,13 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private boolean mySelectionTweaked; @Override - public void mousePressed(MouseEvent e) { + public void mousePressed(@NotNull MouseEvent e) { requestFocus(); runMousePressedCommand(e); } @Override - public void mouseReleased(MouseEvent e) { + public void mouseReleased(@NotNull MouseEvent e) { myMousePressArea = null; runMouseReleasedCommand(e); if (!e.isConsumed() && myMousePressedEvent != null && !myMousePressedEvent.isConsumed() && @@ -5016,12 +5061,12 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } @Override - public void mouseEntered(MouseEvent e) { + public void mouseEntered(@NotNull MouseEvent e) { runMouseEnteredCommand(e); } @Override - public void mouseExited(MouseEvent e) { + public void mouseExited(@NotNull MouseEvent e) { runMouseExitedCommand(e); EditorMouseEvent event = new EditorMouseEvent(EditorImpl.this, e, getMouseEventArea(e)); if (event.getArea() == EditorMouseEventArea.LINE_MARKERS_AREA) { @@ -5030,7 +5075,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi TooltipController.getInstance().cancelTooltip(FOLDING_TOOLTIP_GROUP, e, true); } - private void runMousePressedCommand(final MouseEvent e) { + private void runMousePressedCommand(@NotNull final MouseEvent e) { mySelectionTweaked = false; myMousePressedEvent = e; EditorMouseEvent event = new EditorMouseEvent(EditorImpl.this, e, getMouseEventArea(e)); @@ -5062,7 +5107,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private void runMouseClickedCommand(final MouseEvent e) { + private void runMouseClickedCommand(@NotNull final MouseEvent e) { EditorMouseEvent event = new EditorMouseEvent(EditorImpl.this, e, getMouseEventArea(e)); for (EditorMouseListener listener : myMouseListeners) { listener.mouseClicked(event); @@ -5073,7 +5118,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private void runMouseReleasedCommand(final MouseEvent e) { + private void runMouseReleasedCommand(@NotNull final MouseEvent e) { if (!mySelectionTweaked) { tweakSelectionIfNecessary(e); } @@ -5105,7 +5150,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private void runMouseEnteredCommand(MouseEvent e) { + private void runMouseEnteredCommand(@NotNull MouseEvent e) { EditorMouseEvent event = new EditorMouseEvent(EditorImpl.this, e, getMouseEventArea(e)); for (EditorMouseListener listener : myMouseListeners) { listener.mouseEntered(event); @@ -5116,7 +5161,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private void runMouseExitedCommand(MouseEvent e) { + private void runMouseExitedCommand(@NotNull MouseEvent e) { EditorMouseEvent event = new EditorMouseEvent(EditorImpl.this, e, getMouseEventArea(e)); for (EditorMouseListener listener : myMouseListeners) { listener.mouseExited(event); @@ -5127,7 +5172,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private boolean processMousePressed(MouseEvent e) { + private boolean processMousePressed(@NotNull MouseEvent e) { myInitialMouseEvent = e; if (myMouseSelectionState != MOUSE_SELECTION_STATE_NONE && System.currentTimeMillis() - myMouseSelectionChangeTimestamp > Registry.intValue( @@ -5356,7 +5401,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private class MyMouseMotionListener implements MouseMotionListener { @Override - public void mouseDragged(MouseEvent e) { + public void mouseDragged(@NotNull MouseEvent e) { validateMousePointer(e); runMouseDraggedCommand(e); EditorMouseEvent event = new EditorMouseEvent(EditorImpl.this, e, getMouseEventArea(e)); @@ -5370,7 +5415,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } @Override - public void mouseMoved(MouseEvent e) { + public void mouseMoved(@NotNull MouseEvent e) { if (getMouseSelectionState() != MOUSE_SELECTION_STATE_NONE) { if (myMousePressedEvent != null && myMousePressedEvent.getComponent() == e.getComponent()) { Point lastPoint = myMousePressedEvent.getPoint(); @@ -5412,7 +5457,8 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - private DocumentFragment createDocumentFragment(FoldRegion fold) { + @NotNull + private DocumentFragment createDocumentFragment(@NotNull FoldRegion fold) { final FoldingGroup group = fold.getGroup(); final int foldStart = fold.getStartOffset(); if (group != null) { @@ -5487,11 +5533,13 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi myOwnAttributes.put(key, attributes); } + @NotNull @Override public Color getDefaultBackground() { return getGlobal().getDefaultBackground(); } + @NotNull @Override public Color getDefaultForeground() { return getGlobal().getDefaultForeground(); @@ -5596,8 +5644,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } public void updateGlobalScheme() { - myGlobalScheme = myCustomGlobalScheme != null ? myCustomGlobalScheme - : EditorColorsManager.getInstance().getGlobalScheme(); + myGlobalScheme = myCustomGlobalScheme == null ? EditorColorsManager.getInstance().getGlobalScheme() : myCustomGlobalScheme; int globalFontSize = getGlobal().getEditorFontSize(); myMaxFontSize = Math.max(OptionsConstants.MAX_EDITOR_FONT_SIZE, globalFontSize); } @@ -5636,13 +5683,13 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private static class MyTransferHandler extends TransferHandler { private RangeMarker myDraggedRange = null; - private static Editor getEditor(JComponent comp) { + private static Editor getEditor(@NotNull JComponent comp) { EditorComponentImpl editorComponent = (EditorComponentImpl)comp; return editorComponent.getEditor(); } @Override - public boolean importData(final JComponent comp, final Transferable t) { + public boolean importData(final JComponent comp, @NotNull final Transferable t) { final EditorImpl editor = (EditorImpl)getEditor(comp); final EditorDropHandler dropHandler = editor.getDropHandler(); @@ -5710,7 +5757,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } @Override - public boolean canImport(JComponent comp, DataFlavor[] transferFlavors) { + public boolean canImport(JComponent comp, @NotNull DataFlavor[] transferFlavors) { Editor editor = getEditor(comp); final EditorDropHandler dropHandler = ((EditorImpl)editor).getDropHandler(); if (dropHandler != null && dropHandler.canHandleDrop(transferFlavors)) { @@ -5747,7 +5794,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } @Override - protected void exportDone(final JComponent source, Transferable data, int action) { + protected void exportDone(@NotNull final JComponent source, @Nullable Transferable data, int action) { if (data == null) return; final Component last = DnDManager.getInstance().getLastDropHandler(); @@ -5788,12 +5835,12 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi class EditorDocumentAdapter implements PrioritizedDocumentListener { @Override - public void beforeDocumentChange(DocumentEvent e) { + public void beforeDocumentChange(@NotNull DocumentEvent e) { beforeChangedUpdate(e); } @Override - public void documentChanged(DocumentEvent e) { + public void documentChanged(@NotNull DocumentEvent e) { changedUpdate(e); } @@ -5805,12 +5852,12 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi class EditorDocumentBulkUpdateAdapter implements DocumentBulkUpdateListener { @Override - public void updateStarted(Document doc) { + public void updateStarted(@NotNull Document doc) { bulkUpdateStarted(); } @Override - public void updateFinished(Document doc) { + public void updateFinished(@NotNull Document doc) { bulkUpdateFinished(); } } @@ -5848,7 +5895,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } @SuppressWarnings({"NonPrivateFieldAccessedInSynchronizedContext"}) - public synchronized void beforeChange(DocumentEvent e) { + public synchronized void beforeChange(@NotNull DocumentEvent e) { if (myDocument.isInBulkUpdate()) { myMaxWidth = mySize == null ? -1 : mySize.width; } @@ -5949,7 +5996,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } - public synchronized void changedUpdate(DocumentEvent e) { + public synchronized void changedUpdate(@NotNull DocumentEvent e) { int startLine = e.getOldLength() == 0 ? myOldEndLine : myDocument.getLineNumber(e.getOffset()); int newEndLine = e.getNewLength() == 0 ? startLine : myDocument.getLineNumber(e.getOffset() + e.getNewLength()); int oldEndLine = myOldEndLine; @@ -6127,6 +6174,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @NotNull private Dimension getContentSize() { validateSizes(); return mySize; @@ -6196,7 +6244,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } @Override - protected void processMouseWheelEvent(MouseWheelEvent e) { + protected void processMouseWheelEvent(@NotNull MouseWheelEvent e) { if (mySettings.isWheelFontChangeEnabled() && !MouseGestureManager.getInstance().hasTrackpad()) { if (EditorUtil.isChangeFontSize(e)) { setFontSize(myScheme.getEditorFontSize() - e.getWheelRotation()); @@ -6207,6 +6255,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi super.processMouseWheelEvent(e); } + @NotNull @Override public JScrollBar createVerticalScrollBar() { return new MyScrollBar(Adjustable.VERTICAL); @@ -6222,7 +6271,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi LOWER_RIGHT_CORNER : LOWER_LEFT_CORNER, new JPanel() { @Override - public void paint(Graphics g) { + public void paint(@NotNull Graphics g) { final Rectangle bounds = getBounds(); int width = bounds.width; int height = bounds.height; @@ -6252,7 +6301,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } @Override - public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) { + public void paintBorder(@NotNull Component c, @NotNull Graphics g, int x, int y, int width, int height) { if (c instanceof JComponent) { Insets insets = ((JComponent)c).getInsets(); if (insets.left > 0) { @@ -6266,6 +6315,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi } } + @NotNull @Override public Insets getBorderInsets(Component c) { Container splitters = SwingUtilities.getAncestorOfClass(EditorsSplitters.class, c); @@ -6306,7 +6356,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi private class MyTextDrawingCallback implements TextDrawingCallback { @Override - public void drawChars(Graphics g, char[] data, int start, int end, int x, int y, Color color, FontInfo fontInfo) { + public void drawChars(@NotNull Graphics g, @NotNull char[] data, int start, int end, int x, int y, Color color, @NotNull FontInfo fontInfo) { drawCharsCached(g, data, start, end, x, y, fontInfo, color); } } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/TextDrawingCallback.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/TextDrawingCallback.java index 45a7f3631636..bce2e72b22fe 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/TextDrawingCallback.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/TextDrawingCallback.java @@ -15,6 +15,8 @@ */ package com.intellij.openapi.editor.impl; +import org.jetbrains.annotations.NotNull; + import java.awt.*; /** @@ -44,5 +46,5 @@ public interface TextDrawingCallback { * @param fontInfo font info to use during drawing target text at the given graphics buffer * @param color color to use during drawing target text at the given graphics buffer */ - void drawChars(Graphics g, char[] data, int start, int end, int x, int y, Color color, FontInfo fontInfo); + void drawChars(@NotNull Graphics g, @NotNull char[] data, int start, int end, int x, int y, Color color, FontInfo fontInfo); } diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentEditor.java b/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentEditor.java index 3f30d90a5c38..16ed917b908e 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentEditor.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/textarea/TextComponentEditor.java @@ -286,6 +286,7 @@ public class TextComponentEditor extends UserDataHolderBase implements Editor { return null; } + @NotNull @Override public IndentsModel getIndentsModel() { return new EmptyIndentsModel(); diff --git a/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/VirtualFileDeleteProvider.java b/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/VirtualFileDeleteProvider.java index 37df7d748ac0..27cdac82c14a 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/VirtualFileDeleteProvider.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileChooser/actions/VirtualFileDeleteProvider.java @@ -25,6 +25,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ui.UIBundle; +import org.jetbrains.annotations.NotNull; import java.io.IOException; import java.util.Comparator; @@ -33,12 +34,12 @@ import java.util.Arrays; public final class VirtualFileDeleteProvider implements DeleteProvider { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.fileChooser.actions.VirtualFileDeleteProvider"); - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { final VirtualFile[] files = PlatformDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext); return files != null && files.length > 0; } - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { final VirtualFile[] files = PlatformDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext); if (files == null || files.length == 0) return; diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/VfsImplUtil.java b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/VfsImplUtil.java index e2ac1f0a0d2d..68b669f11cf3 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/VfsImplUtil.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/newvfs/VfsImplUtil.java @@ -45,7 +45,7 @@ public class VfsImplUtil { return null; } for (String pathElement : StringUtil.tokenize(normalizedPath.substring(basePath.length()), FILE_SEPARATORS)) { - if (pathElement.length() == 0 || ".".equals(pathElement)) continue; + if (pathElement.isEmpty() || ".".equals(pathElement)) continue; if ("..".equals(pathElement)) { file = file.getParent(); } @@ -68,7 +68,7 @@ public class VfsImplUtil { if (file == null || !file.exists()) return null; for (String pathElement : StringUtil.tokenize(normalizedPath.substring(basePath.length()), FILE_SEPARATORS)) { - if (pathElement.length() == 0 || ".".equals(pathElement)) continue; + if (pathElement.isEmpty() || ".".equals(pathElement)) continue; if ("..".equals(pathElement)) { file = file.getParent(); } @@ -92,7 +92,7 @@ public class VfsImplUtil { LOG.assertTrue(basePath.length() <= normalizedPath.length(), vfs + " failed to extract root path: " + basePath + " from " + normalizedPath); for (String pathElement : StringUtil.tokenize(normalizedPath.substring(basePath.length()), FILE_SEPARATORS)) { - if (pathElement.length() == 0 || ".".equals(pathElement)) continue; + if (pathElement.isEmpty() || ".".equals(pathElement)) continue; if ("..".equals(pathElement)) { file = file.getParent(); } diff --git a/platform/testRunner/src/com/intellij/execution/testframework/TestTreeView.java b/platform/testRunner/src/com/intellij/execution/testframework/TestTreeView.java index 9e2fb6dd21d6..693d948b22d6 100644 --- a/platform/testRunner/src/com/intellij/execution/testframework/TestTreeView.java +++ b/platform/testRunner/src/com/intellij/execution/testframework/TestTreeView.java @@ -106,18 +106,18 @@ public abstract class TestTreeView extends Tree implements DataProvider, CopyPro } @Override - public void performCopy(DataContext dataContext) { + public void performCopy(@NotNull DataContext dataContext) { final PsiElement element = LangDataKeys.PSI_ELEMENT.getData(dataContext); CopyPasteManager.getInstance().setContents(new StringSelection(CopyReferenceAction.elementToFqn(element))); } @Override - public boolean isCopyEnabled(DataContext dataContext) { + public boolean isCopyEnabled(@NotNull DataContext dataContext) { return LangDataKeys.PSI_ELEMENT.getData(dataContext) != null; } @Override - public boolean isCopyVisible(DataContext dataContext) { + public boolean isCopyVisible(@NotNull DataContext dataContext) { return true; } diff --git a/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java b/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java index 950d93c1ff4b..ab727d4b34d8 100644 --- a/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java +++ b/platform/usageView/src/com/intellij/usages/impl/UsageViewImpl.java @@ -1176,7 +1176,7 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra } @Override - public void performCopy(DataContext dataContext) { + public void performCopy(@NotNull DataContext dataContext) { final Node selectedNode = getSelectedNode(); assert selectedNode != null; final String plainText = selectedNode.getText(UsageViewImpl.this); @@ -1184,12 +1184,12 @@ public class UsageViewImpl implements UsageView, UsageModelTracker.UsageModelTra } @Override - public boolean isCopyEnabled(DataContext dataContext) { + public boolean isCopyEnabled(@NotNull DataContext dataContext) { return getSelectedNode() != null; } @Override - public boolean isCopyVisible(DataContext dataContext) { + public boolean isCopyVisible(@NotNull DataContext dataContext) { return true; } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/shelf/ShelvedChangesViewManager.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/shelf/ShelvedChangesViewManager.java index 4a02a792e711..2ff7dec21836 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/shelf/ShelvedChangesViewManager.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/shelf/ShelvedChangesViewManager.java @@ -476,7 +476,7 @@ public class ShelvedChangesViewManager implements ProjectComponent { } private class MyChangeListDeleteProvider implements DeleteProvider { - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { //noinspection unchecked final List shelvedChangeLists = getLists(dataContext); if (shelvedChangeLists.isEmpty()) return; @@ -490,7 +490,7 @@ public class ShelvedChangesViewManager implements ProjectComponent { } } - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { //noinspection unchecked return ! getLists(dataContext).isEmpty(); } @@ -512,7 +512,7 @@ public class ShelvedChangesViewManager implements ProjectComponent { } private class MyChangesDeleteProvider implements DeleteProvider { - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { final Project project = PlatformDataKeys.PROJECT.getData(dataContext); if (project == null) return; final ShelvedChangeList[] shelved = SHELVED_CHANGELIST_KEY.getData(dataContext); @@ -559,7 +559,7 @@ public class ShelvedChangesViewManager implements ProjectComponent { } } - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { final ShelvedChangeList[] shelved = SHELVED_CHANGELIST_KEY.getData(dataContext); if (shelved == null || (shelved.length != 1)) return false; final List changes = SHELVED_CHANGE_KEY.getData(dataContext); @@ -586,14 +586,14 @@ public class ShelvedChangesViewManager implements ProjectComponent { return null; } - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { final DeleteProvider delegate = selectDelegate(dataContext); if (delegate != null) { delegate.deleteElement(dataContext); } } - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { return selectDelegate(dataContext) != null; } } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/LineStatusTrackerManager.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/LineStatusTrackerManager.java index ccd8400d2534..03ef2c454139 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/LineStatusTrackerManager.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/LineStatusTrackerManager.java @@ -106,12 +106,12 @@ public class LineStatusTrackerManager implements ProjectComponent, LineStatusTra }); project.getMessageBus().connect().subscribe(DocumentBulkUpdateListener.TOPIC, new DocumentBulkUpdateListener.Adapter() { - public void updateStarted(final Document doc) { + public void updateStarted(@NotNull final Document doc) { final LineStatusTracker tracker = getLineStatusTracker(doc); if (tracker != null) tracker.startBulkUpdate(); } - public void updateFinished(final Document doc) { + public void updateFinished(@NotNull final Document doc) { final LineStatusTracker tracker = getLineStatusTracker(doc); if (tracker != null) tracker.finishBulkUpdate(); } diff --git a/plugins/ant/src/com/intellij/lang/ant/config/execution/TreeView.java b/plugins/ant/src/com/intellij/lang/ant/config/execution/TreeView.java index e2c73453d150..acac4b46ec69 100644 --- a/plugins/ant/src/com/intellij/lang/ant/config/execution/TreeView.java +++ b/plugins/ant/src/com/intellij/lang/ant/config/execution/TreeView.java @@ -43,6 +43,7 @@ import com.intellij.util.OpenSourceUtil; import com.intellij.util.StringBuilderSpinAllocator; import com.intellij.util.ui.tree.TreeUtil; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -591,15 +592,15 @@ public final class TreeView implements AntOutputView, OccurenceNavigator { public Object getData(String dataId) { if (PlatformDataKeys.COPY_PROVIDER.is(dataId)) { return new CopyProvider() { - public boolean isCopyEnabled(DataContext dataContext) { + public boolean isCopyEnabled(@NotNull DataContext dataContext) { return getSelectionPath() != null; } - public boolean isCopyVisible(DataContext dataContext) { + public boolean isCopyVisible(@NotNull DataContext dataContext) { return true; } - public void performCopy(DataContext dataContext) { + public void performCopy(@NotNull DataContext dataContext) { TreePath selection = getSelectionPath(); Object value = selection.getLastPathComponent(); String text; diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicToolWindowWrapper.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicToolWindowWrapper.java index 4170ea170083..61dc8fb518b6 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicToolWindowWrapper.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicToolWindowWrapper.java @@ -666,12 +666,12 @@ public class DynamicToolWindowWrapper { else if (PlatformDataKeys.DELETE_ELEMENT_PROVIDER.is(dataId)) { return new DeleteProvider() { @Override - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { deleteRow(); } @Override - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { return myTreeTable.getTree().getSelectionPaths() != null; } }; diff --git a/plugins/properties/src/com/intellij/lang/properties/projectView/ResourceBundleDeleteProvider.java b/plugins/properties/src/com/intellij/lang/properties/projectView/ResourceBundleDeleteProvider.java index 6a1fd1dc47eb..52306669fa93 100644 --- a/plugins/properties/src/com/intellij/lang/properties/projectView/ResourceBundleDeleteProvider.java +++ b/plugins/properties/src/com/intellij/lang/properties/projectView/ResourceBundleDeleteProvider.java @@ -25,6 +25,7 @@ import com.intellij.psi.PsiElement; import com.intellij.refactoring.safeDelete.SafeDeleteHandler; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; +import org.jetbrains.annotations.NotNull; import java.util.List; @@ -44,14 +45,14 @@ class ResourceBundleDeleteProvider implements DeleteProvider { myResourceBundle = resourceBundle; } - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { final Project project = PlatformDataKeys.PROJECT.getData(dataContext); List propertiesFiles = myResourceBundle.getPropertiesFiles(project); assert project != null; new SafeDeleteHandler().invoke(project, ContainerUtil.map2Array(propertiesFiles, PsiElement.class, MAPPER), dataContext); } - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { final Project project = PlatformDataKeys.PROJECT.getData(dataContext); return project != null; } diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/CutCopyPasteSupport.java b/plugins/ui-designer/src/com/intellij/uiDesigner/CutCopyPasteSupport.java index de38611d117e..738144a3fce7 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/CutCopyPasteSupport.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/CutCopyPasteSupport.java @@ -34,6 +34,7 @@ import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -62,15 +63,15 @@ public final class CutCopyPasteSupport implements CopyProvider, CutProvider, Pas myEditor = uiEditor; } - public boolean isCopyEnabled(final DataContext dataContext) { + public boolean isCopyEnabled(@NotNull final DataContext dataContext) { return FormEditingUtil.getSelectedComponents(myEditor).size() > 0 && !myEditor.getInplaceEditingLayer().isEditing(); } - public boolean isCopyVisible(DataContext dataContext) { + public boolean isCopyVisible(@NotNull DataContext dataContext) { return true; } - public void performCopy(final DataContext dataContext) { + public void performCopy(@NotNull final DataContext dataContext) { doCopy(); } @@ -88,15 +89,15 @@ public final class CutCopyPasteSupport implements CopyProvider, CutProvider, Pas } } - public boolean isCutEnabled(final DataContext dataContext) { + public boolean isCutEnabled(@NotNull final DataContext dataContext) { return isCopyEnabled(dataContext) && FormEditingUtil.canDeleteSelection(myEditor); } - public boolean isCutVisible(DataContext dataContext) { + public boolean isCutVisible(@NotNull DataContext dataContext) { return true; } - public void performCut(final DataContext dataContext) { + public void performCut(@NotNull final DataContext dataContext) { if (doCopy() && myEditor.ensureEditable()) { CommandProcessor.getInstance().executeCommand(myEditor.getProject(), new Runnable() { public void run() { @@ -106,15 +107,15 @@ public final class CutCopyPasteSupport implements CopyProvider, CutProvider, Pas } } - public boolean isPastePossible(final DataContext dataContext) { + public boolean isPastePossible(@NotNull final DataContext dataContext) { return isPasteEnabled(dataContext); } - public boolean isPasteEnabled(final DataContext dataContext) { + public boolean isPasteEnabled(@NotNull final DataContext dataContext) { return getSerializedComponents() != null && !myEditor.getInplaceEditingLayer().isEditing(); } - public void performPaste(final DataContext dataContext) { + public void performPaste(@NotNull final DataContext dataContext) { final String serializedComponents = getSerializedComponents(); if (serializedComponents == null) { return; diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/componentTree/ComponentTree.java b/plugins/ui-designer/src/com/intellij/uiDesigner/componentTree/ComponentTree.java index 97cd0a0a1ccb..341614d59ad6 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/componentTree/ComponentTree.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/componentTree/ComponentTree.java @@ -591,7 +591,7 @@ public final class ComponentTree extends Tree implements DataProvider { myEditor = editor; } - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { if (myEditor != null) { LwInspectionSuppression[] suppressions = LW_INSPECTION_SUPPRESSION_ARRAY_DATA_KEY.getData(dataContext); if (suppressions != null) { @@ -610,7 +610,7 @@ public final class ComponentTree extends Tree implements DataProvider { } } - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { if (myEditor != null) { LwInspectionSuppression[] suppressions = LW_INSPECTION_SUPPRESSION_ARRAY_DATA_KEY.getData(dataContext); if (suppressions != null) { diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/designSurface/GridCaptionPanel.java b/plugins/ui-designer/src/com/intellij/uiDesigner/designSurface/GridCaptionPanel.java index 538d7c31f37d..31969c872d2e 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/designSurface/GridCaptionPanel.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/designSurface/GridCaptionPanel.java @@ -33,6 +33,7 @@ import com.intellij.uiDesigner.radComponents.RadContainer; import com.intellij.uiDesigner.radComponents.RadRootContainer; import com.intellij.util.Alarm; import com.intellij.util.ArrayUtil; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -458,14 +459,14 @@ public class GridCaptionPanel extends JPanel implements ComponentSelectionListen } private class MyDeleteProvider implements DeleteProvider { - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { int[] selection = getSelectedCells(null); if (selection.length > 0) { FormEditingUtil.deleteRowOrColumn(myEditor, mySelectedContainer, selection, myIsRow); } } - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { if (mySelectedContainer == null || mySelectionModel.isSelectionEmpty()) { return false; } diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/designSurface/GuiEditor.java b/plugins/ui-designer/src/com/intellij/uiDesigner/designSurface/GuiEditor.java index cdbeeedd4d67..a25a990f7ad8 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/designSurface/GuiEditor.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/designSurface/GuiEditor.java @@ -1037,7 +1037,7 @@ public final class GuiEditor extends JPanel implements DataProvider { * Allows "DEL" button to work through the standard mechanism */ private final class MyDeleteProvider implements DeleteProvider { - public void deleteElement(final DataContext dataContext) { + public void deleteElement(@NotNull final DataContext dataContext) { if (!GuiEditor.this.ensureEditable()) { return; } @@ -1048,7 +1048,7 @@ public final class GuiEditor extends JPanel implements DataProvider { }, UIDesignerBundle.message("command.delete.selection"), null); } - public boolean canDeleteElement(final DataContext dataContext) { + public boolean canDeleteElement(@NotNull final DataContext dataContext) { final UIDesignerToolWindowManager manager = UIDesignerToolWindowManager.getInstance(getProject()); return !manager.getPropertyInspector().isEditing() && diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/projectView/FormMergerTreeStructureProvider.java b/plugins/ui-designer/src/com/intellij/uiDesigner/projectView/FormMergerTreeStructureProvider.java index 9c04957bbdb9..e0bc8b25ba49 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/projectView/FormMergerTreeStructureProvider.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/projectView/FormMergerTreeStructureProvider.java @@ -31,6 +31,7 @@ import com.intellij.psi.*; import com.intellij.psi.util.PsiUtilBase; import com.intellij.uiDesigner.binding.FormClassIndex; import com.intellij.util.containers.ContainerUtil; +import org.jetbrains.annotations.NotNull; import java.util.*; @@ -150,12 +151,12 @@ public class FormMergerTreeStructureProvider implements TreeStructureProvider { myElements = collectFormPsiElements(selected); } - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { Project project = PlatformDataKeys.PROJECT.getData(dataContext); DeleteHandler.deletePsiElement(myElements, project); } - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { return DeleteHandler.shouldEnableDeleteAction(myElements); } diff --git a/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/actions/CommonEditActionsProvider.java b/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/actions/CommonEditActionsProvider.java index 8f1262547bf1..b0d8928027d1 100644 --- a/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/actions/CommonEditActionsProvider.java +++ b/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/actions/CommonEditActionsProvider.java @@ -34,6 +34,7 @@ import com.intellij.openapi.ide.CopyPasteManager; import com.intellij.util.ThrowableRunnable; import org.jdom.Element; import org.jdom.output.XMLOutputter; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.awt.datatransfer.DataFlavor; @@ -58,7 +59,7 @@ public class CommonEditActionsProvider implements DeleteProvider, CopyProvider, ////////////////////////////////////////////////////////////////////////////////////////// @Override - public boolean canDeleteElement(DataContext dataContext) { + public boolean canDeleteElement(@NotNull DataContext dataContext) { // TODO: InplaceEditing List selection = myDesigner.getActionsArea().getSelection(); if (selection.isEmpty()) { @@ -73,7 +74,7 @@ public class CommonEditActionsProvider implements DeleteProvider, CopyProvider, } @Override - public void deleteElement(DataContext dataContext) { + public void deleteElement(@NotNull DataContext dataContext) { CommandProcessor.getInstance().executeCommand(myDesigner.getProject(), new Runnable() { public void run() { myDesigner.getToolProvider().execute(new ThrowableRunnable() { @@ -125,18 +126,18 @@ public class CommonEditActionsProvider implements DeleteProvider, CopyProvider, ////////////////////////////////////////////////////////////////////////////////////////// @Override - public boolean isCopyVisible(DataContext dataContext) { + public boolean isCopyVisible(@NotNull DataContext dataContext) { return true; } @Override - public boolean isCopyEnabled(DataContext dataContext) { + public boolean isCopyEnabled(@NotNull DataContext dataContext) { // TODO: InplaceEditing return !myDesigner.getActionsArea().getSelection().isEmpty(); } @Override - public void performCopy(DataContext dataContext) { + public void performCopy(@NotNull DataContext dataContext) { doCopy(); } @@ -164,12 +165,12 @@ public class CommonEditActionsProvider implements DeleteProvider, CopyProvider, ////////////////////////////////////////////////////////////////////////////////////////// @Override - public boolean isPastePossible(DataContext dataContext) { + public boolean isPastePossible(@NotNull DataContext dataContext) { return isPasteEnabled(dataContext); } @Override - public boolean isPasteEnabled(DataContext dataContext) { + public boolean isPasteEnabled(@NotNull DataContext dataContext) { // TODO: InplaceEditing return getSerializedComponentData() != null; } @@ -203,7 +204,7 @@ public class CommonEditActionsProvider implements DeleteProvider, CopyProvider, } @Override - public void performPaste(DataContext dataContext) { + public void performPaste(@NotNull DataContext dataContext) { ComponentPasteFactory factory = myDesigner.createPasteFactory(getSerializedComponentData()); if (factory != null) { myDesigner.getToolProvider().setActiveTool(new PasteTool(true, factory)); @@ -217,17 +218,17 @@ public class CommonEditActionsProvider implements DeleteProvider, CopyProvider, ////////////////////////////////////////////////////////////////////////////////////////// @Override - public boolean isCutVisible(DataContext dataContext) { + public boolean isCutVisible(@NotNull DataContext dataContext) { return true; } @Override - public boolean isCutEnabled(DataContext dataContext) { + public boolean isCutEnabled(@NotNull DataContext dataContext) { return isCopyEnabled(dataContext) && canDeleteElement(dataContext); } @Override - public void performCut(DataContext dataContext) { + public void performCut(@NotNull DataContext dataContext) { if (doCopy()) { deleteElement(dataContext); }