DateTimeField是一个日期时间输入框,除了具有 DateField的特性外,还可以在下拉框中选择一天中的时间。
表 30.41. 构件信息
| Component Type | org.operamasks.faces.component.form.impl.UIDateTimeField |
| Component Family | javax.faces.Input |
| Component Class | org.operamasks.faces.component.form.impl.UIDateTimeField |
| Tag Class | org.operamasks.faces.webapp.form.UIDateTimeFieldTag |
| Renderer Type | org.operamasks.faces.component.form.impl.UIDateTimeField |
| Renderer Class | org.operamasks.faces.render.widget.ajax.AjaxDateTimeFieldRenderer |
+java.lang.Object
++javax.faces.component.UIComponent
+++javax.faces.component.UIComponentBase
++++javax.faces.component.UIOutput
+++++javax.faces.component.UIInput
++++++org.operamasks.faces.component.form.base.UIFieldBase
+++++++org.operamasks.faces.component.form.impl.UIField
++++++++org.operamasks.faces.component.form.base.UITextFieldBase
+++++++++org.operamasks.faces.component.form.impl.UITextField
++++++++++org.operamasks.faces.component.form.base.UITriggerFieldBase
+++++++++++org.operamasks.faces.component.form.impl.UITriggerField
++++++++++++org.operamasks.faces.component.form.base.UIDateFieldBase
+++++++++++++org.operamasks.faces.component.form.impl.UIDateField
++++++++++++++org.operamasks.faces.component.form.base.UIDateTimeFieldBase
+++++++++++++++org.operamasks.faces.component.form.impl.UIDateTimeField
表 30.42. 属性
| allowBlank | 定义类 | org.operamasks.faces.component.form.impl.UITextField | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 是否允许为空 (默认是true) | ||||
| altFormats | 定义类 | org.operamasks.faces.component.form.impl.UIDateField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 合法的日期格式,用"|"分割(默认值:'m/d/Y|m-d-y|m-d-Y|m/d|m-d|d') | ||||
| alwaysSubmit | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件是否总是提交,与readOnly,disabled属性结合使用。 当一个输入组件的readOnly或disabled设为true时,它的值无法提交到后台。 但如果同时将alwaysSubmit设为true,则它的值可以提交到后台 | ||||
| binding | 定义类 | javax.faces.component.UIComponentBase | ||
| 类型 | javax.el.ValueExpression(javax.faces.component.UIComponent) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 一个值表达式,用于把该组件链接到一个ManagedBean的某个属性。 | ||||
| blankText | 定义类 | org.operamasks.faces.component.form.impl.UITextField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 当设置不允许为空而文本框的内容是空的时候,出错提示的内容 | ||||
| clientValidate | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件是否进行客户端校验 | ||||
| cls | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件的css样式类名 | ||||
| converter | 定义类 | javax.faces.component.UIOutput | ||
| 类型 | java.lang.String | |||
| 是否必须 | 否 | 延时求值 | 否 | |
| 构件注册的转换器 | ||||
| converterMessage | 定义类 | javax.faces.component.UIInput | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件中值转换失败时,构件的提示信息 | ||||
| disabled | 定义类 | org.operamasks.faces.component.form.base.UIFieldBase | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件是否设置为disabled(默认值:false),disabled属性设置为true后,需设置alwaysSubmit="true",页面值才会提交 | ||||
| disabledDates | 定义类 | org.operamasks.faces.component.form.impl.UIDateField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 不可用的日期,例如disabledDates=['2003-03-08','2003-09-15'] (默认是null) | ||||
| disabledDatesText | 定义类 | org.operamasks.faces.component.form.impl.UIDateField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 当选中的日期在disabledDates里面时,出错提示的内容(默认是'Disabled') | ||||
| disabledDays | 定义类 | org.operamasks.faces.component.form.impl.UIDateField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 日历上不能被用户选择的星期,从0开始,例如[0,6]表示星期天和星期六都不可用(默认是null) | ||||
| disabledDaysText | 定义类 | org.operamasks.faces.component.form.impl.UIDateField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 当用户填写的日期属于disabledDays里面规定的星期时,出错提示的内容(默认是'Disabled') | ||||
| emptyClass | 定义类 | org.operamasks.faces.component.form.impl.UITextField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 当文本框内容为空时的样式(默认是'x-form-empty-field') | ||||
| emptyText | 定义类 | org.operamasks.faces.component.form.impl.UITextField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 当文本框内容为空时显示的文本(默认是null) | ||||
| fieldClass | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| field的默认样式(默认值:"x-form-field") | ||||
| fieldLabel | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件的label | ||||
| focusClass | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 当field收到焦点时的样式(默认值:"x-form-focus") | ||||
| format | 定义类 | org.operamasks.faces.component.form.impl.UIDateField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 能够被重写做为本地化支持的默认日期格式化字符串,格式参照Ext的Date.parseDate类型(默认是'Y/m/d') | ||||
| hidden | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件是否可见。 | ||||
| hideLabel | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 是否完全隐藏构件的label(默认值:false) | ||||
| hideTrigger | 定义类 | org.operamasks.faces.component.form.impl.UITriggerField | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 是否完全隐藏构件的下拉图标(默认值:false) | ||||
| hourFilter | 定义类 | org.operamasks.faces.component.form.impl.UIDateTimeField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 小时过滤器 | ||||
| hourStep | 定义类 | org.operamasks.faces.component.form.impl.UIDateTimeField | ||
| 类型 | javax.el.ValueExpression(java.lang.Integer) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 小时增量 | ||||
| id | 定义类 | javax.faces.component.UIComponentBase | ||
| 类型 | java.lang.String | |||
| 是否必须 | 否 | 延时求值 | 否 | |
| 这个组件的组件标识符。这个值在最近的命名容器类型的父组件范围内,必须是唯一的。 | ||||
| immediate | 定义类 | javax.faces.component.UIInput | ||
| 类型 | javax.el.ValueExpression(boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 如果该属性设置为true,该构件的校验和转换就会在应用请求值阶段进行,反之,在处理验证阶段执行 | ||||
| initConfig | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 初始化对象,取值可以是ExtConfig对象, 或String,表示一个JavaScript对象,比如:{"a": "avalue", "b":true, "c":200, "d":"var::dvalue"} 如果取值是表示一个JavaScript对象的String,则key必须用(双)引号包起来,比如"a"。 | ||||
| invalidClass | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 当field被标记为invalid时的样式(默认值:"x-form-invalid") | ||||
| jsvar | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 客户端脚本使用的javascript变量名,使用此变量名可以在客户端脚本中引用构件对应的客户端对象 | ||||
| labelSeparator | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 显示在label后面的分隔符(默认值:':')。 | ||||
| labelStyle | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| field的label的CSS样式(默认值:如果设置了父容器的labelStyle就使用父容器的labelStyle,否则为'') | ||||
| limitedAlign | 定义类 | org.operamasks.faces.component.form.impl.UIDateTimeField | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 对齐增量间隔时刻时是否允许超过当前时间。 此值为true时,默认值总是取小于当前时间的符合增量间隔的时刻; 此值为false时,默认值对齐增量间隔时刻时选择最接近的间隔,允许超过当前时间。 默认为false。 | ||||
| locale | 定义类 | org.operamasks.faces.component.form.impl.UIDateField | ||
| 类型 | javax.el.ValueExpression(java.util.Locale) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件的文字的使用国际化语言 | ||||
| maskRe | 定义类 | org.operamasks.faces.component.form.impl.UITextField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 用来限制用户输入的字符类型的正则表达式,只有敲入的字符符合正则表达式时,才显示出来 (默认是null) | ||||
| maxText | 定义类 | org.operamasks.faces.component.form.impl.UIDateField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 当日期比maxValue后时,出错提示的内容 | ||||
| maxValue | 定义类 | org.operamasks.faces.component.form.impl.UIDateField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 日期的最大值,字符串必须符合日期格式 (默认是null) | ||||
| minText | 定义类 | org.operamasks.faces.component.form.impl.UIDateField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 当日期比minValue前时,出错提示的内容 | ||||
| minValue | 定义类 | org.operamasks.faces.component.form.impl.UIDateField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 日期的最小值,字符串必须符合日期格式 (默认是null) | ||||
| minuteFilter | 定义类 | org.operamasks.faces.component.form.impl.UIDateTimeField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 分钟过滤器 | ||||
| minuteStep | 定义类 | org.operamasks.faces.component.form.impl.UIDateTimeField | ||
| 类型 | javax.el.ValueExpression(java.lang.Integer) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 分钟增量 | ||||
| msgTarget | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 错误信息文本的显示位置 | ||||
| onblur | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件的onblur事件发生(构件失去输入焦点时触发)时执行的JavaScript代码 | ||||
| onchange | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件的onchange事件发生(内容改变时触发)时执行的JavaScript代码 | ||||
| ondisable | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件的ondisable事件发生(构件变为无效时触发)时执行的JavaScript代码 | ||||
| onenable | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件的onenable事件发生(构件变为有效时触发)时执行的JavaScript代码 | ||||
| onfocus | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件的onfocus事件发生(构件获取焦点时触发)时执行的JavaScript代码 | ||||
| onhide | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件的onhide事件发生(构件隐藏时触发)时执行的JavaScript代码 | ||||
| onselect | 定义类 | org.operamasks.faces.component.form.impl.UIDateField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件的onselect事件发生(选中日期时触发)时执行的JavaScript代码 | ||||
| onshow | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件的onshow事件发生(构件显示时触发)时执行的JavaScript代码 | ||||
| readOnly | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 是否在HTML中将field标识为readOnly(默认值:false),readOnly属性设置为true后,需设置alwaysSubmit="true",页面值才会提交。此属性暂不支持w:simpleHtmlEditor、w:radioGroup、w:checkBoxGroup | ||||
| regex | 定义类 | org.operamasks.faces.component.form.impl.UITextField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 用于验证时测试域值的一个JavaScript RegExp对象,允许使用Perl风格的语法。如果提供了该属性值,这个正则表达式仅当基本Ext验证器都返回true时被调用,调用时会传给它当前的域值。如果测试失败,这个域将用regexText指定的文本标记为不合法 | ||||
| regexText | 定义类 | org.operamasks.faces.component.form.impl.UITextField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| regex属性校验失败后,出错提示的内容 | ||||
| rendered | 定义类 | javax.faces.component.UIComponentBase | ||
| 类型 | boolean(boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 一个标志,指出该组件是否要在任何随后的form提交过程中被渲染或处理。 这个属性的缺省值是true。 | ||||
| required | 定义类 | javax.faces.component.UIInput | ||
| 类型 | javax.el.ValueExpression(boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件是否不允许提交空值 | ||||
| requiredMessage | 定义类 | javax.faces.component.UIInput | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 当requried属性为真,构件如果提交了空值导致校验失败时构件的提示信息 | ||||
| requiredTrim | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件进行required校验时是否将输入的值作trim操作后校验 | ||||
| selectOnFocus | 定义类 | org.operamasks.faces.component.form.impl.UITextField | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 当获得焦点的时候,选中所有文本(默认是false) | ||||
| style | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件渲染后最外层DOM元素的样式。 | ||||
| styleClass | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件渲染后最外层DOM元素的样式类名。若有多个,以空格分隔。 | ||||
| tabIndex | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.Integer) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 当用户使用tab键时页面上构件获得焦点的顺序索引 | ||||
| tooltip | 定义类 | org.operamasks.faces.component.form.base.UIFieldBase | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 鼠标经过时的弹出信息。 | ||||
| triggerClass | 定义类 | org.operamasks.faces.component.form.impl.UITriggerField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 给触发的按钮增加的额外css样式,触发的按钮通常是使用 'x-form-trigger' 和 triggerClass 2个样式的并集 | ||||
| validateEvents | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件客户端校验发生的时机 | ||||
| validator | 定义类 | javax.faces.component.UIInput | ||
| 类型 | javax.el.MethodExpression(javax.el.MethodExpression) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定一个校验器id或用EL表达式指定一个校验方法。引擎使用该校验器对用户输入进行有效性校验 | ||||
| validatorMessage | 定义类 | javax.faces.component.UIInput | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 校验失败时的提示信息 | ||||
| value | 定义类 | javax.faces.component.UIInput | ||
| 类型 | java.lang.String | |||
| 是否必须 | 否 | 延时求值 | 否 | |
| 构件的当前值 | ||||
| valueChangeListener | 定义类 | javax.faces.component.UIInput | ||
| 类型 | javax.el.MethodExpression(javax.el.MethodExpression) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 该属性为一个EL表达式(MethodBinding),表示当值改变时响应事件的方法。表达式所指定的方法必须是void valueChange(javax.faces.event.ValueChangeEvent)形式 | ||||
| width | 定义类 | org.operamasks.faces.component.form.impl.UIField | ||
| 类型 | javax.el.ValueExpression(java.lang.Integer) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件的宽度,以象素为单位。 | ||||
表 30.43. 常用方法
| enable | 方法签名 | public void enable() |
| 参数说明 | 无参数 | |
| 返回值 | 无返回值 | |
| 方法描述 | 将构件设置为可用。 | |
| disable | 方法签名 | public void disable() |
| 参数说明 | 无参数 | |
| 返回值 | 无返回值 | |
| 方法描述 | 将构件设置为不可用。 | |
| show | 方法签名 | public void show() |
| 参数说明 | 无参数 | |
| 返回值 | 无返回值 | |
| 方法描述 | 显示构件。 | |
| hide | 方法签名 | public void hide() |
| 参数说明 | 无参数 | |
| 返回值 | 无返回值 | |
| 方法描述 | 隐藏构件。 | |
| focus | 方法签名 | public void focus() |
| 参数说明 | 无参数 | |
| 返回值 | 无返回值 | |
| 方法描述 | 当前构件获得焦点。 |
下面例子中,dateTimeField将可以选择当天的上班时间中的时刻(上午8点到12点,下午14点到18点)。分钟数每次增量为15。
<w:page title="Insert title here">
<w:form>
<w:dateTimeField id="datetime" limitedAlign="true" hourFilter="chk_workhour"
minuteStep="15" format="yyyy年MM月dd日HH时mm分" width="250" />
<w:button id="action" />
</w:form>
</w:page>
<script>
<!--
function chk_workhour(v) {
return (v >= 8 && v <= 12) || (v >= 14 && v <= 18);
}
-->
</script>Bean的代码:
import java.util.Date;
@ManagedBean(scope=ManagedBeanScope.SESSION)
public class TestDateTimeFieldBean implements Serializable {
@Bind
Date datetime;
@Action
private void action() {
System.out.println(datetime.toString());
}
}