diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java index 56e8cd383ee6..da86bac6e6a2 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java @@ -1477,7 +1477,6 @@ public abstract class DebugProcessImpl implements DebugProcess { applyThreadFilter(getContextThread()); final SuspendContextImpl context = getSuspendContext(); myRunToCursorBreakpoint.setSuspendPolicy(context.getSuspendPolicy() == EventRequest.SUSPEND_EVENT_THREAD? DebuggerSettings.SUSPEND_THREAD : DebuggerSettings.SUSPEND_ALL); - myRunToCursorBreakpoint.setLogEnabled(false); myRunToCursorBreakpoint.createRequest(context.getDebugProcess()); DebugProcessImpl.this.myRunToCursorBreakpoint = myRunToCursorBreakpoint; super.contextAction(); diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java index 8ea3fea6923d..8692fdcbfe5b 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/Breakpoint.java @@ -233,7 +233,7 @@ public abstract class Breakpoint

implements private void runAction(final EvaluationContextImpl context, LocatableEvent event) { final DebugProcessImpl debugProcess = context.getDebugProcess(); - if (myXBreakpoint.isLogMessage() || myXBreakpoint.getLogExpression() != null) { + if (isLogEnabled() || isLogExpressionEnabled()) { final StringBuilder buf = StringBuilderSpinAllocator.alloc(); try { if (myXBreakpoint.isLogMessage()) { @@ -449,7 +449,7 @@ public abstract class Breakpoint

implements myXBreakpoint.setEnabled(enabled); } - public boolean isLogEnabled() { + protected boolean isLogEnabled() { return myXBreakpoint.isLogMessage(); } @@ -457,11 +457,11 @@ public abstract class Breakpoint

implements myXBreakpoint.setLogMessage(logEnabled); } - public boolean isLogExpressionEnabled() { + protected boolean isLogExpressionEnabled() { return myXBreakpoint.getLogExpression() != null; } - public void setLogExpressionEnabled(boolean LOG_EXPRESSION_ENABLED) { + protected void setLogExpressionEnabled(boolean LOG_EXPRESSION_ENABLED) { } @Override @@ -504,7 +504,7 @@ public abstract class Breakpoint

implements return myXBreakpoint.getProperties().getClassExclusionFilters(); } - public void setClassExclusionFilters(ClassFilter[] filters) { + protected void setClassExclusionFilters(ClassFilter[] filters) { myXBreakpoint.getProperties().setClassExclusionFilters(filters); } @@ -526,7 +526,7 @@ public abstract class Breakpoint

implements myXBreakpoint.getProperties().setInstanceFilters(filters); } - public static String getSuspendPolicy(XBreakpoint breakpoint) { + private static String getSuspendPolicy(XBreakpoint breakpoint) { switch (breakpoint.getSuspendPolicy()) { case ALL: return DebuggerSettings.SUSPEND_ALL; @@ -540,7 +540,7 @@ public abstract class Breakpoint

implements } } - public static SuspendPolicy transformSuspendPolicy(String policy) { + private static SuspendPolicy transformSuspendPolicy(String policy) { if (DebuggerSettings.SUSPEND_ALL.equals(policy)) { return SuspendPolicy.ALL; } else if (DebuggerSettings.SUSPEND_THREAD.equals(policy)) { @@ -552,7 +552,7 @@ public abstract class Breakpoint

implements } } - public boolean isSuspend() { + protected boolean isSuspend() { return myXBreakpoint.getSuspendPolicy() != SuspendPolicy.NONE; } @@ -565,11 +565,11 @@ public abstract class Breakpoint

implements myXBreakpoint.setSuspendPolicy(transformSuspendPolicy(policy)); } - public void setLogMessage(TextWithImports logMessage) { + protected void setLogMessage(TextWithImports logMessage) { myXBreakpoint.setLogExpression(logMessage.getText()); } - public boolean isConditionEnabled() { + protected boolean isConditionEnabled() { return myXBreakpoint.getCondition() != null && !myXBreakpoint.getCondition().isEmpty(); } @@ -577,7 +577,7 @@ public abstract class Breakpoint

implements myXBreakpoint.setCondition(condition); } - public void addInstanceFilter(long l) { + protected void addInstanceFilter(long l) { myXBreakpoint.getProperties().addInstanceFilter(l); } } diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java index 8e9282747729..929c3133afde 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointManager.java @@ -30,7 +30,9 @@ import com.intellij.debugger.impl.DebuggerContextListener; import com.intellij.debugger.impl.DebuggerManagerImpl; import com.intellij.debugger.impl.DebuggerSession; import com.intellij.debugger.ui.JavaDebuggerSupport; +import com.intellij.openapi.application.AccessToken; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; @@ -43,22 +45,20 @@ import com.intellij.openapi.ui.MessageType; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.TextRange; +import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiField; import com.intellij.psi.PsiFile; import com.intellij.util.Alarm; import com.intellij.util.EventDispatcher; import com.intellij.xdebugger.XDebuggerManager; -import com.intellij.xdebugger.breakpoints.XBreakpoint; -import com.intellij.xdebugger.breakpoints.XBreakpointListener; -import com.intellij.xdebugger.breakpoints.XBreakpointManager; +import com.intellij.xdebugger.XDebuggerUtil; +import com.intellij.xdebugger.breakpoints.*; import com.intellij.xdebugger.impl.DebuggerSupport; import com.intellij.xdebugger.impl.XDebugSessionImpl; import com.intellij.xdebugger.impl.breakpoints.XBreakpointManagerImpl; import com.intellij.xdebugger.impl.breakpoints.XDependentBreakpointManager; -import com.sun.jdi.Field; import com.sun.jdi.InternalException; -import com.sun.jdi.ObjectReference; import com.sun.jdi.ThreadReference; import com.sun.jdi.request.*; import gnu.trove.TIntHashSet; @@ -66,6 +66,7 @@ import org.jdom.Element; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.java.debugger.breakpoints.properties.JavaExceptionBreakpointProperties; import javax.swing.*; import java.util.*; @@ -81,7 +82,6 @@ public class BreakpointManager { @NonNls private static final String RULES_GROUP_NAME = "breakpoint_rules"; private final Project myProject; - private XBreakpointManager myXBreakpointManager; private final Map myBreakpoints = new HashMap(); // breakpoints storage, access should be synchronized @Nullable private List myBreakpointsListForIteration = null; // another list for breakpoints iteration, unsynchronized access ok private final Map myUIProperties = new LinkedHashMap(); @@ -141,8 +141,8 @@ public class BreakpointManager { } public void init() { - myXBreakpointManager = XDebuggerManager.getInstance(myProject).getBreakpointManager(); - myXBreakpointManager.addBreakpointListener(new XBreakpointListener() { + XBreakpointManager manager = XDebuggerManager.getInstance(myProject).getBreakpointManager(); + manager.addBreakpointListener(new XBreakpointListener() { @Override public void breakpointAdded(@NotNull XBreakpoint xBreakpoint) { if (isJavaType(xBreakpoint)) { @@ -169,6 +169,10 @@ public class BreakpointManager { }); } + private XBreakpointManager getXBreakpointManager() { + return XDebuggerManager.getInstance(myProject).getBreakpointManager(); + } + public void editBreakpoint(final Breakpoint breakpoint, final Editor editor) { DebuggerInvocationUtil.swingInvokeLater(myProject, new Runnable() { @Override @@ -202,7 +206,7 @@ public class BreakpointManager { @Nullable public RunToCursorBreakpoint addRunToCursorBreakpoint(Document document, int lineIndex, final boolean ignoreBreakpoints) { - return RunToCursorBreakpoint.create(myProject, document, lineIndex, ignoreBreakpoints, null); + return RunToCursorBreakpoint.create(myProject, document, lineIndex, ignoreBreakpoints); } @Nullable @@ -216,8 +220,8 @@ public class BreakpointManager { if (!LineBreakpoint.canAddLineBreakpoint(myProject, document, lineIndex)) { return null; } - - LineBreakpoint breakpoint = LineBreakpoint.create(myProject, document, lineIndex, null); + XLineBreakpoint xLineBreakpoint = addXLineBreakpoint(JavaLineBreakpointType.class, document, lineIndex); + LineBreakpoint breakpoint = LineBreakpoint.create(myProject, xLineBreakpoint); if (breakpoint == null) { return null; } @@ -226,15 +230,15 @@ public class BreakpointManager { return breakpoint; } - @Nullable - public FieldBreakpoint addFieldBreakpoint(Field field, ObjectReference object) { - ApplicationManager.getApplication().assertIsDispatchThread(); - final FieldBreakpoint fieldBreakpoint = FieldBreakpoint.create(myProject, field, object, null); - if (fieldBreakpoint != null) { - addBreakpoint(fieldBreakpoint); - } - return fieldBreakpoint; - } + //@Nullable + //public FieldBreakpoint addFieldBreakpoint(Field field, ObjectReference object) { + // ApplicationManager.getApplication().assertIsDispatchThread(); + // final FieldBreakpoint fieldBreakpoint = FieldBreakpoint.create(myProject, field, object, null); + // if (fieldBreakpoint != null) { + // addBreakpoint(fieldBreakpoint); + // } + // return fieldBreakpoint; + //} @Nullable public FieldBreakpoint addFieldBreakpoint(@NotNull Document document, int offset) { @@ -255,7 +259,8 @@ public class BreakpointManager { @Nullable public FieldBreakpoint addFieldBreakpoint(Document document, int lineIndex, String fieldName) { ApplicationManager.getApplication().assertIsDispatchThread(); - FieldBreakpoint fieldBreakpoint = FieldBreakpoint.create(myProject, document, lineIndex, fieldName, null); + XLineBreakpoint xBreakpoint = addXLineBreakpoint(JavaFieldBreakpointType.class, document, lineIndex); + FieldBreakpoint fieldBreakpoint = FieldBreakpoint.create(myProject, fieldName, xBreakpoint); if (fieldBreakpoint != null) { addBreakpoint(fieldBreakpoint); } @@ -265,19 +270,28 @@ public class BreakpointManager { @NotNull public ExceptionBreakpoint addExceptionBreakpoint(@NotNull String exceptionClassName, String packageName) { ApplicationManager.getApplication().assertIsDispatchThread(); - ExceptionBreakpoint breakpoint = new ExceptionBreakpoint(myProject, exceptionClassName, packageName, null); - addBreakpoint(breakpoint); - if (LOG.isDebugEnabled()) { - LOG.debug("ExceptionBreakpoint Added"); + JavaExceptionBreakpointType type = (JavaExceptionBreakpointType)XDebuggerUtil.getInstance().findBreakpointType(JavaExceptionBreakpointType.class); + AccessToken token = WriteAction.start(); + try { + XBreakpoint xBreakpoint = XDebuggerManager.getInstance(myProject).getBreakpointManager() + .addBreakpoint(type, new JavaExceptionBreakpointProperties(exceptionClassName, packageName)); + ExceptionBreakpoint breakpoint = new ExceptionBreakpoint(myProject, exceptionClassName, packageName, xBreakpoint); + addBreakpoint(breakpoint); + if (LOG.isDebugEnabled()) { + LOG.debug("ExceptionBreakpoint Added"); + } + return breakpoint; + } finally { + token.finish(); } - return breakpoint; } @Nullable public MethodBreakpoint addMethodBreakpoint(Document document, int lineIndex) { ApplicationManager.getApplication().assertIsDispatchThread(); - MethodBreakpoint breakpoint = MethodBreakpoint.create(myProject, document, lineIndex, null); + XLineBreakpoint xBreakpoint = addXLineBreakpoint(JavaMethodBreakpointType.class, document, lineIndex); + MethodBreakpoint breakpoint = MethodBreakpoint.create(myProject, xBreakpoint); if (breakpoint == null) { return null; } @@ -288,6 +302,19 @@ public class BreakpointManager { return breakpoint; } + private > XLineBreakpoint addXLineBreakpoint(Class> typeCls, Document document, int lineIndex) { + XBreakpointType type = XDebuggerUtil.getInstance().findBreakpointType(typeCls); + VirtualFile file = FileDocumentManager.getInstance().getFile(document); + AccessToken token = WriteAction.start(); + try { + return XDebuggerManager.getInstance(myProject).getBreakpointManager() + .addLineBreakpoint((XLineBreakpointType)type, file.getUrl(), lineIndex, + ((XLineBreakpointType)type).createBreakpointProperties(file, lineIndex)); + } finally { + token.finish(); + } + } + @Nullable public WildcardMethodBreakpoint addMethodBreakpoint(String classPattern, String methodName) { ApplicationManager.getApplication().assertIsDispatchThread(); @@ -489,8 +516,12 @@ public class BreakpointManager { if (breakpoint == null) { return; } - - myXBreakpointManager.removeBreakpoint(breakpoint.myXBreakpoint); + AccessToken token = WriteAction.start(); + try { + getXBreakpointManager().removeBreakpoint(breakpoint.myXBreakpoint); + } finally { + token.finish(); + } } private synchronized void onBreakpointRemoved(@Nullable final XBreakpoint xBreakpoint) { @@ -629,7 +660,7 @@ public class BreakpointManager { if (myBreakpointsListForIteration == null) { myBreakpointsListForIteration = new ArrayList(myBreakpoints.size()); - for (XBreakpoint xBreakpoint : myXBreakpointManager.getAllBreakpoints()) { + for (XBreakpoint xBreakpoint : getXBreakpointManager().getAllBreakpoints()) { if (isJavaType(xBreakpoint)) { Breakpoint breakpoint = myBreakpoints.get(xBreakpoint); if (breakpoint == null) { @@ -857,7 +888,7 @@ public class BreakpointManager { // copied from XDebugSessionImpl processDependencies public void processBreakpointHit(@NotNull final Breakpoint breakpoint) { - XDependentBreakpointManager dependentBreakpointManager = ((XBreakpointManagerImpl)myXBreakpointManager).getDependentBreakpointManager(); + XDependentBreakpointManager dependentBreakpointManager = ((XBreakpointManagerImpl)getXBreakpointManager()).getDependentBreakpointManager(); XBreakpoint xBreakpoint = findXBreakpoint(breakpoint); if (!dependentBreakpointManager.isMasterOrSlave(xBreakpoint)) { return; @@ -901,7 +932,7 @@ public class BreakpointManager { @Nullable public Breakpoint findMasterBreakpoint(@NotNull Breakpoint dependentBreakpoint) { - XDependentBreakpointManager dependentBreakpointManager = ((XBreakpointManagerImpl)myXBreakpointManager).getDependentBreakpointManager(); + XDependentBreakpointManager dependentBreakpointManager = ((XBreakpointManagerImpl)getXBreakpointManager()).getDependentBreakpointManager(); XBreakpoint xBreakpoint = findXBreakpoint(dependentBreakpoint); return myBreakpoints.get(dependentBreakpointManager.getMasterBreakpoint(xBreakpoint)); } diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPropertiesPanel.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPropertiesPanel.java index 38031d4735a6..ad9d5c93a47a 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPropertiesPanel.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPropertiesPanel.java @@ -462,126 +462,126 @@ public abstract class BreakpointPropertiesPanel { * Init UI components with the values from Breakpoint */ public void initFrom(Breakpoint breakpoint, boolean moreOptionsVisible1) { - myBreakpoint = breakpoint; - boolean moreOptionsVisible = moreOptionsVisible1; - boolean actionsPanelVisible = moreOptionsVisible1; - - initMasterBreakpointPanel(); - - if (breakpoint.getCountFilter() > 0) { - myPassCountField.setText(Integer.toString(breakpoint.getCountFilter())); - moreOptionsVisible = true; - } - else { - myPassCountField.setText(""); - } - - PsiElement context = breakpoint.getEvaluationElement(); - myPassCountCheckbox.setSelected(breakpoint.isCountFilterEnabled()); - - myConditionCheckbox.setSelected(breakpoint.isConditionEnabled()); - - myConditionCombo.setEnabled(breakpoint.isConditionEnabled()); - - myConditionCombo.setContext(context); - myConditionCombo.setText(breakpoint.getCondition() != null ? breakpoint.getCondition() : emptyText()); - - myCbSuspend.setSelected(breakpoint.isSuspend()); - myRbSuspendThread.setEnabled(myCbSuspend.isSelected()); - myRbSuspendAll.setEnabled(myCbSuspend.isSelected()); - - if(!breakpoint.isSuspend()) { - actionsPanelVisible = true; - } - if(DebuggerSettings.SUSPEND_THREAD.equals(breakpoint.getSuspendPolicy())){ - myRbSuspendThread.setSelected(true); - } - else { - myRbSuspendAll.setSelected(true); - } - - myCbSuspend.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent event) { - if (!myActionsPanel.isVisible()) { - if (!myCbSuspend.isSelected()) { - if (myDelegate != null) { - myDelegate.showActionsPanel(); - } - } - } - myRbSuspendThread.setEnabled(myCbSuspend.isSelected()); - myRbSuspendAll.setEnabled(myCbSuspend.isSelected()); - } - }); - myLogMessageCheckBox.setSelected(breakpoint.isLogEnabled()); - myTemporaryCheckBox.setSelected(breakpoint.isRemoveAfterHit()); - myEnabledCheckbox.setSelected(breakpoint.isEnabled()); - myEnabledCheckbox.setText(breakpoint.getShortName() + " enabled"); - - DebuggerManagerEx.getInstanceEx(myProject).getBreakpointManager().addBreakpointManagerListener(new BreakpointManagerListener() { - @Override - public void breakpointsChanged() { - myEnabledCheckbox.setSelected(myBreakpoint.isEnabled()); - } - }); - - myEnabledCheckbox.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent event) { - if (myBreakpoint.isEnabled() != myEnabledCheckbox.isSelected()) { - myBreakpoint.setEnabled(myEnabledCheckbox.isSelected()); - getBreakpointManager(myProject).fireBreakpointChanged(myBreakpoint); - myBreakpoint.updateUI(); - } - } - }); - myTemporaryCheckBox.setVisible(breakpoint instanceof LineBreakpoint); - myLogExpressionCheckBox.setSelected(breakpoint.isLogExpressionEnabled()); - if (breakpoint.isLogEnabled() || - breakpoint.isLogExpressionEnabled() || (breakpoint instanceof LineBreakpoint && breakpoint.isRemoveAfterHit())) { - actionsPanelVisible = true; - } - - myLogExpressionCombo.setContext(context); - - if (breakpoint.getLogMessage() != null) { - myLogExpressionCombo.setText(breakpoint.getLogMessage()); - } - else { - myLogExpressionCombo.setText(emptyText()); - } - - myLogExpressionCombo.setEnabled(breakpoint.isLogExpressionEnabled()); - if (breakpoint.isLogExpressionEnabled()) { - actionsPanelVisible = true; - } - - myInstanceFiltersCheckBox.setSelected(breakpoint.isInstanceFiltersEnabled()); - myInstanceFiltersField.setEnabled(breakpoint.isInstanceFiltersEnabled()); - myInstanceFiltersField.getTextField().setEditable(breakpoint.isInstanceFiltersEnabled()); - myInstanceFilters = breakpoint.getInstanceFilters(); - updateInstanceFilterEditor(true); - if (breakpoint.isInstanceFiltersEnabled()) { - moreOptionsVisible = true; - } - - myClassFiltersCheckBox.setSelected(breakpoint.isClassFiltersEnabled()); - myClassFiltersField.setEnabled(breakpoint.isClassFiltersEnabled()); - myClassFiltersField.getTextField().setEditable(breakpoint.isClassFiltersEnabled()); - myClassFilters = breakpoint.getClassFilters(); - myClassExclusionFilters = breakpoint.getClassExclusionFilters(); - updateClassFilterEditor(true); - if (breakpoint.isClassFiltersEnabled()) { - moreOptionsVisible = true; - } - - myBreakpointPsiClass = breakpoint.getPsiClass(); - - updateCheckboxes(); - - setActionsPanelVisible(actionsPanelVisible && !moreOptionsVisible1); - setMoreOptionsVisible(moreOptionsVisible); + //myBreakpoint = breakpoint; + //boolean moreOptionsVisible = moreOptionsVisible1; + //boolean actionsPanelVisible = moreOptionsVisible1; + // + //initMasterBreakpointPanel(); + // + //if (breakpoint.getCountFilter() > 0) { + // myPassCountField.setText(Integer.toString(breakpoint.getCountFilter())); + // moreOptionsVisible = true; + //} + //else { + // myPassCountField.setText(""); + //} + // + //PsiElement context = breakpoint.getEvaluationElement(); + //myPassCountCheckbox.setSelected(breakpoint.isCountFilterEnabled()); + // + //myConditionCheckbox.setSelected(breakpoint.isConditionEnabled()); + // + //myConditionCombo.setEnabled(breakpoint.isConditionEnabled()); + // + //myConditionCombo.setContext(context); + //myConditionCombo.setText(breakpoint.getCondition() != null ? breakpoint.getCondition() : emptyText()); + // + //myCbSuspend.setSelected(breakpoint.isSuspend()); + //myRbSuspendThread.setEnabled(myCbSuspend.isSelected()); + //myRbSuspendAll.setEnabled(myCbSuspend.isSelected()); + // + //if(!breakpoint.isSuspend()) { + // actionsPanelVisible = true; + //} + //if(DebuggerSettings.SUSPEND_THREAD.equals(breakpoint.getSuspendPolicy())){ + // myRbSuspendThread.setSelected(true); + //} + //else { + // myRbSuspendAll.setSelected(true); + //} + // + //myCbSuspend.addActionListener(new ActionListener() { + // @Override + // public void actionPerformed(ActionEvent event) { + // if (!myActionsPanel.isVisible()) { + // if (!myCbSuspend.isSelected()) { + // if (myDelegate != null) { + // myDelegate.showActionsPanel(); + // } + // } + // } + // myRbSuspendThread.setEnabled(myCbSuspend.isSelected()); + // myRbSuspendAll.setEnabled(myCbSuspend.isSelected()); + // } + //}); + //myLogMessageCheckBox.setSelected(breakpoint.isLogEnabled()); + //myTemporaryCheckBox.setSelected(breakpoint.isRemoveAfterHit()); + //myEnabledCheckbox.setSelected(breakpoint.isEnabled()); + //myEnabledCheckbox.setText(breakpoint.getShortName() + " enabled"); + // + //DebuggerManagerEx.getInstanceEx(myProject).getBreakpointManager().addBreakpointManagerListener(new BreakpointManagerListener() { + // @Override + // public void breakpointsChanged() { + // myEnabledCheckbox.setSelected(myBreakpoint.isEnabled()); + // } + //}); + // + //myEnabledCheckbox.addActionListener(new ActionListener() { + // @Override + // public void actionPerformed(ActionEvent event) { + // if (myBreakpoint.isEnabled() != myEnabledCheckbox.isSelected()) { + // myBreakpoint.setEnabled(myEnabledCheckbox.isSelected()); + // getBreakpointManager(myProject).fireBreakpointChanged(myBreakpoint); + // myBreakpoint.updateUI(); + // } + // } + //}); + //myTemporaryCheckBox.setVisible(breakpoint instanceof LineBreakpoint); + //myLogExpressionCheckBox.setSelected(breakpoint.isLogExpressionEnabled()); + //if (breakpoint.isLogEnabled() || + // breakpoint.isLogExpressionEnabled() || (breakpoint instanceof LineBreakpoint && breakpoint.isRemoveAfterHit())) { + // actionsPanelVisible = true; + //} + // + //myLogExpressionCombo.setContext(context); + // + //if (breakpoint.getLogMessage() != null) { + // myLogExpressionCombo.setText(breakpoint.getLogMessage()); + //} + //else { + // myLogExpressionCombo.setText(emptyText()); + //} + // + //myLogExpressionCombo.setEnabled(breakpoint.isLogExpressionEnabled()); + //if (breakpoint.isLogExpressionEnabled()) { + // actionsPanelVisible = true; + //} + // + //myInstanceFiltersCheckBox.setSelected(breakpoint.isInstanceFiltersEnabled()); + //myInstanceFiltersField.setEnabled(breakpoint.isInstanceFiltersEnabled()); + //myInstanceFiltersField.getTextField().setEditable(breakpoint.isInstanceFiltersEnabled()); + //myInstanceFilters = breakpoint.getInstanceFilters(); + //updateInstanceFilterEditor(true); + //if (breakpoint.isInstanceFiltersEnabled()) { + // moreOptionsVisible = true; + //} + // + //myClassFiltersCheckBox.setSelected(breakpoint.isClassFiltersEnabled()); + //myClassFiltersField.setEnabled(breakpoint.isClassFiltersEnabled()); + //myClassFiltersField.getTextField().setEditable(breakpoint.isClassFiltersEnabled()); + //myClassFilters = breakpoint.getClassFilters(); + //myClassExclusionFilters = breakpoint.getClassExclusionFilters(); + //updateClassFilterEditor(true); + //if (breakpoint.isClassFiltersEnabled()) { + // moreOptionsVisible = true; + //} + // + //myBreakpointPsiClass = breakpoint.getPsiClass(); + // + //updateCheckboxes(); + // + //setActionsPanelVisible(actionsPanelVisible && !moreOptionsVisible1); + //setMoreOptionsVisible(moreOptionsVisible); } private void initMasterBreakpointPanel() { @@ -636,41 +636,41 @@ public abstract class BreakpointPropertiesPanel { */ public void saveTo(Breakpoint breakpoint) { - saveMasterBreakpoint(); - try { - String text = myPassCountField.getText().trim(); - breakpoint.setCountFilter(!text.isEmpty() ? Integer.parseInt(text) : 0); - if (breakpoint.getCountFilter() < 0) { - breakpoint.setCountFilter(0); - } - } - catch (Exception ignored) { - } - - breakpoint.setCountFilterEnabled(breakpoint.getCountFilter() > 0 && myPassCountCheckbox.isSelected()); - breakpoint.setCondition(myConditionCombo.getText().getText()); - //breakpoint.setConditionEnabled(myConditionCheckbox.isSelected()); - breakpoint.setLogMessage(myLogExpressionCombo.getText()); - breakpoint.setLogExpressionEnabled(!breakpoint.getLogMessage().isEmpty() && myLogExpressionCheckBox.isSelected()); - breakpoint.setLogEnabled(myLogMessageCheckBox.isSelected()); - breakpoint.setEnabled(myEnabledCheckbox.isSelected()); - breakpoint.setRemoveAfterHit(myTemporaryCheckBox.isSelected()); - //breakpoint.setSuspend(myCbSuspend.isSelected()); - breakpoint.setSuspendPolicy(getSelectedSuspendPolicy()); - reloadInstanceFilters(); - reloadClassFilters(); - updateInstanceFilterEditor(true); - updateClassFilterEditor(true); - - breakpoint.setInstanceFiltersEnabled(myInstanceFiltersField.getText().length() > 0 && myInstanceFiltersCheckBox.isSelected()); - breakpoint.setClassFiltersEnabled(myClassFiltersField.getText().length() > 0 && myClassFiltersCheckBox.isSelected()); - breakpoint.setClassFilters(myClassFilters); - breakpoint.setClassExclusionFilters(myClassExclusionFilters); - breakpoint.setInstanceFilters(myInstanceFilters); - - myConditionCombo.addRecent(myConditionCombo.getText()); - myLogExpressionCombo.addRecent(myLogExpressionCombo.getText()); - breakpoint.updateUI(); + //saveMasterBreakpoint(); + //try { + // String text = myPassCountField.getText().trim(); + // breakpoint.setCountFilter(!text.isEmpty() ? Integer.parseInt(text) : 0); + // if (breakpoint.getCountFilter() < 0) { + // breakpoint.setCountFilter(0); + // } + //} + //catch (Exception ignored) { + //} + // + //breakpoint.setCountFilterEnabled(breakpoint.getCountFilter() > 0 && myPassCountCheckbox.isSelected()); + //breakpoint.setCondition(myConditionCombo.getText().getText()); + ////breakpoint.setConditionEnabled(myConditionCheckbox.isSelected()); + //breakpoint.setLogMessage(myLogExpressionCombo.getText()); + //breakpoint.setLogExpressionEnabled(!breakpoint.getLogMessage().isEmpty() && myLogExpressionCheckBox.isSelected()); + //breakpoint.setLogEnabled(myLogMessageCheckBox.isSelected()); + //breakpoint.setEnabled(myEnabledCheckbox.isSelected()); + //breakpoint.setRemoveAfterHit(myTemporaryCheckBox.isSelected()); + ////breakpoint.setSuspend(myCbSuspend.isSelected()); + //breakpoint.setSuspendPolicy(getSelectedSuspendPolicy()); + //reloadInstanceFilters(); + //reloadClassFilters(); + //updateInstanceFilterEditor(true); + //updateClassFilterEditor(true); + // + //breakpoint.setInstanceFiltersEnabled(myInstanceFiltersField.getText().length() > 0 && myInstanceFiltersCheckBox.isSelected()); + //breakpoint.setClassFiltersEnabled(myClassFiltersField.getText().length() > 0 && myClassFiltersCheckBox.isSelected()); + //breakpoint.setClassFilters(myClassFilters); + //breakpoint.setClassExclusionFilters(myClassExclusionFilters); + //breakpoint.setInstanceFilters(myInstanceFilters); + // + //myConditionCombo.addRecent(myConditionCombo.getText()); + //myLogExpressionCombo.addRecent(myLogExpressionCombo.getText()); + //breakpoint.updateUI(); } private static String concatWithEx(List s, String concator, int N, String NthConcator) { diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointWithHighlighter.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointWithHighlighter.java index 200e377b87f8..0c3178742a58 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointWithHighlighter.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointWithHighlighter.java @@ -34,14 +34,9 @@ import com.intellij.openapi.editor.impl.DocumentMarkupModel; import com.intellij.openapi.editor.markup.MarkupEditorFilterFactory; import com.intellij.openapi.editor.markup.RangeHighlighter; import com.intellij.openapi.editor.markup.TextAttributes; -import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Computable; -import com.intellij.openapi.util.InvalidDataException; import com.intellij.openapi.util.Key; -import com.intellij.openapi.util.WriteExternalException; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.openapi.vfs.VirtualFileManager; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiElement; @@ -58,7 +53,6 @@ import com.intellij.xdebugger.breakpoints.XLineBreakpoint; import com.intellij.xdebugger.ui.DebuggerColors; import com.intellij.xml.util.XmlStringUtil; import com.sun.jdi.ReferenceType; -import org.jdom.Element; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.java.debugger.breakpoints.properties.JavaBreakpointProperties; @@ -215,7 +209,7 @@ public abstract class BreakpointWithHighlighter

() { @Override public Boolean compute() { @@ -294,7 +288,7 @@ public abstract class BreakpointWithHighlighter

{ private static final Logger LOG = Logger.getInstance("#com.intellij.debugger.ui.breakpoints.FieldBreakpoint"); @@ -68,8 +64,8 @@ public class FieldBreakpoint extends BreakpointWithHighlighter xBreakpoint) { - return LineBreakpoint.create(project, document, xBreakpoint.getLine(), xBreakpoint); + return LineBreakpoint.create(project, xBreakpoint); } } diff --git a/java/debugger/impl/src/org/jetbrains/java/debugger/breakpoints/properties/JavaLineBreakpointProperties.java b/java/debugger/impl/src/org/jetbrains/java/debugger/breakpoints/properties/JavaLineBreakpointProperties.java new file mode 100644 index 000000000000..9a892346ac04 --- /dev/null +++ b/java/debugger/impl/src/org/jetbrains/java/debugger/breakpoints/properties/JavaLineBreakpointProperties.java @@ -0,0 +1,22 @@ +/* + * Copyright 2000-2014 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jetbrains.java.debugger.breakpoints.properties; + +/** + * @author egor + */ +public class JavaLineBreakpointProperties extends JavaBreakpointProperties { +}