package org.kisst.gft.admin.status; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.kisst.gft.GftContainer; import org.kisst.gft.GftWrapper; import org.kisst.gft.admin.BaseServlet; public abstract class StatusItem extends BaseServlet { private final String name; private final String description; private String timestamp; protected int problemCount; protected StatusItem(GftWrapper wrapper, String name) { this(wrapper, name, name); } protected StatusItem(GftWrapper wrapper, String name, String description) { super(wrapper); this.name=name; this.description=description; } public String getName() { return name; } public String getDescription() { return description; } public String getLastUpdated() { return timestamp; } abstract public String getMessage(); public String getUrl() { return this.getClass().getSimpleName(); } public String getColor() { if (problemCount==0) return "white"; else if (problemCount<0) return "lightgrey"; else return "orange"; } public void writeDetails(PrintWriter out) { out.append("<h1>"+description+"</h1>\n"); } public void refresh() { this.timestamp=new Date().toString(); } public int getProblemCount() { return problemCount; } @Override public void handle(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (getUser(request, response)==null) return; response.setContentType("text/html;charset=utf-8"); //response.setStatus(HttpServletResponse.SC_OK); PrintWriter out = response.getWriter(); writeDetails(out); } }