package command; public class DeleteCommand implements Command { private final TextEditor editor; private final int start; private final int length; private String deletedText; // saved for undo public DeleteCommand(TextEditor editor, int start, int length) { this.editor = editor; this.start = start; this.length = length; } @Override public void execute() { deletedText = editor.getText().substring(start, start + length); editor.deleteText(start, length); } @Override public void undo() { editor.insertText(deletedText, start); } @Override public String getDescription() { return "Delete " + length + " chars at " + start; } }