debugger: scroll for images popup

utility method for UI debugging
This commit is contained in:
Vassiliy.Kudryashov
2014-12-06 15:26:04 +03:00
parent 2dece3cb4b
commit 8dc715465d
2 changed files with 11 additions and 1 deletions
@@ -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")));
}
};
}
@@ -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;
}
}