package org.eclipse.iee.editor.core.pad.table;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.iee.core.document.writer.IPadWriter;
import org.eclipse.iee.pad.formula.InputValidation;
import org.osgi.service.component.annotations.Component;
import com.google.gson.Gson;
@Component
public class TablePadWriter implements IPadWriter<TablePart> {
@Override
public String getType() {
return "TableInput";
}
@Override
public String getValue(TablePart part) {
StringBuilder sb = new StringBuilder("Matrix=");
sb.append("[");
for (int i = 0; i < part.getRowCount(); i++) {
if (i > 0) {
sb.append(", ");
}
sb.append("[");
for (int j = 0; j < part.getColumnCount(); j++) {
if (j > 0) {
sb.append(", ");
}
sb.append(part.getCell(i, j).getValue());
}
sb.append("]");
}
sb.append("]");
return sb.toString();
}
@Override
public Map<String, String> getParams(TablePart part) {
Map<String, String> params = new HashMap<>();
List<TableColumn> columns = part.getColumns();
InputValidation[] validation = new InputValidation[columns.size()];
String[] header = new String[columns.size()];
for (int i = 0; i < columns.size(); i++) {
validation[i] = columns.get(i).getValidation();
header[i] = columns.get(i).getHeader();
}
params.put("validation", new Gson().toJson(validation));
params.put("header", new Gson().toJson(header));
return params;
}
}