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

net.wicp.tams.component.components.NumberBox Maven / Gradle / Ivy

There is a newer version: 2.0.0
Show newest version
package net.wicp.tams.component.components;

import org.apache.tapestry5.BindingConstants;
import org.apache.tapestry5.annotations.Import;
import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.json.JSONObject;

/*****
 * 数字输入框
 * 
 * @author Administrator
 * 
 */
@Import(stack = "easyuistack")
public class NumberBox extends ValidateBox {
	/***
	 * 定义是否可用
	 */
	@Parameter(required = false, defaultPrefix = BindingConstants.LITERAL)
	private boolean disabled;

	/***
	 * 最小值
	 */
	@Parameter(required = false, defaultPrefix = BindingConstants.LITERAL)
	private int min;

	/***
	 * 最大值
	 */
	@Parameter(required = false, defaultPrefix = BindingConstants.LITERAL)
	private int max;

	/***
	 * 精度
	 */
	@Parameter(required = false, defaultPrefix = BindingConstants.LITERAL)
	private int precision;

	/****
	 * 整数和小数部分的分隔字符
	 */
	@Parameter(required = false, value = ".", defaultPrefix = BindingConstants.LITERAL)
	private String decimalSeparator;

	/****
	 * 成千上百万的分组分隔符
	 */
	@Parameter(required = false, value = ",", defaultPrefix = BindingConstants.LITERAL)
	private String groupSeparator;

	/****
	 * 前缀
	 */
	@Parameter(required = false, defaultPrefix = BindingConstants.LITERAL)
	private String prefix;

	/****
	 * 后缀
	 */
	@Parameter(required = false, defaultPrefix = BindingConstants.LITERAL)
	private String suffix;

	/***
	 * 过滤键盘按下事件,返回true为接受,false拒绝
	 */
	@Parameter(required = false, defaultPrefix = BindingConstants.LITERAL)
	private String filter;

	/***
	 * 解析一个字符串放到输入框(经测试有问题,放弃此函数)
	 */
	// @Parameter(required = false, defaultPrefix = BindingConstants.LITERAL)
	// private String parser;

	/***
	 * 格式化数据框里的值,然后显示
	 */
	@Parameter(required = false, defaultPrefix = BindingConstants.LITERAL)
	private String formatter;

	@Override
	protected void packParms(JSONObject spec) {
		super.packParms(spec);
		spec.put("class", "numberbox");
		spec.put("ishtml", false);
		JSONObject params = spec.getJSONObject("params");
		if (resources.isBound("disabled"))
			params.put("disabled", disabled);
		if (resources.isBound("min"))
			params.put("min", min);
		if (resources.isBound("max"))
			params.put("max", max);
		if (resources.isBound("precision") && precision >= 0)// 精度大于0才可以
			params.put("precision", precision);
		if (resources.isBound("decimalSeparator"))
			params.put("decimalSeparator", decimalSeparator);
		if (resources.isBound("groupSeparator"))
			params.put("groupSeparator", groupSeparator);
		if (resources.isBound("prefix"))
			params.put("prefix", prefix);
		if (resources.isBound("suffix"))
			params.put("suffix", suffix);

		if (resources.isBound("filter"))
			spec.put("filter", filter);
		// if (resources.isBound("parser"))
		// spec.put("parser", parser);
		if (resources.isBound("formatter"))
			spec.put("formatter", formatter);

	}

	boolean beforeRenderBody() {
		return false;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy