package edu.isi.karma.controller.command.worksheet; import org.json.JSONArray; import edu.isi.karma.controller.command.CommandException; import edu.isi.karma.controller.command.CommandType; import edu.isi.karma.controller.command.WorksheetSelectionCommand; import edu.isi.karma.controller.command.selection.SuperSelection; import edu.isi.karma.controller.update.AlignmentSVGVisualizationUpdate; import edu.isi.karma.controller.update.RegenerateWorksheetUpdate; import edu.isi.karma.controller.update.SemanticTypesUpdate; import edu.isi.karma.controller.update.UpdateContainer; import edu.isi.karma.controller.update.WorksheetCleaningUpdate; import edu.isi.karma.controller.update.WorksheetDataUpdate; import edu.isi.karma.controller.update.WorksheetHeadersUpdate; import edu.isi.karma.controller.update.WorksheetListUpdate; import edu.isi.karma.controller.update.WorksheetUpdateFactory; import edu.isi.karma.rep.Workspace; public class RefreshWorksheetCommand extends WorksheetSelectionCommand { private JSONArray updates; protected RefreshWorksheetCommand(String id, String model, String worksheetId, JSONArray updates, String selectionId) { super(id, model, worksheetId, selectionId); this.updates = updates; } @Override public String getCommandName() { return this.getClass().getSimpleName(); } @Override public String getTitle() { return "Refresh Worksheet"; } @Override public String getDescription() { return null; } @Override public CommandType getCommandType() { return CommandType.notInHistory; } @Override public UpdateContainer doIt(Workspace workspace) throws CommandException { UpdateContainer uc = new UpdateContainer(); SuperSelection sel = this.getSuperSelection(workspace); for(int i=0; i<updates.length(); i++) { String update = updates.getString(i); switch(update) { case "headers": uc.add(new WorksheetHeadersUpdate(worksheetId, sel)); break; case "list": uc.add(new WorksheetListUpdate()); break; case "data": uc.add(new WorksheetDataUpdate(worksheetId, sel)); break; case "alignment": { uc.add(new AlignmentSVGVisualizationUpdate(worksheetId)); break; } case "semanticTypes": { uc.add(new SemanticTypesUpdate(workspace.getWorksheet(worksheetId), worksheetId)); break; } case "regenerate": uc.add(new RegenerateWorksheetUpdate(worksheetId)); break; case "all": uc = WorksheetUpdateFactory.createRegenerateWorksheetUpdates(worksheetId, sel, workspace.getContextId()); break; case "cleaning": uc.add(new WorksheetCleaningUpdate(worksheetId, false, sel)); break; } } return uc; } @Override public UpdateContainer undoIt(Workspace workspace) { return null; } }