FileDocCategorySizeDatePackage
ToolViewServlet.javaAPI DocExample3342Thu Apr 05 20:35:28 BST 2001None

ToolViewServlet

public class ToolViewServlet extends HttpServlet

Fields Summary
private Tool[]
tools
Constructors Summary
Methods Summary
public voiddoGet(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)

    res.setContentType("text/html");
    PrintWriter out = res.getWriter();

    // Create the DOM tree for the full document
    Template template = new Template();

    // Create the DOM Tree that contains the internal content
    ToolView toolview = new ToolView();

    // Get the prototype tool view record
    HTMLDivElement record = toolview.getElementRecord();

    // Get a reference to the insertion point for the tool list
    HTMLDivElement insertionPoint = template.getElementContent();
    Node insertionParent = insertionPoint.getParentNode();

    // Set the template title, deck, and desc
    // Pull the data from the toolview.html file
    String title = ((Text)toolview.getElementTitle().getFirstChild()).getData();
    String deck = ((Text)toolview.getElementDeck().getFirstChild()).getData();
    String desc = ((Text)toolview.getElementDesc().getFirstChild()).getData();
    template.setTitle(title);     // the page title
    template.setTextTitle(title); // the element marked "title"
    template.setTextDeck(deck);   // the element marked "deck"
    template.setTextDesc(desc);   // the element marked "desc"

    // Loop over the tools adding a record for each
    for (int i = 0; i < tools.length; i++) {
      Tool tool = tools[i];

      toolview.setTextToolName(tool.name);
      toolview.setTextToolComments(tool.comments);

      if (tool.isNewWithin(45)) {
        toolview.setTextToolStatus(" (New!) ");
      }
      else if (tool.isUpdatedWithin(45)) {
        toolview.setTextToolStatus(" (Updated!) ");
      }
      else {
        toolview.setTextToolStatus("");
      }

      HTMLAnchorElement link = toolview.getElementToolLink();
      link.setHref(tool.homeURL);
      Text linkText = toolview.createTextNode(tool.homeURL);
      link.replaceChild(linkText, link.getLastChild());

      // importNode() is DOM Level 2
      insertionParent.insertBefore(template.importNode(record, true), null);
    }

    // Remove insertion placeholder
    insertionParent.removeChild(insertionPoint);
    
    // Output the document
    DOMFormatter formatter = new DOMFormatter();  // can be heavily tweaked
    formatter.write(template, out);
  
public voidinit()

    // Load the tool data in our init for simplicity
    String toolsFile = getInitParameter("toolsFile"); // from web.xml
    if (toolsFile == null) {
      throw new ServletException(
        "A tools data file must be specified as the toolsFile init parameter");
    }
    log("Loading tools from " + toolsFile);
    try {
      tools = Tool.loadTools(toolsFile);
      if (tools.length == 0) {
        log("No tools found in " + toolsFile);
      }
      else {
        log(tools.length + " tools found in " + toolsFile);
      }
    }
    catch (Exception e) {
      throw new ServletException(e);
    }