All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.dragome.render.html.HTMLTemplateLoadingStrategy Maven / Gradle / Ivy

There is a newer version: 0.96-beta4
Show newest version
/*
 * Copyright (c) 2011-2014 Fernando Petrola
 *
 * Licensed 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 com.dragome.render.html;

import org.w3c.dom.Element;

import com.dragome.guia.GuiaServiceLocator;
import com.dragome.render.html.renderers.AbstractHTMLComponentRenderer;
import com.dragome.services.WebServiceLocator;
import com.dragome.templates.interfaces.Template;
import com.dragome.templates.interfaces.TemplateLoadingStrategy;

public class HTMLTemplateLoadingStrategy implements TemplateLoadingStrategy
{
	protected String templateContent;
	private int templateNumber= 0;

	public HTMLTemplateLoadingStrategy()
	{
	}

	public Element getContainerElement()
	{
		return (Element) (WebServiceLocator.getInstance().getDomHandler().getDocument().getElementsByTagName("body").item(0));
	}

	public void loadMainTemplate(String templateName)
	{
		templateContent= HtmlTemplateHelper.getHtmlPart(templateName + ".html", null);
	}

	public Template loadTemplateCloned(String templateName, String aContainerId)
	{
		Template template= loadTemplate(templateName, aContainerId);
		return GuiaServiceLocator.getInstance().getTemplateHandler().clone(template);
	}
	
	public Template loadTemplate(String templateName, String aContainerId)
	{
		String templateContent= HtmlTemplateHelper.getHtmlPart(templateName + ".html", aContainerId);
		return createTemplateFromHtml(templateContent);
	}

	public Template createTemplateFromHtml(String templateContent)
    {
	    Element element= WebServiceLocator.getInstance().getDomHandler().getDocument().createElement("div");
		element.setAttribute("class", "dragome-hide");

		Element childElement= WebServiceLocator.getInstance().getDomHandler().getDocument().createElement("div");
		element.appendChild(childElement);

		getContainerElement().getParentNode().appendChild(element);
		AbstractHTMLComponentRenderer.setElementInnerHTML(childElement, templateContent);

		String aTemplateName= "loaded-template-" + templateNumber++;
		childElement.setAttribute("data-template", aTemplateName);
		childElement.setAttribute("id", aTemplateName);

		Template createTemplate= GuiaServiceLocator.getInstance().getTemplateManager().createTemplate(aTemplateName);
		//	Template createTemplate= new HTMLTemplateFactory().createTemplate(element, aTemplateName);
		return createTemplate;
    }

	public void hideContainer()
	{
		getContainerElement().setAttribute("style", "display:none;");
	}

	public void setupContainer()
	{
		AbstractHTMLComponentRenderer.setElementInnerHTML(getContainerElement(), templateContent);
	}

	public void showContainer()
	{
		getContainerElement().setAttribute("style", "display:block;");
	}

	public Template getMainTemplate()
	{
		getContainerElement().setAttribute("data-template", "body");
		getContainerElement().setAttribute("id", "body");
		return GuiaServiceLocator.getInstance().getTemplateManager().createTemplate("body");
	}

	public Template loadTemplate(String templateName)
	{
	    return loadTemplate(templateName, "");
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy