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

org.wicketstuff.jwicket.ui.effect.Scale Maven / Gradle / Ivy

package org.wicketstuff.jwicket.ui.effect;


import org.wicketstuff.jwicket.JQueryJavascriptResourceReference;


public class Scale extends AbstractJqueryUiEffect {

	private static final long serialVersionUID = 1L;

	public static final JQueryJavascriptResourceReference jQueryUiEffectsScaleJs = new JQueryJavascriptResourceReference(Scale.class, "jquery.effects.scale.min.js");

	public Scale() {
		super(jQueryUiEffectsScaleJs);
	}


	
	@Override
	String getEffectName() {
		return "scale";
	}



	private String direction = null;
	
	/**	Set the direction
	 * 
	 *	@param value the direction
	 *	@return this object
	 */
	public Scale setDirection(final ScaleDirection value) {
		if (value == null)
			direction = null;
		else
			direction = value.getDirection();
		return this;
	}


	private String from = null;
	
	/**	Set the start size
	 * 
	 *	@param height the start height or a number < 0 for default value
	 *	@param width the start width or a number < 0 for default value
	 *	@return this object
	 */
	public Scale setFrom(final int height, final int width) {
		if (height < 0 || width < 0)
			from = null;
		else {
			from = "{height:" + height + ",width:" + width + "}";
		}
		return this;
	}



	private String percent = null;
	
	/**	Set the percentage to scale to
	 * 
	 *	@param value is the percentage
	 *	@return this object
	 */
	public Scale setPercen(final int value) {
		if (value <= 0)
			percent = null;
		else
			percent = String.valueOf(value);
		return this;
	}



	private String scale = null;
	
	/**	Set the element to scale
	 * 
	 *	@param value the element
	 *	@return this object
	 */
	public Scale setElement(final ScaleElement value) {
		if (value == null)
			scale = null;
		else
			scale = value.getElement();
		return this;
	}



	@Override
	void appendOptions(final StringBuilder jsString) {
		if (direction != null || from != null || percent != null || scale != null) {
			boolean firstOption = true;
			jsString.append(",{");
			if (direction != null) {
				jsString.append("direction:'");
				jsString.append(direction);
				jsString.append("'");
				firstOption = false;
			}
			if (from != null) {
				if (!firstOption)
					jsString.append(",");
				jsString.append("from:");
				jsString.append(from);
				firstOption = false;
			}
			if (percent != null) {
				if (!firstOption)
					jsString.append(",");
				jsString.append("percent:");
				jsString.append(percent);
				firstOption = false;
			}
			if (scale != null) {
				if (!firstOption)
					jsString.append(",");
				jsString.append("scale:'");
				jsString.append(scale);
				jsString.append("'");
			}
			jsString.append("}");
		}
	}




	public enum ScaleDirection {
		
		DEFAULT(null),
		BOTH("both"),
		VERTICAL("vertical"),
		HORIZONTAL("horizontal");

		private final String direction;

		private ScaleDirection(final String direction) {
			this.direction = direction;
		}

		public String getDirection() {
			return direction;
		}

		public String toString() {
			return direction==null?"default":direction;
		}
	}


	public enum ScaleElement {
		
		DEFAULT(null),
		BOTH("both"),
		BOX("box"),
		CONTENT("content");

		private final String direction;

		private ScaleElement(final String direction) {
			this.direction = direction;
		}

		public String getElement() {
			return direction;
		}

		public String toString() {
			return direction==null?"default":direction;
		}
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy