From 5d09a00c83c0c7ad5ab45b48dca89c74bb554325 Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Fri, 11 Apr 2014 17:05:02 +0400 Subject: [PATCH] unused code cleanup --- .../debugger/engine/DebugProcessEvents.java | 1 - .../debugger/ui/breakpoints/Breakpoint.java | 22 - .../ui/breakpoints/BreakpointManager.java | 278 +----- .../BreakpointPropertiesPanel.form | 442 --------- .../BreakpointPropertiesPanel.java | 897 ------------------ .../BreakpointWithHighlighter.java | 242 +---- .../ui/breakpoints/EnableBreakpointRule.java | 72 -- 7 files changed, 6 insertions(+), 1948 deletions(-) delete mode 100644 java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPropertiesPanel.form delete mode 100644 java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPropertiesPanel.java delete mode 100644 java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/EnableBreakpointRule.java diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java index c54ab3b7c0e2..5d29954164f9 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java @@ -317,7 +317,6 @@ public class DebugProcessEvents extends DebugProcessImpl { threadDeathRequest.setSuspendPolicy(EventRequest.SUSPEND_NONE); threadDeathRequest.enable(); - DebuggerManagerEx.getInstanceEx(getProject()).getBreakpointManager().setInitialBreakpointsState(); myDebugProcessDispatcher.getMulticaster().processAttached(this); final String addressDisplayName = DebuggerBundle.getAddressDisplayName(getConnection()); 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 58596262ba43..0aeb93efa992 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 @@ -62,25 +62,13 @@ public abstract class Breakpoint

implements final XBreakpoint

myXBreakpoint; protected final Project myProject; - //private boolean ENABLED = true; - //private boolean LOG_ENABLED = false; - //private boolean LOG_EXPRESSION_ENABLED = false; - //private boolean REMOVE_AFTER_HIT = false; - //private TextWithImports myLogMessage; // an expression to be evaluated and printed @NonNls private static final String LOG_MESSAGE_OPTION_NAME = "LOG_MESSAGE"; public static final Breakpoint[] EMPTY_ARRAY = new Breakpoint[0]; protected boolean myCachedVerifiedState = false; - //private TextWithImportsImpl myLogMessage; protected Breakpoint(@NotNull Project project, XBreakpoint

xBreakpoint) { - //super(project); myProject = project; myXBreakpoint = xBreakpoint; - //myLogMessage = new TextWithImportsImpl(CodeFragmentKind.EXPRESSION, ""); - //noinspection AbstractMethodCallInConstructor - //final BreakpointDefaults defaults = DebuggerManagerEx.getInstanceEx(project).getBreakpointManager().getBreakpointDefaults(getCategory()); - //SUSPEND_POLICY = defaults.getSuspendPolicy(); - //CONDITION_ENABLED = defaults.isConditionEnabled(); } public Project getProject() { @@ -469,16 +457,6 @@ public abstract class Breakpoint

implements } } - //@Override - //public void writeExternal(Element parentNode) throws WriteExternalException { - //super.writeExternal(parentNode); - //JDOMExternalizerUtil.writeField(parentNode, LOG_MESSAGE_OPTION_NAME, getLogMessage().toExternalForm()); - //} - - //public void setLogMessage(TextWithImports logMessage) { - // myLogMessage = logMessage; - //} - @Nullable public abstract PsiElement getEvaluationElement(); 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 3556e2dccad2..91640416755d 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 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * 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. @@ -23,7 +23,6 @@ package com.intellij.debugger.ui.breakpoints; import com.intellij.debugger.DebuggerBundle; import com.intellij.debugger.DebuggerInvocationUtil; import com.intellij.debugger.DebuggerManagerEx; -import com.intellij.debugger.SourcePosition; import com.intellij.debugger.engine.BreakpointStepMethodFilter; import com.intellij.debugger.engine.DebugProcessImpl; import com.intellij.debugger.engine.requests.RequestManagerImpl; @@ -42,7 +41,10 @@ import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.startup.StartupManager; import com.intellij.openapi.ui.MessageType; -import com.intellij.openapi.util.*; +import com.intellij.openapi.util.Comparing; +import com.intellij.openapi.util.Computable; +import com.intellij.openapi.util.InvalidDataException; +import com.intellij.openapi.util.Key; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileManager; import com.intellij.psi.PsiField; @@ -61,7 +63,6 @@ import com.sun.jdi.InternalException; import com.sun.jdi.ThreadReference; import com.sun.jdi.request.*; import gnu.trove.THashMap; -import gnu.trove.TIntHashSet; import org.jdom.Element; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -86,45 +87,11 @@ public class BreakpointManager { 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(); - //private final Map, BreakpointDefaults> myBreakpointDefaults = new LinkedHashMap, BreakpointDefaults>(); private final EventDispatcher myDispatcher = EventDispatcher.create(BreakpointManagerListener.class); private final StartupManager myStartupManager; - private void update(@NotNull List breakpoints) { - final TIntHashSet intHash = new TIntHashSet(); - for (BreakpointWithHighlighter breakpoint : breakpoints) { - SourcePosition sourcePosition = breakpoint.getSourcePosition(); - breakpoint.reload(); - - if (breakpoint.isValid()) { - if (sourcePosition == null || breakpoint.getSourcePosition().getLine() != sourcePosition.getLine()) { - fireBreakpointChanged(breakpoint); - } - - if (intHash.contains(breakpoint.getLineIndex())) { - remove(breakpoint); - } - else { - intHash.add(breakpoint.getLineIndex()); - } - } - else { - remove(breakpoint); - } - } - } - - private void remove(final BreakpointWithHighlighter breakpoint) { - DebuggerInvocationUtil.invokeLater(myProject, new Runnable() { - @Override - public void run() { - removeBreakpoint(breakpoint); - } - }); - } - public BreakpointManager(@NotNull Project project, @NotNull StartupManager startupManager, @NotNull DebuggerManagerImpl debuggerManager) { myProject = project; myStartupManager = startupManager; @@ -204,15 +171,6 @@ public class BreakpointManager { }); } - //@NotNull - //public BreakpointDefaults getBreakpointDefaults(Key category) { - // BreakpointDefaults defaults = myBreakpointDefaults.get(category); - // if (defaults == null) { - // defaults = new BreakpointDefaults(); - // } - // return defaults; - //} - public void setBreakpointDefaults(Key category, BreakpointDefaults defaults) { Class typeCls = null; if (LineBreakpoint.CATEGORY.toString().equals(category.toString())) { @@ -231,10 +189,8 @@ public class BreakpointManager { XBreakpointType, ?> type = XDebuggerUtil.getInstance().findBreakpointType(typeCls); ((XBreakpointManagerImpl)getXBreakpointManager()).getBreakpointDefaults(type).setSuspendPolicy(Breakpoint.transformSuspendPolicy(defaults.getSuspendPolicy())); } - //myBreakpointDefaults.put(category, defaults); } - @Nullable public RunToCursorBreakpoint addRunToCursorBreakpoint(Document document, int lineIndex, final boolean ignoreBreakpoints) { return RunToCursorBreakpoint.create(myProject, document, lineIndex, ignoreBreakpoints); @@ -261,16 +217,6 @@ 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(@NotNull Document document, int offset) { PsiField field = FieldBreakpoint.findField(myProject, document, offset); @@ -344,50 +290,6 @@ public class BreakpointManager { }); } - @Nullable - public WildcardMethodBreakpoint addMethodBreakpoint(String classPattern, String methodName) { - ApplicationManager.getApplication().assertIsDispatchThread(); - WildcardMethodBreakpoint breakpoint = WildcardMethodBreakpoint.create(myProject, classPattern, methodName, null); - if (breakpoint == null) { - return null; - } - addBreakpoint(breakpoint); - return breakpoint; - } - - /** - * @return null if not found or a breakpoint object - */ - @NotNull - public List findBreakpoints(final Document document, final int offset) { - LinkedList result = new LinkedList(); - ApplicationManager.getApplication().assertIsDispatchThread(); - for (final Breakpoint breakpoint : getBreakpoints()) { - if (breakpoint instanceof BreakpointWithHighlighter && ((BreakpointWithHighlighter)breakpoint).isAt(document, offset)) { - result.add((BreakpointWithHighlighter)breakpoint); - } - } - - return result; - } - - @NotNull - public List findBreakpoints(@NotNull Document document, @NotNull TextRange textRange) { - ApplicationManager.getApplication().assertIsDispatchThread(); - List result = new ArrayList(); - int startLine = document.getLineNumber(textRange.getStartOffset()); - int endLine = document.getLineNumber(textRange.getEndOffset())+1; - TextRange lineRange = new TextRange(startLine, endLine); - for (final Breakpoint breakpoint : getBreakpoints()) { - if (breakpoint instanceof BreakpointWithHighlighter && - lineRange.contains(((BreakpointWithHighlighter)breakpoint).getLineIndex())) { - result.add((BreakpointWithHighlighter)breakpoint); - } - } - - return result; - } - /** * @param category breakpoint category, null if the category does not matter */ @@ -658,115 +560,6 @@ public class BreakpointManager { } parentNode.addContent(myOriginalBreakpointsNodes.values()); - //ApplicationManager.getApplication().runReadAction(new Runnable() { - // @Override - // public void run() { - // removeInvalidBreakpoints(); - // final Map, Element> categoryToElementMap = new THashMap, Element>(); - // for (Key category : myBreakpointDefaults.keySet()) { - // final Element group = getCategoryGroupElement(categoryToElementMap, category, parentNode); - // final BreakpointDefaults defaults = getBreakpointDefaults(category); - // group.setAttribute(DEFAULT_SUSPEND_POLICY_ATTRIBUTE_NAME, String.valueOf(defaults.getSuspendPolicy())); - // group.setAttribute(DEFAULT_CONDITION_STATE_ATTRIBUTE_NAME, String.valueOf(defaults.isConditionEnabled())); - // } - // // don't store invisible breakpoints - // for (Breakpoint breakpoint : getBreakpoints()) { - // if (breakpoint.isValid() && - // (!(breakpoint instanceof BreakpointWithHighlighter) || ((BreakpointWithHighlighter)breakpoint).isVisible())) { - // writeBreakpoint(getCategoryGroupElement(categoryToElementMap, breakpoint.getCategory(), parentNode), breakpoint); - // } - // } - // final AnyExceptionBreakpoint anyExceptionBreakpoint = getAnyExceptionBreakpoint(); - // final Element group = getCategoryGroupElement(categoryToElementMap, anyExceptionBreakpoint.getCategory(), parentNode); - // writeBreakpoint(group, anyExceptionBreakpoint); - // - // final Element rules = new Element(RULES_GROUP_NAME); - // parentNode.addContent(rules); - // //for (EnableBreakpointRule myBreakpointRule : myBreakpointRules) { - // // writeRule(myBreakpointRule, rules); - // //} - // } - //}); - // - //final Element uiProperties = new Element("ui_properties"); - //parentNode.addContent(uiProperties); - //for (final String name : myUIProperties.keySet()) { - // Element property = new Element("property"); - // uiProperties.addContent(property); - // property.setAttribute("name", name); - // property.setAttribute("value", myUIProperties.get(name)); - //} - } - - //@SuppressWarnings({"HardCodedStringLiteral"}) - //private static void writeRule(@NotNull final EnableBreakpointRule enableBreakpointRule, @NotNull Element element) { - // Element rule = new Element("rule"); - // if (enableBreakpointRule.isLeaveEnabled()) { - // rule.setAttribute("leaveEnabled", Boolean.toString(true)); - // } - // element.addContent(rule); - // writeRuleBreakpoint(rule, MASTER_BREAKPOINT_TAGNAME, enableBreakpointRule.getMasterBreakpoint()); - // writeRuleBreakpoint(rule, SLAVE_BREAKPOINT_TAGNAME, enableBreakpointRule.getSlaveBreakpoint()); - //} - - //@SuppressWarnings({"HardCodedStringLiteral"}) private static void writeRuleBreakpoint(@NotNull final Element element, final String tagName, @NotNull final Breakpoint breakpoint) { - // Element master = new Element(tagName); - // element.addContent(master); - // master.setAttribute("name", breakpoint.getDisplayName()); - //} - - //@SuppressWarnings({"HardCodedStringLiteral"}) - //private static void writeBreakpoint(@NotNull final Element group, @NotNull final Breakpoint breakpoint) { - // Element breakpointNode = new Element("breakpoint"); - // group.addContent(breakpointNode); - // try { - // breakpoint.writeExternal(breakpointNode); - // } - // catch (WriteExternalException e) { - // LOG.error(e); - // } - //} - - private static Element getCategoryGroupElement(@NotNull final Map, Element> categoryToElementMap, @NotNull final Key category, @NotNull final Element parentNode) { - Element group = categoryToElementMap.get(category); - if (group == null) { - group = new Element(category.toString()); - categoryToElementMap.put(category, group); - parentNode.addContent(group); - } - return group; - } - - private void removeInvalidBreakpoints() { - ArrayList toDelete = new ArrayList(); - - for (Breakpoint breakpoint : getBreakpoints()) { - if (!breakpoint.isValid()) { - toDelete.add(breakpoint); - } - } - - for (final Breakpoint aToDelete : toDelete) { - removeBreakpoint(aToDelete); - } - } - - /** - * @return breakpoints of one of the category: - * LINE_BREAKPOINTS, EXCEPTION_BREAKPOINTS, FIELD_BREAKPOINTS, METHOD_BREAKPOINTS - */ - public Breakpoint[] getBreakpoints(@NotNull final Key category) { - ApplicationManager.getApplication().assertIsDispatchThread(); - removeInvalidBreakpoints(); - - final ArrayList breakpoints = new ArrayList(); - for (Breakpoint breakpoint : getBreakpoints()) { - if (category.equals(breakpoint.getCategory())) { - breakpoints.add(breakpoint); - } - } - - return breakpoints.toArray(new Breakpoint[breakpoints.size()]); } @NotNull @@ -969,43 +762,8 @@ public class BreakpointManager { public void setBreakpointEnabled(@NotNull final Breakpoint breakpoint, final boolean enabled) { if (breakpoint.isEnabled() != enabled) { breakpoint.setEnabled(enabled); - //fireBreakpointChanged(breakpoint); - //breakpoint.updateUI(); } } - - public void addBreakpointRule(@NotNull EnableBreakpointRule rule) { - //rule.init(); - //myBreakpointRules.add(rule); - } - - public boolean removeBreakpointRule(@NotNull EnableBreakpointRule rule) { - //final boolean removed = myBreakpointRules.remove(rule); - //if (removed) { - // rule.dispose(); - //} - //return removed; - return false; - } - - public boolean removeBreakpointRule(@NotNull Breakpoint slaveBreakpoint) { - //for (final EnableBreakpointRule rule : myBreakpointRules) { - // if (slaveBreakpoint.equals(rule.getSlaveBreakpoint())) { - // removeBreakpointRule(rule); - // return true; - // } - //} - return false; - } - - //private void updateBreakpointRules(@NotNull Breakpoint removedBreakpoint) { - // for (Iterator it = myBreakpointRules.iterator(); it.hasNext();) { - // final EnableBreakpointRule rule = it.next(); - // if (removedBreakpoint.equals(rule.getMasterBreakpoint()) || removedBreakpoint.equals(rule.getSlaveBreakpoint())) { - // it.remove(); - // } - // } - //} // copied from XDebugSessionImpl processDependencies public void processBreakpointHit(@NotNull final Breakpoint breakpoint) { @@ -1035,38 +793,12 @@ public class BreakpointManager { } } - public void setInitialBreakpointsState() { - //myAllowMulticasting = false; - //for (final EnableBreakpointRule myBreakpointRule : myBreakpointRules) { - // myBreakpointRule.init(); - //} - //myAllowMulticasting = true; - //if (!myBreakpointRules.isEmpty()) { - // IJSwingUtilities.invoke(new Runnable() { - // @Override - // public void run() { - // myDispatcher.getMulticaster().breakpointsChanged(); - // } - // }); - //} - } - @Nullable public Breakpoint findMasterBreakpoint(@NotNull Breakpoint dependentBreakpoint) { XDependentBreakpointManager dependentBreakpointManager = ((XBreakpointManagerImpl)getXBreakpointManager()).getDependentBreakpointManager(); return myBreakpoints.get(dependentBreakpointManager.getMasterBreakpoint(dependentBreakpoint.myXBreakpoint)); } - @Nullable - public EnableBreakpointRule findBreakpointRule(@NotNull Breakpoint dependentBreakpoint) { - //for (final EnableBreakpointRule rule : myBreakpointRules) { - // if (dependentBreakpoint.equals(rule.getSlaveBreakpoint())) { - // return rule; - // } - //} - return null; - } - public String getProperty(String name) { return myUIProperties.get(name); } diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPropertiesPanel.form b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPropertiesPanel.form deleted file mode 100644 index c546244f0447..000000000000 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPropertiesPanel.form +++ /dev/null @@ -1,442 +0,0 @@ - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 deleted file mode 100644 index afeeb13aeb10..000000000000 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/BreakpointPropertiesPanel.java +++ /dev/null @@ -1,897 +0,0 @@ -/* - * Copyright 2000-2012 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. - */ - -/* - * Class BreakpointPropertiesPanel - * @author Jeka - */ -package com.intellij.debugger.ui.breakpoints; - -import com.intellij.debugger.DebuggerManagerEx; -import com.intellij.debugger.InstanceFilter; -import com.intellij.debugger.engine.evaluation.CodeFragmentKind; -import com.intellij.debugger.engine.evaluation.DefaultCodeFragmentFactory; -import com.intellij.debugger.engine.evaluation.TextWithImportsImpl; -import com.intellij.debugger.settings.DebuggerSettings; -import com.intellij.debugger.ui.CompletionEditor; -import com.intellij.debugger.ui.DebuggerExpressionComboBox; -import com.intellij.debugger.ui.DebuggerStatementEditor; -import com.intellij.debugger.ui.JavaDebuggerSupport; -import com.intellij.ide.util.ClassFilter; -import com.intellij.openapi.editor.event.DocumentEvent; -import com.intellij.openapi.editor.event.DocumentListener; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.ui.DialogWrapper; -import com.intellij.openapi.ui.FixedSizeButton; -import com.intellij.openapi.util.Key; -import com.intellij.openapi.util.text.StringUtil; -import com.intellij.openapi.wm.IdeFocusManager; -import com.intellij.psi.PsiClass; -import com.intellij.psi.PsiElement; -import com.intellij.ui.FieldPanel; -import com.intellij.ui.MultiLineTooltipUI; -import com.intellij.ui.popup.util.DetailView; -import com.intellij.util.IJSwingUtilities; -import com.intellij.xdebugger.impl.DebuggerSupport; -import com.intellij.xdebugger.impl.breakpoints.ui.BreakpointChooser; -import com.intellij.xdebugger.impl.breakpoints.ui.BreakpointItem; -import com.intellij.xdebugger.impl.breakpoints.ui.BreakpointNoneItem; -import com.intellij.xdebugger.impl.ui.DebuggerUIUtil; -import org.jetbrains.annotations.Nullable; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.*; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -/* - * Not used any more, since move to xBreakpoints - */ -public abstract class BreakpointPropertiesPanel { - - private BreakpointChooser myMasterBreakpointChooser; - - public void setDetailView(DetailView detailView) { - myMasterBreakpointChooser.setDetailView(detailView); - } - - protected final Project myProject; - private final Key myBreakpointCategory; - private boolean myCompact; - private JPanel myPanel; - private final DebuggerExpressionComboBox myConditionCombo; - private final DebuggerExpressionComboBox myLogExpressionCombo; - private JTextField myPassCountField; - private final FieldPanel myInstanceFiltersField; - - private final FieldPanel myClassFiltersField; - private com.intellij.ui.classFilter.ClassFilter[] myClassFilters; - private com.intellij.ui.classFilter.ClassFilter[] myClassExclusionFilters; - private InstanceFilter[] myInstanceFilters; - - private JCheckBox myLogExpressionCheckBox; - private JCheckBox myLogMessageCheckBox; - protected JCheckBox myPassCountCheckbox; - private JCheckBox myInstanceFiltersCheckBox; - private JCheckBox myClassFiltersCheckBox; - - private JPanel myInstanceFiltersFieldPanel; - private JPanel myClassFiltersFieldPanel; - private JPanel myConditionComboPanel; - private JPanel myLogExpressionComboPanel; - private JPanel myDependentBreakpointComboPanel; - private JPanel mySpecialBoxPanel; - private PsiClass myBreakpointPsiClass; - - private JRadioButton myRbSuspendThread; - private JRadioButton myRbSuspendAll; - private JCheckBox myCbSuspend; - private JButton myMakeDefaultButton; - - private JRadioButton myDisableAgainRadio; - private JRadioButton myLeaveEnabledRadioButton; - - private JLabel myEnableOrDisableLabel; - private JPanel myDependsOnPanel; - private JPanel myInstanceFiltersPanel; - private JPanel myClassFiltersPanel; - private JPanel myPassCountPanel; - private JPanel myConditionsPanel; - private JPanel myActionsPanel; - private JCheckBox myConditionCheckbox; - private JCheckBox myTemporaryCheckBox; - private JCheckBox myEnabledCheckbox; - - ButtonGroup mySuspendPolicyGroup; - public static final String CONTROL_LOG_MESSAGE = "logMessage"; - private final FixedSizeButton myConditionMagnifierButton; - private boolean myMoreOptionsVisible = true; - private Breakpoint myBreakpoint; - - public boolean isMoreOptionsVisible() { - return myMoreOptionsVisible; - } - - public interface Delegate { - - void showActionsPanel(); - } - private Delegate myDelegate; - - public JComponent getControl(String control) { - if(CONTROL_LOG_MESSAGE.equals(control)) { - return myLogExpressionCombo; - } - return null; - } - - public void dispose() { - if (myConditionCombo != null) { - myConditionCombo.dispose(); - } - if (myLogExpressionCombo != null) { - myLogExpressionCombo.dispose(); - } - } - - public void setActionsPanelVisible(boolean b) { - myActionsPanel.setVisible(b); - } - - public void setMoreOptionsVisible(boolean b) { - myMoreOptionsVisible = b; - myDependsOnPanel.setVisible(b); - myConditionsPanel.setVisible(b); - if (b) { - myActionsPanel.setVisible(true); - } - if (!b) { - myPanel.setPreferredSize(new Dimension(500, -1)); - } - } - - public void setDelegate(Delegate delegate) { - myDelegate = delegate; - } - - private class MyTextField extends JTextField { - public MyTextField() { - } - - @Override - public String getToolTipText(MouseEvent event) { - reloadClassFilters(); - updateClassFilterEditor(false); - reloadInstanceFilters(); - updateInstanceFilterEditor(false); - String toolTipText = super.getToolTipText(event); - return getToolTipText().length() == 0 ? null : toolTipText; - } - - @Override - public JToolTip createToolTip() { - JToolTip toolTip = new JToolTip(){{ - setUI(new MultiLineTooltipUI()); - }}; - toolTip.setComponent(this); - return toolTip; - } - } - - private static void insert(JPanel panel, JComponent component) { - panel.setLayout(new BorderLayout()); - panel.add(component, BorderLayout.CENTER); - } - - public BreakpointPropertiesPanel(final Project project, final Key breakpointCategory, boolean compact) { - myProject = project; - myBreakpointCategory = breakpointCategory; - myCompact = compact; - - mySuspendPolicyGroup = new ButtonGroup(); - mySuspendPolicyGroup.add(myRbSuspendAll); - mySuspendPolicyGroup.add(myRbSuspendThread); - - updateSuspendPolicyRbFont(); - final ItemListener suspendPolicyChangeListener = new ItemListener() { - @Override - public void itemStateChanged(final ItemEvent e) { - //final BreakpointDefaults defaults = getBreakpointManager(myProject).getBreakpointDefaults(breakpointCategory); - //myMakeDefaultButton.setEnabled(!defaults.getSuspendPolicy().equals(getSelectedSuspendPolicy()) || defaults.isConditionEnabled() != myConditionCheckbox.isSelected()); - } - }; - - myCbSuspend.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent event) { - final boolean enabled = myCbSuspend.isSelected(); - myRbSuspendAll.setEnabled(enabled); - myRbSuspendThread.setEnabled(enabled); - } - }); - - - myRbSuspendAll.addItemListener(suspendPolicyChangeListener); - myRbSuspendThread.addItemListener(suspendPolicyChangeListener); - myConditionCheckbox.addItemListener(suspendPolicyChangeListener); - - myMakeDefaultButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(final ActionEvent e) { - final BreakpointManager breakpointManager = getBreakpointManager(myProject); - final String suspendPolicy = getSelectedSuspendPolicy(); - breakpointManager.setBreakpointDefaults(breakpointCategory, new BreakpointDefaults(suspendPolicy, myConditionCheckbox.isSelected())); - updateSuspendPolicyRbFont(); - if (DebuggerSettings.SUSPEND_THREAD.equals(suspendPolicy)) { - myRbSuspendThread.requestFocus(); - } - else { - myRbSuspendAll.requestFocus(); - } - myMakeDefaultButton.setEnabled(false); - } - }); - - myConditionCombo = new DebuggerExpressionComboBox(project, "LineBreakpoint condition"); - myConditionCombo.addDocumentListener(new DocumentListener() { - @Override - public void beforeDocumentChange(DocumentEvent event) { - myConditionCheckbox.setSelected(true); - } - - @Override - public void documentChanged(DocumentEvent event) { - - } - }); - - myConditionCombo.getEditorComponent().addMouseListener(new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent event) { - myConditionCombo.setEnabled(true); - myConditionCheckbox.setSelected(true); - } - }); - - if (myCompact) { - myPanel.addFocusListener(new FocusAdapter() { - @Override - public void focusGained(FocusEvent event) { - DebuggerExpressionComboBox focus; - if (myLogExpressionCheckBox.isSelected()) { - focus = myLogExpressionCombo; - } else { - focus = myConditionCombo; - } - IdeFocusManager.findInstance().requestFocus(focus, true); - } - }); - } - - myLogExpressionCombo = new DebuggerExpressionComboBox(project, "LineBreakpoint logMessage"); - - myInstanceFiltersField = new FieldPanel(new MyTextField(), "", null, - new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - reloadInstanceFilters(); - EditInstanceFiltersDialog _dialog = new EditInstanceFiltersDialog(myProject); - _dialog.setFilters(myInstanceFilters); - _dialog.show(); - if(_dialog.getExitCode() == DialogWrapper.OK_EXIT_CODE) { - myInstanceFilters = _dialog.getFilters(); - updateInstanceFilterEditor(true); - } - } - }, - null - ); - - myClassFiltersField = new FieldPanel(new MyTextField(), "", null, - new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - reloadClassFilters(); - - ClassFilter classFilter = createClassConditionFilter(); - - EditClassFiltersDialog _dialog = new EditClassFiltersDialog(myProject, classFilter); - _dialog.setFilters(myClassFilters, myClassExclusionFilters); - _dialog.show(); - if (_dialog.getExitCode() == DialogWrapper.OK_EXIT_CODE) { - myClassFilters = _dialog.getFilters(); - myClassExclusionFilters = _dialog.getExclusionFilters(); - updateClassFilterEditor(true); - } - } - }, - null - ); - ToolTipManager.sharedInstance().registerComponent(myClassFiltersField.getTextField()); - ToolTipManager.sharedInstance().registerComponent(myInstanceFiltersField.getTextField()); - - JComponent specialBox = createSpecialBox(); - if(specialBox != null) { - insert(mySpecialBoxPanel, specialBox); - } - else { - mySpecialBoxPanel.setVisible(false); - } - - final JPanel conditionPanel = new JPanel(new BorderLayout()); - conditionPanel.add(myConditionCombo, BorderLayout.CENTER); - myConditionMagnifierButton = new FixedSizeButton(myConditionCombo); - conditionPanel.add(myConditionMagnifierButton, BorderLayout.EAST); - myConditionMagnifierButton.setFocusable(false); - myConditionMagnifierButton.addActionListener(new MagnifierButtonAction(project, myConditionCombo, "Condition")); - - insert(myConditionComboPanel, conditionPanel); - insert(myLogExpressionComboPanel, myLogExpressionCombo); - - insert(myInstanceFiltersFieldPanel, myInstanceFiltersField); - insert(myClassFiltersFieldPanel, myClassFiltersField); - - DebuggerUIUtil.enableEditorOnCheck(myLogExpressionCheckBox, myLogExpressionCombo); - ActionListener updateListener = new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - updateCheckboxes(); - } - }; - - myPassCountCheckbox.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent event) { - if (myPassCountCheckbox.isSelected()) { - myConditionCheckbox.setSelected(false); - } - updateCheckboxes(); - } - }); - myInstanceFiltersCheckBox.addActionListener(updateListener); - myClassFiltersCheckBox.addActionListener(updateListener); - myConditionCheckbox.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent event) { - if (myConditionCheckbox.isSelected()) { - myPassCountCheckbox.setSelected(false); - } - updateCheckboxes(); - } - }); - DebuggerUIUtil.focusEditorOnCheck(myPassCountCheckbox, myPassCountField); - DebuggerUIUtil.focusEditorOnCheck(myLogExpressionCheckBox, myLogExpressionCombo); - DebuggerUIUtil.focusEditorOnCheck(myInstanceFiltersCheckBox, myInstanceFiltersField.getTextField()); - DebuggerUIUtil.focusEditorOnCheck(myClassFiltersCheckBox, myClassFiltersField.getTextField()); - DebuggerUIUtil.focusEditorOnCheck(myConditionCheckbox, myConditionCombo); - - IJSwingUtilities.adjustComponentsOnMac(myCbSuspend); - IJSwingUtilities.adjustComponentsOnMac(myLogExpressionCheckBox); - IJSwingUtilities.adjustComponentsOnMac(myLogMessageCheckBox); - IJSwingUtilities.adjustComponentsOnMac(myTemporaryCheckBox); - IJSwingUtilities.adjustComponentsOnMac(myEnabledCheckbox); - } - - private List getBreakpointItemsExceptMy() { - List items = new ArrayList(); - final DebuggerSupport support = DebuggerSupport.getDebuggerSupport(JavaDebuggerSupport.class); - support.getBreakpointPanelProvider().provideBreakpointItems(myProject, items); - for (BreakpointItem item : items) { - if (item.getBreakpoint() == myBreakpoint) { - items.remove(item); - break; - } - } - items.add(new BreakpointNoneItem()); - return items; - } - - private void saveMasterBreakpoint() { - Breakpoint masterBreakpoint = (Breakpoint)myMasterBreakpointChooser.getSelectedBreakpoint(); - if (masterBreakpoint == null) { - getBreakpointManager(myProject).removeBreakpointRule(myBreakpoint); - } - else { - EnableBreakpointRule rule = findMasterBreakpointRule(); - boolean selected = myLeaveEnabledRadioButton.isSelected(); - if (rule != null) { - if (rule.getMasterBreakpoint() != masterBreakpoint || rule.isLeaveEnabled() != selected) { - getBreakpointManager(myProject).removeBreakpointRule(rule); - } - else { - return; - } - } - getBreakpointManager(myProject).addBreakpointRule(new EnableBreakpointRule(getBreakpointManager(myProject), masterBreakpoint, myBreakpoint, selected)); - } - } - - private String getSelectedSuspendPolicy() { - if (myRbSuspendThread.isSelected()) { - return DebuggerSettings.SUSPEND_THREAD; - } - return DebuggerSettings.SUSPEND_ALL; - } - - private void updateSuspendPolicyRbFont() { - //final String defPolicy = getBreakpointManager(myProject).getBreakpointDefaults(myBreakpointCategory).getSuspendPolicy(); - - final Font font = myRbSuspendAll.getFont().deriveFont(Font.PLAIN); - final Font boldFont = font.deriveFont(Font.BOLD); - - //myRbSuspendAll.setFont(DebuggerSettings.SUSPEND_ALL.equals(defPolicy)? boldFont : font); - //myRbSuspendThread.setFont(DebuggerSettings.SUSPEND_THREAD.equals(defPolicy)? boldFont : font); - } - - protected ClassFilter createClassConditionFilter() { - ClassFilter classFilter; - if(myBreakpointPsiClass != null) { - classFilter = new ClassFilter() { - @Override - public boolean isAccepted(PsiClass aClass) { - return myBreakpointPsiClass == aClass || aClass.isInheritor(myBreakpointPsiClass, true); - } - }; - } - else { - classFilter = null; - } - return classFilter; - } - - protected JComponent createSpecialBox() { - return null; - } - - /** - * 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); - } - - private void initMasterBreakpointPanel() { - final EnableBreakpointRule rule = findMasterBreakpointRule(); - - final Breakpoint baseBreakpoint = rule != null ? rule.getMasterBreakpoint() : null; - updateMasterBreakpointPanel(rule); - - - myMasterBreakpointChooser = new BreakpointChooser(myProject, new BreakpointChooser.Delegate() { - @Override - public void breakpointChosen(Project project, BreakpointItem item) { - final boolean enabled = item != null && item.getBreakpoint() != null; - myLeaveEnabledRadioButton.setEnabled(enabled); - myDisableAgainRadio.setEnabled(enabled); - myEnableOrDisableLabel.setEnabled(enabled); - - if (item != null) { - - saveMasterBreakpoint(); - } - - updateMasterBreakpointPanel(findMasterBreakpointRule()); - - } - }, baseBreakpoint, getBreakpointItemsExceptMy()); - - insert(myDependentBreakpointComboPanel, myMasterBreakpointChooser.getComponent()); - - } - - private @Nullable EnableBreakpointRule findMasterBreakpointRule() { - return myBreakpoint != null? getBreakpointManager(myProject).findBreakpointRule(myBreakpoint) : null; - } - - private void updateMasterBreakpointPanel(@Nullable EnableBreakpointRule rule) { - final boolean leaveEnabled = rule != null && rule.isLeaveEnabled(); - if (leaveEnabled) { - myLeaveEnabledRadioButton.setSelected(true); - } - else { - myDisableAgainRadio.setSelected(true); - } - } - - private static TextWithImportsImpl emptyText() { - return new TextWithImportsImpl(CodeFragmentKind.EXPRESSION, ""); - } - - /** - * Save values in the UI components to the breakpoint object - */ - 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(); - } - - private static String concatWithEx(List s, String concator, int N, String NthConcator) { - String result = ""; - int i = 1; - for (Iterator iterator = s.iterator(); iterator.hasNext(); i++) { - String str = (String) iterator.next(); - result += str; - if(iterator.hasNext()){ - if(i % N == 0){ - result += NthConcator; - } - else { - result += concator; - } - } - } - return result; - } - - private void updateInstanceFilterEditor(boolean updateText) { - List filters = new ArrayList(); - for (InstanceFilter instanceFilter : myInstanceFilters) { - if (instanceFilter.isEnabled()) { - filters.add(Long.toString(instanceFilter.getId())); - } - } - if (updateText) { - myInstanceFiltersField.setText(StringUtil.join(filters, " ")); - } - - String tipText = concatWithEx(filters, " ", (int)Math.sqrt(myInstanceFilters.length) + 1, "\n"); - myInstanceFiltersField.getTextField().setToolTipText(tipText); - } - - private void reloadInstanceFilters() { - String filtersText = myInstanceFiltersField.getText(); - - ArrayList idxs = new ArrayList(); - int startNumber = -1; - for(int i = 0; i <= filtersText.length(); i++) { - if(i < filtersText.length() && Character.isDigit(filtersText.charAt(i))) { - if(startNumber == -1) { - startNumber = i; - } - } - else { - if(startNumber >=0) { - idxs.add(InstanceFilter.create(filtersText.substring(startNumber, i))); - startNumber = -1; - } - } - } - for (InstanceFilter instanceFilter : myInstanceFilters) { - if (!instanceFilter.isEnabled()) { - idxs.add(instanceFilter); - } - } - myInstanceFilters = idxs.toArray(new InstanceFilter[idxs.size()]); - } - - private void updateClassFilterEditor(boolean updateText) { - List filters = new ArrayList(); - for (com.intellij.ui.classFilter.ClassFilter classFilter : myClassFilters) { - if (classFilter.isEnabled()) { - filters.add(classFilter.getPattern()); - } - } - List excludeFilters = new ArrayList(); - for (com.intellij.ui.classFilter.ClassFilter classFilter : myClassExclusionFilters) { - if (classFilter.isEnabled()) { - excludeFilters.add("-" + classFilter.getPattern()); - } - } - if (updateText) { - String editorText = StringUtil.join(filters, " "); - if(!filters.isEmpty()) { - editorText += " "; - } - editorText += StringUtil.join(excludeFilters, " "); - myClassFiltersField.setText(editorText); - } - - int width = (int)Math.sqrt(myClassExclusionFilters.length + myClassFilters.length) + 1; - String tipText = concatWithEx(filters, " ", width, "\n"); - if(!filters.isEmpty()) { - tipText += "\n"; - } - tipText += concatWithEx(excludeFilters, " ", width, "\n"); - myClassFiltersField.getTextField().setToolTipText(tipText); - } - - private void reloadClassFilters() { - String filtersText = myClassFiltersField.getText(); - - ArrayList classFilters = new ArrayList(); - ArrayList exclusionFilters = new ArrayList(); - int startFilter = -1; - for(int i = 0; i <= filtersText.length(); i++) { - if(i < filtersText.length() && !Character.isWhitespace(filtersText.charAt(i))){ - if(startFilter == -1) { - startFilter = i; - } - } - else { - if(startFilter >=0) { - if(filtersText.charAt(startFilter) == '-') { - exclusionFilters.add(new com.intellij.ui.classFilter.ClassFilter(filtersText.substring(startFilter + 1, i))); - } - else { - classFilters.add(new com.intellij.ui.classFilter.ClassFilter(filtersText.substring(startFilter, i))); - } - startFilter = -1; - } - } - } - for (com.intellij.ui.classFilter.ClassFilter classFilter : myClassFilters) { - if (!classFilter.isEnabled()) { - classFilters.add(classFilter); - } - } - for (com.intellij.ui.classFilter.ClassFilter classFilter : myClassExclusionFilters) { - if (!classFilter.isEnabled()) { - exclusionFilters.add(classFilter); - } - } - myClassFilters = classFilters .toArray(new com.intellij.ui.classFilter.ClassFilter[classFilters .size()]); - myClassExclusionFilters = exclusionFilters.toArray(new com.intellij.ui.classFilter.ClassFilter[exclusionFilters.size()]); - } - - public void setEnabled(boolean enabled) { - myPanel.setEnabled(enabled); - Component[] components = myPanel.getComponents(); - for (Component component : components) { - component.setEnabled(enabled); - } - } - - protected void updateCheckboxes() { - boolean passCountApplicable = true; - if (myInstanceFiltersCheckBox.isSelected() || myClassFiltersCheckBox.isSelected()) { - passCountApplicable = false; - } - myPassCountCheckbox.setEnabled(passCountApplicable); - - final boolean passCountSelected = myPassCountCheckbox.isSelected(); - myInstanceFiltersCheckBox.setEnabled(!passCountSelected); - myClassFiltersCheckBox.setEnabled(!passCountSelected); - - myPassCountField.setEditable(myPassCountCheckbox.isSelected()); - myPassCountField.setEnabled (myPassCountCheckbox.isSelected()); - - myConditionCombo.setEnabled(myConditionCheckbox.isSelected()); - myConditionMagnifierButton.setEnabled(myConditionCheckbox.isSelected()); - - myInstanceFiltersField.setEnabled(myInstanceFiltersCheckBox.isSelected()); - myInstanceFiltersField.getTextField().setEditable(myInstanceFiltersCheckBox.isSelected()); - - myClassFiltersField.setEnabled(myClassFiltersCheckBox.isSelected()); - myClassFiltersField.getTextField().setEditable(myClassFiltersCheckBox.isSelected()); - } - - public JPanel getPanel() { - return myPanel; - } - - private static BreakpointManager getBreakpointManager(Project project) { - return DebuggerManagerEx.getInstanceEx(project).getBreakpointManager(); - } - - private static class MagnifierButtonAction implements ActionListener { - private final Project myProject; - private final CompletionEditor myTargetEditor; - private final String myDialogTitle; - private DebuggerStatementEditor myEditor; - - private MagnifierButtonAction(final Project project, final CompletionEditor targetEditor, final String dialogTitle) { - myProject = project; - myTargetEditor = targetEditor; - myDialogTitle = dialogTitle; - } - - @Override - public void actionPerformed(final ActionEvent e) { - new DialogWrapper(myTargetEditor, true){ - @Override - public void show() { - setTitle(myDialogTitle); - setModal(true); - init(); - super.show(); - } - - @Override - public JComponent getPreferredFocusedComponent() { - return myEditor; - } - - @Override - @Nullable - protected JComponent createCenterPanel() { - final JPanel panel = new JPanel(new BorderLayout()); - myEditor = new DebuggerStatementEditor(myProject, myTargetEditor.getContext(), myTargetEditor.getRecentsId(), DefaultCodeFragmentFactory.getInstance()); - myEditor.setPreferredSize(new Dimension(400, 150)); - myEditor.setText(myTargetEditor.getText()); - panel.add(myEditor, BorderLayout.CENTER); - return panel; - } - - @Override - protected void dispose() { - super.dispose(); - myEditor.dispose(); - } - - @Override - protected void doOKAction() { - myTargetEditor.setText(myEditor.getText()); - super.doOKAction(); - } - }.show(); - } - } -} 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 cf918d384456..29443c0b224a 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 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * 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. @@ -28,12 +28,6 @@ import com.intellij.debugger.settings.DebuggerSettings; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; -import com.intellij.openapi.editor.colors.EditorColorsManager; -import com.intellij.openapi.editor.colors.EditorColorsScheme; -import com.intellij.openapi.editor.ex.MarkupModelEx; -import com.intellij.openapi.editor.impl.DocumentMarkupModel; -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; @@ -52,7 +46,6 @@ import com.intellij.xdebugger.XSourcePosition; import com.intellij.xdebugger.breakpoints.XBreakpoint; import com.intellij.xdebugger.breakpoints.XBreakpointManager; 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; @@ -385,20 +378,6 @@ public abstract class BreakpointWithHighlighter

getCategory(); - //public boolean canMoveTo(@Nullable final SourcePosition position) { - // if (position == null || !position.getFile().isValid()) { - // return false; - // } - // final PsiFile psiFile = position.getFile(); - // final Document document = PsiDocumentManager.getInstance(getProject()).getDocument(psiFile); - // if (document == null) { - // return false; - // } - // final int spOffset = position.getOffset(); - // if (spOffset < 0) { - // return false; - // } - // final BreakpointManager breakpointManager = DebuggerManagerEx.getInstanceEx(getProject()).getBreakpointManager(); - // return breakpointManager.findBreakpoint(document, spOffset, getCategory()) == null; - //} - - //public boolean moveTo(@NotNull SourcePosition position) { - // if (!canMoveTo(position)) { - // return false; - // } - // final PsiFile psiFile = position.getFile(); - // final PsiFile oldFile = getSourcePosition().getFile(); - // final Document document = PsiDocumentManager.getInstance(getProject()).getDocument(psiFile); - // final Document oldDocument = PsiDocumentManager.getInstance(getProject()).getDocument(oldFile); - // if (document == null || oldDocument == null) { - // return false; - // } - // final RangeHighlighter newHighlighter = createHighlighter(myProject, document, position.getLine()); - // if (newHighlighter == null) { - // return false; - // } - // final RangeHighlighter oldHighlighter = myHighlighter; - // myHighlighter = newHighlighter; - // - // reload(); - // - // if (!isValid()) { - // myHighlighter.dispose(); - // myHighlighter = oldHighlighter; - // reload(); - // return false; - // } - // - // if (oldHighlighter != null) { - // oldHighlighter.dispose(); - // } - // - // DebuggerManagerEx.getInstanceEx(getProject()).getBreakpointManager().fireBreakpointChanged(this); - // updateUI(); - // - // return true; - //} - public boolean isVisible() { return myVisible; } @@ -516,25 +437,6 @@ public abstract class BreakpointWithHighlighter

= document.getLineCount()) { - return null; - } - - EditorColorsScheme scheme = EditorColorsManager.getInstance().getGlobalScheme(); - TextAttributes attributes = scheme.getAttributes(DebuggerColors.BREAKPOINT_ATTRIBUTES); - - RangeHighlighter highlighter = ((MarkupModelEx)DocumentMarkupModel.forDocument(document, project, true)) - .addPersistentLineHighlighter(lineIndex, DebuggerColors.BREAKPOINT_HIGHLIGHTER_LAYER, attributes); - if (highlighter == null || !highlighter.isValid()) { - return null; - } - highlighter.putUserData(DebuggerColors.BREAKPOINT_HIGHLIGHTER_KEY, Boolean.TRUE); - highlighter.setErrorStripeTooltip(DebuggerBundle.message("breakpoint.tooltip.text", lineIndex + 1)); - return highlighter; - } - @Override public void readExternal(@NotNull Element breakpointNode) throws InvalidDataException { super.readExternal(breakpointNode); @@ -552,147 +454,5 @@ public abstract class BreakpointWithHighlighter