// not part of a deleted range.
ArrayList<Breakpoint> movedBreakpoints = new ArrayList<Breakpoint>();
for (int idx = 0; idx < breakpoints_.size(); idx++)
{
Breakpoint breakpoint = breakpoints_.get(idx);
int breakpointRow = rowFromLine(breakpoint.getEditorLineNumber());
if (breakpointRow >= shiftStartRow)
{
// remove the breakpoint from its old position
movedBreakpoints.add(breakpoint);
removeBreakpointMarker(breakpoint);
}
}
for (Breakpoint breakpoint: movedBreakpoints)
{
// calculate the new position of the breakpoint
int oldBreakpointPosition =
rowFromLine(breakpoint.getEditorLineNumber());
int newBreakpointPosition =
oldBreakpointPosition + shiftedBy;
// add a breakpoint in this new position only if it wasn't
// in a deleted range, and if we don't already have a
// breakpoint there
if (oldBreakpointPosition >= end.getRow() &&
!(oldBreakpointPosition == end.getRow() && shiftedBy < 0) &&
getBreakpointIdxByLine(lineFromRow(newBreakpointPosition)) < 0)
{
breakpoint.moveToLineNumber(lineFromRow(newBreakpointPosition));
placeBreakpointMarker(breakpoint);
fireEvent(new BreakpointMoveEvent(breakpoint.getBreakpointId()));
}
else
{
breakpoints_.remove(breakpoint);
fireEvent(new BreakpointSetEvent(
breakpoint.getEditorLineNumber(),
breakpoint.getBreakpointId(),
false));
}
}
}