/* * $Id: HtmlBasedPage.java,v 1.11.2.1 2007/01/12 19:31:48 idegaweb Exp $ * Created on Created on 1.6.2004 by Tryggvi Larusson * * Copyright (C) 2001-2004 Idega hf. All Rights Reserved. * * This software is the proprietary information of Idega hf. * Use is subject to license terms. * */ package com.idega.builder.business; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import com.idega.exception.PageDoesNotExist; import com.idega.presentation.HtmlPage; import com.idega.presentation.IWContext; import com.idega.presentation.Page; /** * This class is handles a Builder Page of format HTML. * This class is responsible for reading the HTML page stream but the parsing of the * Html code and Region tags is handled by the class com.idega.presentation.HtmlPage. * * Last modified: $Date: 2007/01/12 19:31:48 $ by $Author: idegaweb $ * * @author <a href="mailto:tryggvil@idega.com">Tryggvi Larusson</a> * @version $Revision: 1.11.2.1 $ */ public class HtmlBasedPage extends CachedBuilderPage implements ComponentBasedPage{ private Page _populatedPage; /** * @param verify * @param key */ public HtmlBasedPage(String pageKey) { super(pageKey); setComponentBased(true); } /* (non-Javadoc) * @see com.idega.builder.business.IBXMLPage#readPageStream(java.io.InputStream) */ protected void readPageStream(InputStream stream) throws PageDoesNotExist { //HtmlPage hPage = new HtmlPage(); //hPage.setResource(stream); try { InputStreamReader reader = new InputStreamReader(stream,"UTF-8");//,encoding); int bufferlength=1000; char[] buf = new char[bufferlength]; StringBuffer sbuffer = new StringBuffer(); int read = reader.read(buf); while(read!=-1){ sbuffer.append(buf,0,read); read = reader.read(buf); } String html = sbuffer.toString(); this.setSourceFromString(html); reader.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /* (non-Javadoc) * @see com.idega.builder.business.IBXMLAble#setSourceFromString(java.lang.String) */ /* (non-Javadoc) * @see com.idega.builder.business.IBXMLPage#getPopulatedPage() */ public Page getPopulatedPage() { if(this._populatedPage==null){ HtmlPage hPage = new HtmlPage(); hPage.setHtml(this.getSourceAsString()); setPopulatedPage(hPage); } return this._populatedPage; } public void setPopulatedPage(Page page){ this._populatedPage=page; } public Page getNewPageCloned(){ return (Page) this.getPopulatedPage().clone(); } /** * Gets a new Page instanfce without any Builder checks. (not transformed for Builder Edit view) * @param iwc * @return */ public Page getNewPage(IWContext iwc){ return (Page) this.getPopulatedPage().clonePermissionChecked(iwc); } public Page getPage(IWContext iwc){ return getNewPage(iwc); } public UIComponent createComponent(FacesContext context){ IWContext iwc = IWContext.getIWContext(context); return getPage(iwc); } public void initializeEmptyPage(){ try { setSourceFromString("<html>\n<head>\n</head>\n<body>\n</body>\n</html>"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }