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

net.bootsfaces.component.scrollUp.ScrollUpRenderer Maven / Gradle / Ivy

There is a newer version: 2.0.1
Show newest version
/**
 *  Copyright 2014-2017 Riccardo Massera (TheCoder4.Eu) and Stephan Rauh (http://www.beyondjava.net).
 *  
 *  This file is part of BootsFaces.
 *  
* 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 net.bootsfaces.component.scrollUp;

import java.io.IOException;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.render.FacesRenderer;

import net.bootsfaces.render.CoreRenderer;

/** This class generates the HTML code of <b:scrollUp />. */
@FacesRenderer(componentFamily = "net.bootsfaces.component", rendererType = "net.bootsfaces.component.scrollUp.ScrollUp")
public class ScrollUpRenderer extends CoreRenderer {
	
	/**
	 * This methods generates the HTML code of the current b:scrollUp.
	 * @param context the FacesContext.
	 * @param component the current b:scrollUp.
	 * @throws IOException thrown if something goes wrong when writing the HTML code.
	 */  
	@Override
	public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
		// do nothing
	}

	@Override
	public void encodeEnd(FacesContext context, UIComponent component) throws IOException {
		if (!component.isRendered()) {
	        return;
	    }
		ScrollUp scrollUp = (ScrollUp) component;
		ResponseWriter rw = context.getResponseWriter();
		String clientId = scrollUp.getClientId();
		
		// mixed params (can be boolean or string)
		String scrollTitle = scrollUp.getTitle();
		if(scrollTitle != null && !"false".equalsIgnoreCase(scrollTitle)) scrollTitle = "'" + scrollTitle + "'";
		String scrollTrigger = scrollUp.getTrigger();
		if(scrollTrigger != null && !"false".equalsIgnoreCase(scrollTrigger)) scrollTrigger = "'" + scrollTrigger + "'";
		String scrollTarget =  scrollUp.getTarget();
		if(scrollTarget != null && !"false".equalsIgnoreCase(scrollTarget)) scrollTarget = "'" + scrollTarget + "'";
		String scrollOverlay = scrollUp.getOverlay();
		if(scrollOverlay != null && !"false".equalsIgnoreCase(scrollOverlay)) scrollOverlay = "'" + scrollOverlay + "'";
		
		rw.startElement("script", scrollUp);
		rw.writeAttribute("id", clientId, "id");
		rw.writeText("" + 
					 "$(function() {" +
					 "	$.scrollUp({ " +
					 (scrollUp.getName() != null ? " scrollName: '" + scrollUp.getName() + "', ": "") +
					 (scrollUp.getDistance() != 0 ? " scrollDistance: " + scrollUp.getDistance() + ", ": "") +
					 (scrollUp.getFrom() != null ? " scrollFrom: '" + scrollUp.getFrom() + "', ": "") +
					 (scrollUp.getSpeed() != 0 ? " scrollSpeed: " + scrollUp.getSpeed() + ", ": "") +
					 (scrollUp.getEasing() != null ? " easingType: '" + scrollUp.getEasing() + "', ": "") +
					 (scrollUp.getAnimation() != null ? " animation: '" + scrollUp.getAnimation() + "', ": "") +
					 (scrollUp.getAnimationSpeed() != 0 ? " animationSpeed: " + scrollUp.getAnimationSpeed() + ", ": "") +
					 (scrollUp.getText() != null ? " scrollText: '" + scrollUp.getText() + "', ": "") +
					 (scrollTitle!= null ? " scrollTitle: " + scrollTitle + ", ": "") +
					 (scrollUp.getImage() != null ? " scrollImg: " + scrollUp.getImage() + ", ": "") +
					 (scrollTrigger != null ? " scrollTrigger: " + scrollTrigger + ", ": "") +
					 (scrollTarget != null ? " scrollTarget: " + scrollTarget + ", ": "") +
					 (scrollOverlay != null ? " activeOverlay: " + scrollOverlay + ", ": "") +
					 "		zIndex: 2147483647 " +	
					 "	});" +  
					 "});", null);
		rw.endElement("script");
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy