package com.team254.frc2015.web.handlers;
import com.team254.frc2015.Constants;
import com.team254.lib.util.ConstantsBase.Constant;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
public class ConstantsServlet extends HttpServlet {
private void buildPage(HttpServletResponse response) throws IOException {
Constants constants = new Constants();
response.setContentType("text/html");
response.setStatus(HttpServletResponse.SC_OK);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<form method='post'>");
out.println("<table cellspacing='5'>");
Collection<Constant> cs = constants.getConstants();
for (Constant c : cs) {
out.println("<tr>");
out.println("<td>(" + c.type + ")</td>");
out.println("<td>" + c.name + "</td>");
out.println("<td><input type='text' name='" + c.name + "' id='" + c.name + "' value='"
+ c.value + "'></td>");
out.println("</tr>");
}
out.println("</table>");
out.println("<input type='submit' value='Save'>");
out.println("<input type='reset' value='Reset'>");
out.println("</form>");
out.println("</body>");
out.println("</html>");
}
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
buildPage(response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Constants constants = new Constants();
for (String key : request.getParameterMap().keySet()) {
String value = request.getParameter(key);
Constant c = constants.getConstant(key);
if (c != null) {
if (double.class.equals(c.type) || Double.class.equals(c.type)) {
double v = Double.parseDouble(value);
constants.setConstant(key, v);
} else if (int.class.equals(c.type) || Integer.class.equals(c.type)) {
int v = Integer.parseInt(value);
constants.setConstant(key, v);
} else if (String.class.equals(c.type)) {
constants.setConstant(key, value);
}
}
}
constants.saveToFile();
buildPage(response);
}
}