/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.apache.aries.samples.blog.web; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServletRequest; import org.apache.aries.samples.blog.api.BlogAuthor; import org.apache.aries.samples.blog.api.BloggingService; import org.apache.aries.samples.blog.web.util.FormServlet; import org.apache.aries.samples.blog.web.util.FormatChecker; import org.apache.aries.samples.blog.web.util.HTMLOutput; import org.apache.aries.samples.blog.web.util.JNDIHelper; public class EditAuthorForm extends FormServlet { private static final long serialVersionUID = 4996935653835900015L; public static final String ID = "author"; public EditAuthorForm() { super(ID); } @Override protected void writeCustomHeaderContent(HttpServletRequest req, PrintWriter out) { HTMLOutput.writeDojoUses(out, "dijit.form.TextBox", "dijit.form.DateTextBox", "dijit.form.Textarea"); } @Override protected String getPageTitle(HttpServletRequest req) throws IOException { String pageTitle = "Create Author"; BloggingService service = JNDIHelper.getBloggingService(); String email = getEmail(req); if (email != null && !!!"".equals(email)) { BlogAuthor author = service.getBlogAuthor(email); if (author != null) { pageTitle = "Update " + author.getName() + "'s profile"; } } return pageTitle; } private String getEmail(HttpServletRequest req) { String email = retrieveOrEmpty(req, "email"); if ("".equals(email)) { email = req.getParameter("email"); } if(FormatChecker.isValidEmail(email)) return email; else return null; } @Override protected void writeForm(HttpServletRequest req, PrintWriter out) throws IOException { String name = retrieveOrEmpty(req, "name"); String nickName = retrieveOrEmpty(req, "nickName"); String bio = retrieveOrEmpty(req, "bio"); String dob = retrieveOrEmpty(req, "dob"); String email = getEmail(req); BloggingService service = JNDIHelper.getBloggingService(); if (email != null && !!!"".equals(email)) { BlogAuthor author = service.getBlogAuthor(email); if ("".equals(name)) name = author.getFullName(); if ("".equals(nickName)) nickName = author.getName(); if ("".equals(bio)) bio = author.getBio(); if ("".equals(dob)) dob = author.getDateOfBirth(); } else { email = ""; } out.println("<form method=\"get\" action=\"EditAuthor\">"); out.print("<div class=\"textEntry\"><label>Name <input dojoType=\"dijit.form.TextBox\" type=\"text\" name=\"name\" value=\""); out.print(name); out.println("\"/></label></div>"); out.print("<div class=\"textEntry\"><label>Nickname <input dojoType=\"dijit.form.TextBox\" type=\"text\" name=\"nickName\" value=\""); out.print(nickName); out.println("\"/></label></div>"); out.print("<div class=\"textEntry\"><label>Email <input dojoType=\"dijit.form.TextBox\" type=\"text\" name=\"email\" value=\""); out.print(email); out.println("\"/></label></div>"); out.print("<div class=\"textEntry\"><label>Date of Birth <input dojoType=\"dijit.form.DateTextBox\" type=\"text\" name=\"dob\" required=\"true\" value=\""); out.print(dob); out.println("\"/></label></div>"); out.print("<div class=\"textEntry\"><label>Bio <textarea dojoType=\"dijit.form.Textarea\" style=\"width:300px\" name=\"bio\">"); out.print(bio); out.println("</textarea></label></div>"); out.println("<input class=\"submit\" type=\"submit\" value=\"Submit\" name=\"Submit\"/>"); out.println("</form>"); } }