package org.jblooming.waf.html.input; import org.jblooming.ApplicationException; import org.jblooming.persistence.exceptions.PersistenceException; import org.jblooming.utilities.file.FileUtilities; import org.jblooming.waf.ActionController; import org.jblooming.waf.constants.Commands; import org.jblooming.waf.exceptions.ActionException; import org.jblooming.waf.html.container.Container; import org.jblooming.waf.html.container.ButtonBar; import org.jblooming.waf.html.core.JspHelper; import org.jblooming.waf.html.state.Form; import org.jblooming.waf.view.PageSeed; import org.jblooming.waf.view.PageState; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.PageContext; import java.io.IOException; public class TextFileEditor extends JspHelper{ public static final String init = TextFileEditor.class.getName(); public static final String DRAW = "DRAW"; public static final String SAVE = "SAVE"; public Form form; public ActionController controller; public String fileName = "openlab.txt"; public PageSeed backToPage; public Container container; public String name; public String label; public int rows=20; public int cols=80; public ButtonBar bb = new ButtonBar(); public TextFileEditor(String fileName, PageSeed backToPage, PageState pageState) { this.fileName=fileName; this.urlToInclude = "/commons/layout/partTextFileEditor.jsp"; this.backToPage=backToPage; } public void toHtml(PageContext pageContext) { pageContext.getRequest().setAttribute(ACTION, DRAW); super.toHtml(pageContext); } public String getId() { return id; } public String getDiscriminator() { return getId(); } public PageState perform(HttpServletRequest request, HttpServletResponse response) throws ApplicationException, IOException, PersistenceException, ActionException, org.jblooming.security.SecurityException { PageState pageState = PageState.getCurrentPageState(); final String command = pageState.getCommand(); if (Commands.SAVE.equals(command)) { save(pageState); } else { edit(pageState); } if (controller!=null) controller.perform( request, response); return pageState; } private void edit(PageState pageState) { String value; try { value = FileUtilities.readTextFile(fileName); } catch (IOException e) { value=""; } pageState.addClientEntry(name,value); } private void save(PageState pageState) { String value=pageState.getEntry(name).stringValueNullIfEmpty(); if (value!=null){ FileUtilities.writeToFile(fileName,value,"UTF-8"); //was in old times value.replace('\\','/'), who knows why ? ppolsinelli@open-lab.com } } }