package examples.htmlkona;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import weblogic.html.*;
import weblogic.common.*;
/**
* This servlet uses htmlKona forms to collect user input.
*
* @author Copyright (c) 1996-98 by WebLogic, Inc. All Rights Reserved.
* @author Copyright (c) 1999 by BEA WebXpress, Inc. All Rights Reserved.
*/
public class InputWithForms extends HttpServlet {
private boolean isempty = true;
public synchronized void service(HttpServletRequest req, HttpServletResponse res)
throws IOException
{
try {
res.setStatus(HttpServletResponse.SC_OK);
res.setContentType("text/html");
FormElement fe = getForm1(req);
ServletPage hp = new ServletPage();
hp.getHead()
.addElement(new TitleElement("Input with Forms"));
hp.getBodyElement()
.setAttribute(BodyElement.bgColor, HtmlColor.white);
hp.getBody()
.addElement(MarkupElement.HorizontalLine);
if (isempty)
hp.getBody()
.addElement(new HeadingElement("Type something and click the button", 2)
.asCenteredElement())
.addElement(fe.asCenteredElement());
else
hp.getBody()
.addElement(new HeadingElement("Type something again and click the button", 2)
.asCenteredElement())
.addElement(fe.asCenteredElement())
.addElement(MarkupElement.BeginParagraph)
.addElement(getForm2().asCenteredElement());
hp.getBody()
.addElement(MarkupElement.HorizontalLine);
hp.output(res.getOutputStream());
} catch (Exception e) {
defaults.showException(e, res.getOutputStream());
}
}
public FormElement getForm1(HttpServletRequest req) {
String numstr = (String)req.getParameter("numitems");
int numitems = 0;
try {numitems = Integer.valueOf(numstr).intValue();} catch (Exception e) {;}
if (numstr != null)
System.out.println("numitems now is = " + Integer.parseInt(numstr));
SelectElement se = new SelectElement("selectlist");
for (int i = 0; i < numitems; i++) {
String itemval = (String)req.getParameter("item" + i);
if (itemval != null)
se.addElement(itemval, itemval);
}
String newitem = (String)req.getParameter("textfield");
if (newitem != null && !newitem.equals(""))
se.addElement(newitem, newitem)
.selectElementByText(newitem);
FormElement form = new FormElement(defaults.prefix() + "InputWithForms", "POST");
TableElement tab = new TableElement();
form.addElement(tab);
tab.addElement(new TableRowElement()
.addElement(new InputElement("SUBMIT", FieldType.submit)
.setValue("Add new item"))
.addElement(new InputElement("textfield")
.setSize(20).setMaxlen(20)));
form.addElement(new InputElement("numitems", FieldType.hidden)
.setValue(Integer.toString(se.getNumElements())));
for (int i = 0; i < se.getNumElements(); i++)
form.addElement(new InputElement("item" + i, FieldType.hidden)
.setValue(se.getElementAt(i).getValue()));
if (se.getNumElements() > 0) {
tab.addElement(new TableRowElement()
.addElement(new TableHeadingElement("Items added:")
.setColSpan(2)
.setAlign(AlignType.center)));
isempty = false;
HtmlContainer hc = new HtmlContainer();
for (int i = 0; i < se.getNumElements(); i++) {
String str = se.getElementAt(i).getValue();
hc.addElement(new InputElement("radioitems", FieldType.radio, str).setValue(str))
.addElement(MarkupElement.Break);
}
tab.addElement(new TableRowElement()
.addElement(se)
.addElement(hc));
} else {
tab.addElement(new TableRowElement()
.addElement(new TableHeadingElement("No items present")
.setColSpan(2)
.setAlign(AlignType.center)));
}
return form;
}
public FormElement getForm2() {
FormElement form = new FormElement(defaults.prefix() + "InputWithForms", "POST");
form.addElement(new InputElement("numitems", FieldType.hidden).setValue(0))
.addElement(new InputElement("SUBMIT", FieldType.submit).setValue("Clear Items"));
return form;
}
}