From c2ae14646adcf288b6089f4dda3d920f5f53a861 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Mon, 22 Dec 2014 16:08:17 +0300 Subject: [PATCH] diff: move clipboard-related functions to util --- .../util/diff/impl/DiffContentFactory.java | 16 ++++++++++++++++ .../util/diff/impl/DiffRequestFactory.java | 13 +++++++++++++ 2 files changed, 29 insertions(+) diff --git a/platform/diff-impl/src/com/intellij/openapi/util/diff/impl/DiffContentFactory.java b/platform/diff-impl/src/com/intellij/openapi/util/diff/impl/DiffContentFactory.java index f9e34aa1d4fd..3d11e50b7214 100644 --- a/platform/diff-impl/src/com/intellij/openapi/util/diff/impl/DiffContentFactory.java +++ b/platform/diff-impl/src/com/intellij/openapi/util/diff/impl/DiffContentFactory.java @@ -5,12 +5,15 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.diff.DiffContentUtil; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.EditorFactory; +import com.intellij.openapi.editor.impl.DocumentImpl; import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileTypes.FileType; +import com.intellij.openapi.ide.CopyPasteManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.diff.contents.*; import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.testFramework.BinaryLightVirtualFile; @@ -18,6 +21,7 @@ import com.intellij.util.LineSeparator; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.awt.datatransfer.DataFlavor; import java.io.File; import java.io.IOException; @@ -66,6 +70,18 @@ public class DiffContentFactory { return new FileDocumentContentImpl(project, document, file); } + @NotNull + public static DiffContent createClipboardContent() { + String text = CopyPasteManager.getInstance().getContents(DataFlavor.stringFlavor); + return new DocumentContentImpl(new DocumentImpl(StringUtil.notNullize(text))); + } + + @NotNull + private static DocumentContent createClipboardContent(@NotNull DocumentContent mainContent) { + String text = CopyPasteManager.getInstance().getContents(DataFlavor.stringFlavor); + return new DocumentContentWrapper(mainContent, StringUtil.notNullize(text)); + } + @NotNull public static BinaryFileContentImpl createBinary(@Nullable Project project, @NotNull String name, diff --git a/platform/diff-impl/src/com/intellij/openapi/util/diff/impl/DiffRequestFactory.java b/platform/diff-impl/src/com/intellij/openapi/util/diff/impl/DiffRequestFactory.java index 9c0a4b26d9b6..092262f39896 100644 --- a/platform/diff-impl/src/com/intellij/openapi/util/diff/impl/DiffRequestFactory.java +++ b/platform/diff-impl/src/com/intellij/openapi/util/diff/impl/DiffRequestFactory.java @@ -34,4 +34,17 @@ public class DiffRequestFactory { } return name; } + + @NotNull + public static DiffRequest createClipboardVsValue(@NotNull String value) { + DiffContent content1 = DiffContentFactory.createClipboardContent(); + DiffContent content2 = DiffContentFactory.create(value, null); + + String title1 = DiffBundle.message("diff.content.clipboard.content.title"); + String title2 = DiffBundle.message("diff.content.selected.value"); + + String title = DiffBundle.message("diff.clipboard.vs.value.dialog.title"); + + return new SimpleDiffRequest(title, content1, content2, title1, title2); + } }