From 0e35f38a552ada0058dbb261cf7f075fcd5aeab2 Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Thu, 20 Oct 2016 20:00:44 +0300 Subject: [PATCH] method breakpoint emulation - added checkbox for switching --- .../ui/breakpoints/JavaMethodBreakpointType.java | 9 +++++++-- .../debugger/ui/breakpoints/MethodBreakpoint.java | 6 +++++- .../MethodBreakpointPropertiesPanel.java | 15 ++++++++++++++- .../JavaMethodBreakpointProperties.java | 4 +++- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaMethodBreakpointType.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaMethodBreakpointType.java index b8b56e9b57b3..8f0631924e3e 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaMethodBreakpointType.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaMethodBreakpointType.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2016 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. @@ -19,6 +19,7 @@ import com.intellij.debugger.DebuggerBundle; import com.intellij.debugger.HelpID; import com.intellij.icons.AllIcons; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.StringBuilderSpinAllocator; import com.intellij.xdebugger.breakpoints.XBreakpoint; @@ -120,7 +121,11 @@ public class JavaMethodBreakpointType extends JavaLineBreakpointTypeBase> { + private JCheckBox myEmulatedCheckBox; private JCheckBox myWatchEntryCheckBox; private JCheckBox myWatchExitCheckBox; @@ -44,6 +47,7 @@ public class MethodBreakpointPropertiesPanel extends XBreakpointCustomProperties public JComponent getComponent() { JPanel _panel, _panel0; + myEmulatedCheckBox = new JCheckBox("Emulated"); myWatchEntryCheckBox = new JCheckBox(DebuggerBundle.message("label.method.breakpoint.properties.panel.method.entry")); myWatchExitCheckBox = new JCheckBox(DebuggerBundle.message("label.method.breakpoint.properties.panel.method.exit")); DialogUtil.registerMnemonic(myWatchEntryCheckBox); @@ -51,6 +55,9 @@ public class MethodBreakpointPropertiesPanel extends XBreakpointCustomProperties Box watchBox = Box.createVerticalBox(); + _panel = JBUI.Panels.simplePanel(); + _panel.add(myEmulatedCheckBox, BorderLayout.NORTH); + watchBox.add(_panel); _panel = new JPanel(new BorderLayout()); _panel.add(myWatchEntryCheckBox, BorderLayout.NORTH); watchBox.add(_panel); @@ -91,13 +98,19 @@ public class MethodBreakpointPropertiesPanel extends XBreakpointCustomProperties @Override public void loadFrom(@NotNull XBreakpoint breakpoint) { + myEmulatedCheckBox.setVisible( + Registry.is("debugger.emulate.method.breakpoints") && breakpoint.getType() instanceof JavaMethodBreakpointType); + myEmulatedCheckBox.setSelected(breakpoint.getProperties().EMULATED); + myWatchEntryCheckBox.setSelected(breakpoint.getProperties().WATCH_ENTRY); myWatchExitCheckBox.setSelected(breakpoint.getProperties().WATCH_EXIT); } @Override public void saveTo(@NotNull XBreakpoint breakpoint) { - boolean changed = breakpoint.getProperties().WATCH_ENTRY != myWatchEntryCheckBox.isSelected(); + boolean changed = breakpoint.getProperties().EMULATED != myEmulatedCheckBox.isSelected(); + breakpoint.getProperties().EMULATED = myEmulatedCheckBox.isSelected(); + changed = breakpoint.getProperties().WATCH_ENTRY != myWatchEntryCheckBox.isSelected() || changed; breakpoint.getProperties().WATCH_ENTRY = myWatchEntryCheckBox.isSelected(); changed = breakpoint.getProperties().WATCH_EXIT != myWatchExitCheckBox.isSelected() || changed; breakpoint.getProperties().WATCH_EXIT = myWatchExitCheckBox.isSelected(); diff --git a/java/debugger/impl/src/org/jetbrains/java/debugger/breakpoints/properties/JavaMethodBreakpointProperties.java b/java/debugger/impl/src/org/jetbrains/java/debugger/breakpoints/properties/JavaMethodBreakpointProperties.java index 9392b565645b..16bb789d0b60 100644 --- a/java/debugger/impl/src/org/jetbrains/java/debugger/breakpoints/properties/JavaMethodBreakpointProperties.java +++ b/java/debugger/impl/src/org/jetbrains/java/debugger/breakpoints/properties/JavaMethodBreakpointProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 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. @@ -28,6 +28,7 @@ public class JavaMethodBreakpointProperties extends JavaBreakpointProperties