public void add(Edit edit) { if (first == null) first = last = edit; else { edit.prev = last; last.next = edit; last = edit; } }
// {{{ _add() method private void _add(Edit edit) { if (first == null) first = last = edit; else { edit.prev = last; last.next = edit; last = edit; } } // }}}
// {{{ exchangeLastElement() method private void exchangeLastElement(Edit edit) { // remove last if (first == last) first = last = null; else { last.prev.next = null; last = last.prev; } // exchange current last if (first == null || first == last) first = last = edit; else { edit.prev = last.prev; last.prev.next = edit; last = edit; } } // }}}
private void addEdit(Edit edit) { if (undosFirst == null) undosFirst = undosLast = edit; else { undosLast.next = edit; edit.prev = undosLast; undosLast = edit; } redosFirst = null; undoCount++; while (undoCount > limit) { undoCount--; if (undosFirst == undosLast) undosFirst = undosLast = null; else { undosFirst.next.prev = null; undosFirst = undosFirst.next; } } }