Icon () { XDebugSessionImpl session = getBreakpointManager().getDebuggerManager().getCurrentSession(); if (!isEnabled()) { // disabled icon takes precedence to other to visually distinguish it and provide feedback then it is enabled/disabled // (e.g. in case of mute-mode we would like to differentiate muted but enabled breakpoints from simply disabled ones) if (session == null || !session.areBreakpointsMuted()) { return getType().getDisabledIcon(); } else { return getType().getMutedDisabledIcon(); } } if (session == null) { if (getBreakpointManager().getDependentBreakpointManager().getMasterBreakpoint(this) != null) { return getType().getInactiveDependentIcon(); } } else { if (session.areBreakpointsMuted()) { return getType().getMutedEnabledIcon(); } if (session.isInactiveSlaveBreakpoint(this)) { return getType().getInactiveDependentIcon(); } CustomizedBreakpointPresentation presentation = session.getBreakpointPresentation(this); if (presentation != null) { Icon icon = presentation.getIcon(); if (icon != null) { return icon; } } } if (getSuspendPolicy() == SuspendPolicy.NONE) { return getType().getSuspendNoneIcon(); } if (myCustomizedPresentation != null) { final Icon icon = myCustomizedPresentation.getIcon(); if (icon != null) { return icon; } } return null; }