就是一个下拉框,可以配置选取的范围,用today表示当期年份,输入简单表达式。
package com.cfcc.jaf.webx.component.jafdate.jafyear;
import javax.faces.component.UIComponentBase;
import javax.faces.context.FacesContext;

/** *//**
* 年份选择框组件
* @author qinjinwei
* $date 2007-9-12 上午09:52:28
*/
public class JafYear extends UIComponentBase ...{
public final String JAF_DATE_FAMILY = "jaf.jafdate";

public String getFamily() ...{
return JAF_DATE_FAMILY;
}

public Object saveState(FacesContext context) ...{
Object values[] = new Object[1];
values[0] = super.saveState(context);
return values;
}

public void restoreState(FacesContext context, Object state) ...{
Object values[] = (Object[]) state;
super.restoreState(context, values[0]);
}
}
package com.cfcc.jaf.webx.component.jafdate.jafyear;
import java.io.IOException;
import java.util.Date;
import java.util.Map;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.el.ValueBinding;
import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRenderer;

/** *//**
* 年份选择框组件renderer
* @author qinjinwei
* $date 2007-9-12 上午09:52:30
*/
public class JafYearRenderer extends HtmlRenderer ...{
public void encodeEnd(FacesContext facesContext, UIComponent component)
throws IOException ...{
String sfrom = (String) component.getAttributes().get("from");
String sto = (String) component.getAttributes().get("to");
int ifrom = convert(sfrom) + 1900;
int ito = convert(sto) + 1900;
ResponseWriter writer = facesContext.getResponseWriter();
String clientId = component.getClientId(facesContext);
ValueBinding vb = component.getValueBinding("value");
String syear = (String) vb.getValue(facesContext);
if(syear == null)
...{
syear = "" + (new Date().getYear() + 1900 );
}
int year = Integer.parseInt(syear);
writer.write("" + clientId + "" name="" + clientId + ""> ");
for (int i = ifrom; i <= ito; i++) ...{
writer.write("" + i + """);
if(year == i)
...{
writer.write(" selected ");
}
writer.write(">" + i );
writer.write("年 ");
}
writer.write("");
}
public void decode(FacesContext facesContext, UIComponent uiComponent)
...{
Map paramMap = facesContext.getExternalContext()
.getRequestParameterMap();
String clientId = uiComponent.getClientId(facesContext);
if(paramMap.containsKey(clientId))
...{
String value = (String) paramMap
.get(clientId);
ValueBinding vb = uiComponent.getValueBinding("value");
vb.setValue(facesContext, value);
System.out.println(clientId + " value is: " + value);
}
}

private int convert(String exp) ...{
boolean bflagt = false;
boolean bflags = false;
String ex = exp.replaceAll(" ", "");
if (ex.startsWith("today")) ...{
bflagt = true;
ex = ex.replaceAll("today", "");
}

if (ex.startsWith("+")) ...{
bflags = true;
}
ex = ex.substring(1, ex.length());
int rvalue = Integer.parseInt(ex);
if(!bflags)
...{
rvalue = - rvalue;
}
if (bflagt)
rvalue = rvalue + new Date().getYear();
return rvalue;
}
}
package com.cfcc.jaf.webx.component.jafdate.jafyear;
import javax.faces.application.Application;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
import javax.faces.webapp.UIComponentTag;

/** *//**
* 年份选择框组件的标签
* @author qinjinwei
* $date 2007-9-12 上午09:52:36
*/
public class JafYearTag extends UIComponentTag
...{
public String getComponentType()
...{
return "com.cfcc.jaf.webx.component.jafdate.jafyear.JafYear";
}
public String getRendererType()
...{
return "com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearRenderer";
}
private String from;
private String to;
private String value;

public String getValue() ...{
return value;
}

public void setValue(String value) ...{
this.value = value;
}

public String getFrom() ...{
return from;
}

public void setFrom(String from) ...{
this.from = from;
}

public String getTo() ...{
return to;
}

public void setTo(String to) ...{
this.to = to;
}

public void setProperties(UIComponent component) ...{
super.setProperties(component);
setStringProperty(component, "from", from);
setStringProperty(component, "to", to);
setStringProperty(component, "value", value);
}
private void setStringProperty(UIComponent component, String attrName,
String attrValue) ...{
if (attrValue == null)
return;
if (isValueReference(attrValue)) ...{
FacesContext context = FacesContext.getCurrentInstance();
Application application = context.getApplication();
ValueBinding binding = application.createValueBinding(attrValue);
component.setValueBinding(attrName, binding);
} else ...{
component.getAttributes().put(attrName, attrValue);
}
}

public void release() ...{
super.release();
from = null;
to = null;
value = null;
}
}
<tag>
<name>jafyear</name>
<tag-class>
com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearTag
</tag-class>
<body-content>empty</body-content>
<attribute>
<name>from</name>
<required>true</required>
</attribute>
<attribute>
<name>to</name>
<required>true</required>
</attribute>
<attribute>
<name>value</name>
<required>true</required>
</attribute>
</tag>
<renderer>
<component-family>jaf.jafdate</component-family>
<renderer-type>com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearRenderer</renderer-type>
<renderer-class>com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearRenderer</renderer-class>
</renderer>
<component>
<component-type>
com.cfcc.jaf.webx.component.jafdate.jafyear.JafYear
</component-type>
<component-class>
com.cfcc.jaf.webx.component.jafdate.jafyear.JafYear
</component-class>
</component>
就是一个下拉框,可以配置选取的范围,用today表示当期年份,输入简单表达式。
package com.cfcc.jaf.webx.component.jafdate.jafyear;
import javax.faces.component.UIComponentBase;
import javax.faces.context.FacesContext;

/** *//**
* 年份选择框组件
* @author qinjinwei
* $date 2007-9-12 上午09:52:28
*/
public class JafYear extends UIComponentBase ...{
public final String JAF_DATE_FAMILY = "jaf.jafdate";

public String getFamily() ...{
return JAF_DATE_FAMILY;
}

public Object saveState(FacesContext context) ...{
Object values[] = new Object[1];
values[0] = super.saveState(context);
return values;
}

public void restoreState(FacesContext context, Object state) ...{
Object values[] = (Object[]) state;
super.restoreState(context, values[0]);
}
}
package com.cfcc.jaf.webx.component.jafdate.jafyear;
import java.io.IOException;
import java.util.Date;
import java.util.Map;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.el.ValueBinding;
import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRenderer;

/** *//**
* 年份选择框组件renderer
* @author qinjinwei
* $date 2007-9-12 上午09:52:30
*/
public class JafYearRenderer extends HtmlRenderer ...{
public void encodeEnd(FacesContext facesContext, UIComponent component)
throws IOException ...{
String sfrom = (String) component.getAttributes().get("from");
String sto = (String) component.getAttributes().get("to");
int ifrom = convert(sfrom) + 1900;
int ito = convert(sto) + 1900;
ResponseWriter writer = facesContext.getResponseWriter();
String clientId = component.getClientId(facesContext);
ValueBinding vb = component.getValueBinding("value");
String syear = (String) vb.getValue(facesContext);
if(syear == null)
...{
syear = "" + (new Date().getYear() + 1900 );
}
int year = Integer.parseInt(syear);
writer.write("" + clientId + "" name="" + clientId + ""> ");
for (int i = ifrom; i <= ito; i++) ...{
writer.write("" + i + """);
if(year == i)
...{
writer.write(" selected ");
}
writer.write(">" + i );
writer.write("年 ");
}
writer.write("");
}
public void decode(FacesContext facesContext, UIComponent uiComponent)
...{
Map paramMap = facesContext.getExternalContext()
.getRequestParameterMap();
String clientId = uiComponent.getClientId(facesContext);
if(paramMap.containsKey(clientId))
...{
String value = (String) paramMap
.get(clientId);
ValueBinding vb = uiComponent.getValueBinding("value");
vb.setValue(facesContext, value);
System.out.println(clientId + " value is: " + value);
}
}

private int convert(String exp) ...{
boolean bflagt = false;
boolean bflags = false;
String ex = exp.replaceAll(" ", "");
if (ex.startsWith("today")) ...{
bflagt = true;
ex = ex.replaceAll("today", "");
}

if (ex.startsWith("+")) ...{
bflags = true;
}
ex = ex.substring(1, ex.length());
int rvalue = Integer.parseInt(ex);
if(!bflags)
...{
rvalue = - rvalue;
}
if (bflagt)
rvalue = rvalue + new Date().getYear();
return rvalue;
}
}
package com.cfcc.jaf.webx.component.jafdate.jafyear;
import javax.faces.application.Application;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
import javax.faces.webapp.UIComponentTag;

/** *//**
* 年份选择框组件的标签
* @author qinjinwei
* $date 2007-9-12 上午09:52:36
*/
public class JafYearTag extends UIComponentTag
...{
public String getComponentType()
...{
return "com.cfcc.jaf.webx.component.jafdate.jafyear.JafYear";
}
public String getRendererType()
...{
return "com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearRenderer";
}
private String from;
private String to;
private String value;

public String getValue() ...{
return value;
}

public void setValue(String value) ...{
this.value = value;
}

public String getFrom() ...{
return from;
}

public void setFrom(String from) ...{
this.from = from;
}

public String getTo() ...{
return to;
}

public void setTo(String to) ...{
this.to = to;
}

public void setProperties(UIComponent component) ...{
super.setProperties(component);
setStringProperty(component, "from", from);
setStringProperty(component, "to", to);
setStringProperty(component, "value", value);
}
private void setStringProperty(UIComponent component, String attrName,
String attrValue) ...{
if (attrValue == null)
return;
if (isValueReference(attrValue)) ...{
FacesContext context = FacesContext.getCurrentInstance();
Application application = context.getApplication();
ValueBinding binding = application.createValueBinding(attrValue);
component.setValueBinding(attrName, binding);
} else ...{
component.getAttributes().put(attrName, attrValue);
}
}

public void release() ...{
super.release();
from = null;
to = null;
value = null;
}
}
<tag>
<name>jafyear</name>
<tag-class>
com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearTag
</tag-class>
<body-content>empty</body-content>
<attribute>
<name>from</name>
<required>true</required>
</attribute>
<attribute>
<name>to</name>
<required>true</required>
</attribute>
<attribute>
<name>value</name>
<required>true</required>
</attribute>
</tag>
<renderer>
<component-family>jaf.jafdate</component-family>
<renderer-type>com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearRenderer</renderer-type>
<renderer-class>com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearRenderer</renderer-class>
</renderer>
<component>
<component-type>
com.cfcc.jaf.webx.component.jafdate.jafyear.JafYear
</component-type>
<component-class>
com.cfcc.jaf.webx.component.jafdate.jafyear.JafYear
</component-class>
</component>
就是一个下拉框,可以配置选取的范围,用today表示当期年份,输入简单表达式。
package com.cfcc.jaf.webx.component.jafdate.jafyear;
import javax.faces.component.UIComponentBase;
import javax.faces.context.FacesContext;

/** *//**
* 年份选择框组件
* @author qinjinwei
* $date 2007-9-12 上午09:52:28
*/
public class JafYear extends UIComponentBase ...{
public final String JAF_DATE_FAMILY = "jaf.jafdate";

public String getFamily() ...{
return JAF_DATE_FAMILY;
}

public Object saveState(FacesContext context) ...{
Object values[] = new Object[1];
values[0] = super.saveState(context);
return values;
}

public void restoreState(FacesContext context, Object state) ...{
Object values[] = (Object[]) state;
super.restoreState(context, values[0]);
}
}
package com.cfcc.jaf.webx.component.jafdate.jafyear;
import java.io.IOException;
import java.util.Date;
import java.util.Map;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.el.ValueBinding;
import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRenderer;

/** *//**
* 年份选择框组件renderer
* @author qinjinwei
* $date 2007-9-12 上午09:52:30
*/
public class JafYearRenderer extends HtmlRenderer ...{
public void encodeEnd(FacesContext facesContext, UIComponent component)
throws IOException ...{
String sfrom = (String) component.getAttributes().get("from");
String sto = (String) component.getAttributes().get("to");
int ifrom = convert(sfrom) + 1900;
int ito = convert(sto) + 1900;
ResponseWriter writer = facesContext.getResponseWriter();
String clientId = component.getClientId(facesContext);
ValueBinding vb = component.getValueBinding("value");
String syear = (String) vb.getValue(facesContext);
if(syear == null)
...{
syear = "" + (new Date().getYear() + 1900 );
}
int year = Integer.parseInt(syear);
writer.write("" + clientId + "" name="" + clientId + ""> ");
for (int i = ifrom; i <= ito; i++) ...{
writer.write("" + i + """);
if(year == i)
...{
writer.write(" selected ");
}
writer.write(">" + i );
writer.write("年 ");
}
writer.write("");
}
public void decode(FacesContext facesContext, UIComponent uiComponent)
...{
Map paramMap = facesContext.getExternalContext()
.getRequestParameterMap();
String clientId = uiComponent.getClientId(facesContext);
if(paramMap.containsKey(clientId))
...{
String value = (String) paramMap
.get(clientId);
ValueBinding vb = uiComponent.getValueBinding("value");
vb.setValue(facesContext, value);
System.out.println(clientId + " value is: " + value);
}
}

private int convert(String exp) ...{
boolean bflagt = false;
boolean bflags = false;
String ex = exp.replaceAll(" ", "");
if (ex.startsWith("today")) ...{
bflagt = true;
ex = ex.replaceAll("today", "");
}

if (ex.startsWith("+")) ...{
bflags = true;
}
ex = ex.substring(1, ex.length());
int rvalue = Integer.parseInt(ex);
if(!bflags)
...{
rvalue = - rvalue;
}
if (bflagt)
rvalue = rvalue + new Date().getYear();
return rvalue;
}
}
package com.cfcc.jaf.webx.component.jafdate.jafyear;
import javax.faces.application.Application;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
import javax.faces.webapp.UIComponentTag;

/** *//**
* 年份选择框组件的标签
* @author qinjinwei
* $date 2007-9-12 上午09:52:36
*/
public class JafYearTag extends UIComponentTag
...{
public String getComponentType()
...{
return "com.cfcc.jaf.webx.component.jafdate.jafyear.JafYear";
}
public String getRendererType()
...{
return "com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearRenderer";
}
private String from;
private String to;
private String value;

public String getValue() ...{
return value;
}

public void setValue(String value) ...{
this.value = value;
}

public String getFrom() ...{
return from;
}

public void setFrom(String from) ...{
this.from = from;
}

public String getTo() ...{
return to;
}

public void setTo(String to) ...{
this.to = to;
}

public void setProperties(UIComponent component) ...{
super.setProperties(component);
setStringProperty(component, "from", from);
setStringProperty(component, "to", to);
setStringProperty(component, "value", value);
}
private void setStringProperty(UIComponent component, String attrName,
String attrValue) ...{
if (attrValue == null)
return;
if (isValueReference(attrValue)) ...{
FacesContext context = FacesContext.getCurrentInstance();
Application application = context.getApplication();
ValueBinding binding = application.createValueBinding(attrValue);
component.setValueBinding(attrName, binding);
} else ...{
component.getAttributes().put(attrName, attrValue);
}
}

public void release() ...{
super.release();
from = null;
to = null;
value = null;
}
}
<tag>
<name>jafyear</name>
<tag-class>
com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearTag
</tag-class>
<body-content>empty</body-content>
<attribute>
<name>from</name>
<required>true</required>
</attribute>
<attribute>
<name>to</name>
<required>true</required>
</attribute>
<attribute>
<name>value</name>
<required>true</required>
</attribute>
</tag>
<renderer>
<component-family>jaf.jafdate</component-family>
<renderer-type>com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearRenderer</renderer-type>
<renderer-class>com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearRenderer</renderer-class>
</renderer>
<component>
<component-type>
com.cfcc.jaf.webx.component.jafdate.jafyear.JafYear
</component-type>
<component-class>
com.cfcc.jaf.webx.component.jafdate.jafyear.JafYear
</component-class>
</component>
就是一个下拉框,可以配置选取的范围,用today表示当期年份,输入简单表达式。
package com.cfcc.jaf.webx.component.jafdate.jafyear;
import javax.faces.component.UIComponentBase;
import javax.faces.context.FacesContext;

/** *//**
* 年份选择框组件
* @author qinjinwei
* $date 2007-9-12 上午09:52:28
*/
public class JafYear extends UIComponentBase ...{
public final String JAF_DATE_FAMILY = "jaf.jafdate";

public String getFamily() ...{
return JAF_DATE_FAMILY;
}

public Object saveState(FacesContext context) ...{
Object values[] = new Object[1];
values[0] = super.saveState(context);
return values;
}

public void restoreState(FacesContext context, Object state) ...{
Object values[] = (Object[]) state;
super.restoreState(context, values[0]);
}
}
package com.cfcc.jaf.webx.component.jafdate.jafyear;
import java.io.IOException;
import java.util.Date;
import java.util.Map;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.el.ValueBinding;
import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRenderer;

/** *//**
* 年份选择框组件renderer
* @author qinjinwei
* $date 2007-9-12 上午09:52:30
*/
public class JafYearRenderer extends HtmlRenderer ...{
public void encodeEnd(FacesContext facesContext, UIComponent component)
throws IOException ...{
String sfrom = (String) component.getAttributes().get("from");
String sto = (String) component.getAttributes().get("to");
int ifrom = convert(sfrom) + 1900;
int ito = convert(sto) + 1900;
ResponseWriter writer = facesContext.getResponseWriter();
String clientId = component.getClientId(facesContext);
ValueBinding vb = component.getValueBinding("value");
String syear = (String) vb.getValue(facesContext);
if(syear == null)
...{
syear = "" + (new Date().getYear() + 1900 );
}
int year = Integer.parseInt(syear);
writer.write("" + clientId + "" name="" + clientId + ""> ");
for (int i = ifrom; i <= ito; i++) ...{
writer.write("" + i + """);
if(year == i)
...{
writer.write(" selected ");
}
writer.write(">" + i );
writer.write("年 ");
}
writer.write("");
}
public void decode(FacesContext facesContext, UIComponent uiComponent)
...{
Map paramMap = facesContext.getExternalContext()
.getRequestParameterMap();
String clientId = uiComponent.getClientId(facesContext);
if(paramMap.containsKey(clientId))
...{
String value = (String) paramMap
.get(clientId);
ValueBinding vb = uiComponent.getValueBinding("value");
vb.setValue(facesContext, value);
System.out.println(clientId + " value is: " + value);
}
}

private int convert(String exp) ...{
boolean bflagt = false;
boolean bflags = false;
String ex = exp.replaceAll(" ", "");
if (ex.startsWith("today")) ...{
bflagt = true;
ex = ex.replaceAll("today", "");
}

if (ex.startsWith("+")) ...{
bflags = true;
}
ex = ex.substring(1, ex.length());
int rvalue = Integer.parseInt(ex);
if(!bflags)
...{
rvalue = - rvalue;
}
if (bflagt)
rvalue = rvalue + new Date().getYear();
return rvalue;
}
}
package com.cfcc.jaf.webx.component.jafdate.jafyear;
import javax.faces.application.Application;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
import javax.faces.webapp.UIComponentTag;

/** *//**
* 年份选择框组件的标签
* @author qinjinwei
* $date 2007-9-12 上午09:52:36
*/
public class JafYearTag extends UIComponentTag
...{
public String getComponentType()
...{
return "com.cfcc.jaf.webx.component.jafdate.jafyear.JafYear";
}
public String getRendererType()
...{
return "com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearRenderer";
}
private String from;
private String to;
private String value;

public String getValue() ...{
return value;
}

public void setValue(String value) ...{
this.value = value;
}

public String getFrom() ...{
return from;
}

public void setFrom(String from) ...{
this.from = from;
}

public String getTo() ...{
return to;
}

public void setTo(String to) ...{
this.to = to;
}

public void setProperties(UIComponent component) ...{
super.setProperties(component);
setStringProperty(component, "from", from);
setStringProperty(component, "to", to);
setStringProperty(component, "value", value);
}
private void setStringProperty(UIComponent component, String attrName,
String attrValue) ...{
if (attrValue == null)
return;
if (isValueReference(attrValue)) ...{
FacesContext context = FacesContext.getCurrentInstance();
Application application = context.getApplication();
ValueBinding binding = application.createValueBinding(attrValue);
component.setValueBinding(attrName, binding);
} else ...{
component.getAttributes().put(attrName, attrValue);
}
}

public void release() ...{
super.release();
from = null;
to = null;
value = null;
}
}
<tag>
<name>jafyear</name>
<tag-class>
com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearTag
</tag-class>
<body-content>empty</body-content>
<attribute>
<name>from</name>
<required>true</required>
</attribute>
<attribute>
<name>to</name>
<required>true</required>
</attribute>
<attribute>
<name>value</name>
<required>true</required>
</attribute>
</tag>
<renderer>
<component-family>jaf.jafdate</component-family>
<renderer-type>com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearRenderer</renderer-type>
<renderer-class>com.cfcc.jaf.webx.component.jafdate.jafyear.JafYearRenderer</renderer-class>
</renderer>
<component>
<component-type>
com.cfcc.jaf.webx.component.jafdate.jafyear.JafYear
</component-type>
<component-class>
com.cfcc.jaf.webx.component.jafdate.jafyear.JafYear
</component-class>
</component>
本文介绍了一个用于Java EE项目的年份选择框组件,该组件允许用户从指定范围中选择年份,并支持使用当前年份作为基准进行简单表达式的配置。
1487

被折叠的 条评论
为什么被折叠?



