diff --git a/java/debugger/impl/src/com/intellij/debugger/settings/CustomPopupFullValueEvaluator.java b/java/debugger/impl/src/com/intellij/debugger/settings/CustomPopupFullValueEvaluator.java index 084efd170c19..b300f3c86bfb 100644 --- a/java/debugger/impl/src/com/intellij/debugger/settings/CustomPopupFullValueEvaluator.java +++ b/java/debugger/impl/src/com/intellij/debugger/settings/CustomPopupFullValueEvaluator.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,18 +29,20 @@ import javax.swing.*; import java.awt.*; /** - * Created by Egor on 04.10.2014. + * @author egor */ -public abstract class CustomPopupFullValueEvaluator extends XFullValueEvaluator { +public abstract class CustomPopupFullValueEvaluator extends XFullValueEvaluator { protected final EvaluationContextImpl myEvaluationContext; - public CustomPopupFullValueEvaluator(@NotNull String linkText, EvaluationContextImpl evaluationContext) { + public CustomPopupFullValueEvaluator(@NotNull String linkText, @NotNull EvaluationContextImpl evaluationContext) { super(linkText); myEvaluationContext = evaluationContext; setShowValuePopup(false); } - protected abstract JComponent createComponent(); + protected abstract T getData(); + + protected abstract JComponent createComponent(T data); @Override public void startEvaluation(@NotNull final XFullValueEvaluationCallback callback) { @@ -52,10 +54,11 @@ public abstract class CustomPopupFullValueEvaluator extends XFullValueEvaluator @Override public void contextAction() throws Exception { - final JComponent comp = createComponent(); + final T data = getData(); DebuggerUIUtil.invokeLater(new Runnable() { @Override public void run() { + final JComponent comp = createComponent(data); Project project = myEvaluationContext.getProject(); JBPopup popup = DebuggerUIUtil.createValuePopup(project, comp, null); JFrame frame = WindowManager.getInstance().getFrame(project); @@ -63,7 +66,7 @@ public abstract class CustomPopupFullValueEvaluator extends XFullValueEvaluator Dimension size = new Dimension(frameSize.width / 2, frameSize.height / 2); popup.setSize(size); callback.evaluated(""); - popup.show(new RelativePoint(frame, new Point((int)size.getWidth() / 2, (int)size.getHeight() / 2))); + popup.show(new RelativePoint(frame, new Point(size.width / 2, size.height / 2))); } }); } diff --git a/java/debugger/impl/src/com/intellij/debugger/settings/GraphicsObjectRenderer.java b/java/debugger/impl/src/com/intellij/debugger/settings/GraphicsObjectRenderer.java index d770da07ea1b..614430311377 100644 --- a/java/debugger/impl/src/com/intellij/debugger/settings/GraphicsObjectRenderer.java +++ b/java/debugger/impl/src/com/intellij/debugger/settings/GraphicsObjectRenderer.java @@ -51,11 +51,10 @@ public class GraphicsObjectRenderer extends ToStringBasedRenderer implements Ful if (!(type instanceof ReferenceType) || !DebuggerUtils.instanceOf(type, "java.awt.Image")) { return null; } - return new CustomPopupFullValueEvaluator(DebuggerBundle.message("message.node.show.image"), evaluationContext) { + return new ImageObjectRenderer.IconPopupEvaluator(DebuggerBundle.message("message.node.show.image"), evaluationContext) { @Override - protected JComponent createComponent() { - return ImageObjectRenderer.createIconViewer(ImageObjectRenderer.getIcon(myEvaluationContext, bufImgValue, - "imageToBytes")); + protected Icon getData() { + return ImageObjectRenderer.getIcon(myEvaluationContext, bufImgValue, "imageToBytes"); } }; } catch (Exception ignored) {} diff --git a/java/debugger/impl/src/com/intellij/debugger/settings/IconObjectRenderer.java b/java/debugger/impl/src/com/intellij/debugger/settings/IconObjectRenderer.java index 21c1e187ae4d..c6a8d116ed68 100644 --- a/java/debugger/impl/src/com/intellij/debugger/settings/IconObjectRenderer.java +++ b/java/debugger/impl/src/com/intellij/debugger/settings/IconObjectRenderer.java @@ -49,10 +49,10 @@ class IconObjectRenderer extends ToStringBasedRenderer implements FullValueEvalu @Nullable @Override public XFullValueEvaluator getFullValueEvaluator(final EvaluationContextImpl evaluationContext, final ValueDescriptorImpl valueDescriptor) { - return new CustomPopupFullValueEvaluator(DebuggerBundle.message("message.node.show.icon"), evaluationContext) { + return new ImageObjectRenderer.IconPopupEvaluator(DebuggerBundle.message("message.node.show.icon"), evaluationContext) { @Override - protected JComponent createComponent() { - return ImageObjectRenderer.createIconViewer(ImageObjectRenderer.getIcon(myEvaluationContext, valueDescriptor.getValue(), "iconToBytes")); + protected Icon getData() { + return ImageObjectRenderer.getIcon(myEvaluationContext, valueDescriptor.getValue(), "iconToBytes"); } }; } 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 87990fd4ed3e..926543fe5b10 100644 --- a/java/debugger/impl/src/com/intellij/debugger/settings/ImageObjectRenderer.java +++ b/java/debugger/impl/src/com/intellij/debugger/settings/ImageObjectRenderer.java @@ -27,6 +27,7 @@ import com.intellij.rt.debugger.ImageSerializer; import com.intellij.xdebugger.frame.XFullValueEvaluator; import com.sun.jdi.*; import org.intellij.images.editor.impl.ImageEditorManagerImpl; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -50,10 +51,10 @@ class ImageObjectRenderer extends ToStringBasedRenderer implements FullValueEval @Nullable @Override public XFullValueEvaluator getFullValueEvaluator(final EvaluationContextImpl evaluationContext, final ValueDescriptorImpl valueDescriptor) { - return new CustomPopupFullValueEvaluator(DebuggerBundle.message("message.node.show.image"), evaluationContext) { + return new IconPopupEvaluator(DebuggerBundle.message("message.node.show.image"), evaluationContext) { @Override - protected JComponent createComponent() { - return createIconViewer(getIcon(myEvaluationContext, valueDescriptor.getValue(), "imageToBytes")); + protected Icon getData() { + return getIcon(myEvaluationContext, valueDescriptor.getValue(), "imageToBytes"); } }; } @@ -118,4 +119,15 @@ class ImageObjectRenderer extends ToStringBasedRenderer implements FullValueEval } return null; } + + static abstract class IconPopupEvaluator extends CustomPopupFullValueEvaluator { + public IconPopupEvaluator(@NotNull String linkText, @NotNull EvaluationContextImpl evaluationContext) { + super(linkText, evaluationContext); + } + + @Override + protected JComponent createComponent(Icon data) { + return createIconViewer(data); + } + } }