public List<ICommand> getCommandsFromWorksheetId(String worksheetId) { List<ICommand> commands = new ArrayList<>(); if (worksheetId == null) { worksheetId = IMPORT_COMMANDS; } CommandTagListMap map = historyWorksheetMap.get(worksheetId); if (map != null) { commands.addAll(map.getCommands()); } return commands; }
public void removeCommandFromHistory(List<ICommand> commands) { for(Map.Entry<String, CommandTagListMap> entry : historyWorksheetMap.entrySet()) { entry.getValue().removeCommandFromHistory(commands); } }
@Override public WorksheetCommandHistory clone() { WorksheetCommandHistory worksheetCommandHistory = new WorksheetCommandHistory(); for (String worksheetId : getAllWorksheetId()) { worksheetCommandHistory.historyWorksheetMap.put(worksheetId, new CommandTagListMap()); } for (ICommand command : getAllCommands()) { worksheetCommandHistory.insertCommandToHistory(command); } for (String worksheetId : getAllWorksheetId()) { CommandTagListMap newMap = worksheetCommandHistory.historyWorksheetMap.get(worksheetId); CommandTagListMap oldMap = this.historyWorksheetMap.get(worksheetId); if (oldMap != null && newMap != null) { if (oldMap.currentCommand != null) { newMap.currentCommand = new RedoCommandObject(oldMap.currentCommand.getCommand(), oldMap.currentCommand.getConsolidatedCommand()); } if (oldMap.lastRedoCommand != null) { newMap.lastRedoCommand = new RedoCommandObject(oldMap.lastRedoCommand.getCommand(), oldMap.lastRedoCommand.getConsolidatedCommand()); } newMap.stale = oldMap.stale; } } return worksheetCommandHistory; } }
public List<ICommand> getCommandsAfterCommand(ICommand command, ICommand.CommandTag commandTag) { List<ICommand> commands = new ArrayList<>(); String worksheetId = getWorksheetId(command); if (worksheetId == null) { worksheetId = IMPORT_COMMANDS; } CommandTagListMap map = historyWorksheetMap.get(worksheetId); if (map != null) { List<ICommand> tagCommands = map.getCommands(commandTag); boolean start = false; for(ICommand cmd : tagCommands) { if(cmd.equals(command)) { start = true; continue; } if(start) commands.add(cmd); } commands.addAll(map.getCommands(commandTag)); } return commands; }
public WorksheetCommandHistory() { historyWorksheetMap.put(IMPORT_COMMANDS, new CommandTagListMap()); }
public void setLastRedoCommandObject(RedoCommandObject command) { String worksheetId = getWorksheetId(command.getCommand()); if (worksheetId == null) { worksheetId = IMPORT_COMMANDS; } CommandTagListMap commandTagListMap = historyWorksheetMap.get(worksheetId); if (commandTagListMap == null) { commandTagListMap = new CommandTagListMap(); historyWorksheetMap.put(worksheetId, commandTagListMap); } if (commandTagListMap.lastRedoCommand == null) { commandTagListMap.lastRedoCommand = command; } }
public List<ICommand> getAllCommands() { List<ICommand> commands = new ArrayList<>(); for (Map.Entry<String, CommandTagListMap> entry : historyWorksheetMap.entrySet()) { commands.addAll(entry.getValue().getCommands()); } return commands; }
public void setCurrentCommand(ICommand command, Pair<ICommand,Object> consolidatedCommand) { String worksheetId = getWorksheetId(command); if (worksheetId == null) { worksheetId = IMPORT_COMMANDS; } CommandTagListMap commandTagListMap = historyWorksheetMap.get(worksheetId); if (commandTagListMap == null) { commandTagListMap = new CommandTagListMap(); historyWorksheetMap.put(worksheetId, commandTagListMap); } commandTagListMap.currentCommand = new RedoCommandObject(command, consolidatedCommand); }
public void insertCommandToHistory(ICommand command) { String worksheetId = getWorksheetId(command); if (worksheetId == null) { worksheetId = IMPORT_COMMANDS; } CommandTagListMap commandTagListMap = historyWorksheetMap.get(worksheetId); if (commandTagListMap == null) { commandTagListMap = new CommandTagListMap(); historyWorksheetMap.put(worksheetId, commandTagListMap); } commandTagListMap.addCommandToHistory(command); }
public List<ICommand> getCommandsFromWorksheetIdAndCommandTag(String worksheetId, ICommand.CommandTag commandTag) { List<ICommand> commands = new ArrayList<>(); if (worksheetId == null) { worksheetId = IMPORT_COMMANDS; } CommandTagListMap map = historyWorksheetMap.get(worksheetId); if (map != null) { commands.addAll(map.getCommands(commandTag)); } return commands; }