From 8dc715465d9b31ae7912b8df8b4c073c93b08d0e Mon Sep 17 00:00:00 2001 From: "Vassiliy.Kudryashov" Date: Fri, 5 Dec 2014 16:31:40 +0300 Subject: [PATCH] debugger: scroll for images popup utility method for UI debugging --- .../intellij/debugger/settings/ImageObjectRenderer.java | 3 ++- platform/util/src/com/intellij/util/ui/UIUtil.java | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/settings/ImageObjectRenderer.java b/java/debugger/impl/src/com/intellij/debugger/settings/ImageObjectRenderer.java index fa332a347794..bb43a98f8e79 100644 --- a/java/debugger/impl/src/com/intellij/debugger/settings/ImageObjectRenderer.java +++ b/java/debugger/impl/src/com/intellij/debugger/settings/ImageObjectRenderer.java @@ -26,6 +26,7 @@ import com.intellij.debugger.ui.tree.render.CompoundReferenceRenderer; import com.intellij.debugger.ui.tree.render.DescriptorLabelListener; import com.intellij.rt.debugger.ImageSerializer; import com.intellij.ui.components.JBLabel; +import com.intellij.ui.components.JBScrollPane; import com.intellij.xdebugger.frame.XFullValueEvaluator; import com.sun.jdi.*; import org.jetbrains.annotations.NotNull; @@ -59,7 +60,7 @@ class ImageObjectRenderer extends CompoundReferenceRenderer implements FullValue return new CustomPopupFullValueEvaluator(" (Show image)", evaluationContext) { @Override protected JComponent createComponent() { - return new JBLabel(getIcon(myEvaluationContext, valueDescriptor.getValue(), "imageToBytes")); + return new JBScrollPane(new JBLabel(getIcon(myEvaluationContext, valueDescriptor.getValue(), "imageToBytes"))); } }; } diff --git a/platform/util/src/com/intellij/util/ui/UIUtil.java b/platform/util/src/com/intellij/util/ui/UIUtil.java index b971116fa1bf..a7ce99ab1c5f 100644 --- a/platform/util/src/com/intellij/util/ui/UIUtil.java +++ b/platform/util/src/com/intellij/util/ui/UIUtil.java @@ -3236,4 +3236,13 @@ public class UIUtil { public static Window getWindow(Component component) { return component instanceof Window ? (Window)component : SwingUtilities.getWindowAncestor(component); } + + public static Image getDebugImage(Component component) { + BufferedImage image = createImage(component.getWidth(), component.getHeight(), BufferedImage.TYPE_INT_ARGB); + Graphics2D graphics = image.createGraphics(); + graphics.setColor(Color.RED); + graphics.fillRect(0, 0, component.getWidth() + 1, component.getHeight() + 1); + component.paint(graphics); + return image; + } }