package edu.isi.karma.controller.update;
import java.io.PrintWriter;
import org.json.JSONArray;
import org.json.JSONObject;
import edu.isi.karma.controller.command.selection.SuperSelection;
import edu.isi.karma.rep.Worksheet;
import edu.isi.karma.rep.Workspace;
import edu.isi.karma.view.VWorkspace;
public class WorksheetSuperSelectionListUpdate extends AbstractUpdate {
private String worksheetId;
public WorksheetSuperSelectionListUpdate(String worksheetId) {
this.worksheetId = worksheetId;
}
public enum JsonKeys {
updateType, worksheetId, selectionList
}
@Override
public void generateJson(String prefix, PrintWriter pw,
VWorkspace vWorkspace) {
Workspace workspace = vWorkspace.getWorkspace();
Worksheet worksheet = workspace.getWorksheet(worksheetId);
JSONObject outputObject = new JSONObject();
JSONArray array = new JSONArray();
for (SuperSelection sel : worksheet.getSuperSelectionManager().getAllDefinedSelection()) {
JSONObject obj = new JSONObject();
obj.put("name", sel.getName());
obj.put("status", sel.refreshStatus().name());
array.put(obj);
}
outputObject.put(JsonKeys.updateType.name(),
"WorksheetSuperSelectionListUpdate");
outputObject.put(JsonKeys.worksheetId.name(),
worksheetId);
outputObject.put(JsonKeys.selectionList.name(),
array.toString());
pw.println(outputObject.toString());
}
public boolean equals(Object o) {
if (o instanceof WorksheetSuperSelectionListUpdate) {
WorksheetSuperSelectionListUpdate t = (WorksheetSuperSelectionListUpdate)o;
return t.worksheetId.equals(worksheetId);
}
return false;
}
@Override
public int hashCode() {
return this.worksheetId != null ? this.worksheetId.hashCode() : 0;
}
}