索引
HT for Web提供了表单插件,其包含了下拉菜单、滑动条和按钮等组件,及具有组件布局功能的表单面板。
html也提供了部分类似的组件,但不同浏览器平台的呈现甚至交互效果都有很多差异,且有些组件风格无法自定义,
HT提供的这些组件为了就是统一各个平台的差异,提供一致的风格和交互方式,并支持丰富的自定义扩展功能。
使用表单插件需要在引入ht.js核心库之后,再引入一个ht-form.js的表单插件库。
HT for Web提供了表单面板组件,该组件具备布局组件功能,添加到表单面板的组件可为普通的html元素,
也可为HT内置的任意视图组件。表单面板组件以添加行的模式设计,每行添加任意定义组件,通过指定每个组件的宽度信息,
以及每行的行高信息,来达到整体所有组件的布局,对于更复杂的界面可通过嵌套表单面板来实现。
ht.widget.FormPane为表单面板组件类,其主要可配置属性和函数如下:
vPadding属性通过getVPadding和setVPadding获取和设置表单顶部和底部与组件内容的间距,默认值为8hPadding属性通过getHPadding和setHPadding获取和设置表单左边和右边与组件内容的间距,默认值为8vGap属性通过getVGap和setVGap获取和设置表单组件水平间距,默认值为6hGap属性通过getHGap和setHGap获取和设置表单的行垂直间距,默认值为6rowHeight属性通过getRowHeight和setRowHeight获取和设置默认行高labelVPadding属性通过getLabelVPadding和setLabelVPadding获取和设置文字顶部和底部的间距,默认值为0labelHPadding属性通过getLabelHPadding和setLabelHPadding获取和设置文字左边和右边的间距,默认值为2scrollBarColor属性通过getScrollBarColor和setScrollBarColor获取和设置滚动条颜色scrollBarSize属性通过getScrollBarSize和setScrollBarSize获取和设置滚动条宽度autoHideScrollBar属性通过isAutoHideScrollBar和setAutoHideScrollBar获取和设置是否自动隐藏滚动条,默认为trueaddRow(items, widths, height, params)添加一行组件items为元素数组,元素可为字符串、json格式描述的组件参数信息、html元素或者为null的空widths为每个元素宽度信息数组,宽度值大于1代表固定绝对值,小于等于1代表相对值,也可为80+0.3的组合height为行高信息,值大于1代表固定绝对值,小于等于1代表相对值,也可为80+0.3的组合,为空时采用默认行高params为json格式的额外参数,例如插入行索引以及行边框或背景颜色等,如{index: 2, background: 'yellow', borderColor: 'red'}removeRow(index)删除指定的行clear()清除所有行信息getItemById(id)根据id值找到对应的item元素getValue(id)根据id获取对应item元素值,简写函数为v(id)setValue(id, value)根据id设置对应item元素值,简写函数为v(id, value)v(jsonObj)可批量将jsonObj的所有key和value对,作为id和value设置到对应的item元素中绝对值与相对值:
HT系统对大于1的值认定为绝对值1的值表示,其真实分配值为总宽度或总高度扣除所有绝对值后的再分配例如[80, 0.1, 60, 0.2, '20+0.3']代表:
80Math.max(0, (0.1/(0.1+0.2+0.3))*(width-80-60-20))60Math.max(0, (0.2/(0.1+0.2+0.3))*(width-80-60-20))20 + Math.max(0, (0.3/(0.1+0.2+0.3))*(width-80-60-20))组件元素有三种类型:
HTML原生元素,可直接设置原生元素对象,或采用json方式设置到element属性FormPane内部自绘制的文本信息,可直接设置字符串,或采用json方式设置到element属性HT自带组件如Button、CheckBox和ComboBox等,可直接设置组件对象,或采用json方式设置到element属性原生对象的添加方式可参考Easing实例中的控制面板下端的www.hightopo.com超链接
var href = document.createElement('a');
href.setAttribute('href', 'http://www.hightopo.com');
href.innerHTML = 'http://www.hightopo.com';
href.style.font = formPane.getLabelFont();
href.style.lineHeight = formPane.getRowHeight() + 'px';
href.style.textAlign = 'right';
formPane.addRow([href], [0.1]);
对于添加的元素,如果为string字符串,则显示为标签文字,如果需要定义文字的其他参数,则可使用json格式
{
element: 'Hightopo', // 文字内容
color: 'red' //文字颜色
font: 'bold 24px arial', // 文字字体
align: 'left', // 文字水平对齐,可选值: left|center|right
vAlign: 'top', // 文字垂直对齐,可选值: top|middle|bottom
}
元素的json格式支持以下几个预定义属性:
id唯一标示属性,可通过formPane.getItemById(id)获取添加到对应的item对象borderColor边框颜色,设置了该属性后元素会呈现该颜色的矩形边框background背景颜色,设置了该属性后元素会呈现该颜色的矩形背景以下预定义属性,将会在element属性未定义的情况下,自动根据json信息构建出视图组件,并存放到元素的element属性上,
这种通过json信息自动构建element视图组件的方式也同样适用于ht.widget.Toolbar的元素定义:
textField文本输入框,设置了该属性后HT将根据属性值自动构建ht.widget.TextField对象,并保存在element属性上textArea文本域,设置了该属性后HT将根据属性值自动构建ht.widget.TextArea对象,并保存在element属性上button按钮,设置了该属性后HT将根据属性值自动构建ht.widget.Button对象,并保存在element属性上checkBox复选框,设置了该属性后HT将根据属性值自动构建ht.widget.CheckBox对象,并保存在element属性上image图片,设置了该属性后HT将根据属性值自动构建ht.widget.Image对象,并保存在element属性上comboBox组合框,设置了该属性后HT将根据属性值自动构建ht.widget.ComboBox对象,并保存在element属性上slider拉条,设置了该属性后HT将根据属性值自动构建ht.widget.Slider对象,并保存在element属性上示例:
{
id: '679',
button: {
label: '图扑软件好公司',
icon: 'ht_logo',
toolTip: 'eric@hightopo.com',
onClicked: function(){
console.log('button is clicked.');
}
}
}
上例json格式定义了一个id为679的元素,HT会自动构建一个ht.widget.Button的button对象,
并通过button.setLabel('图扑软件好公司'),button.setIcon('ht_logo')、button.setToolTip('eric@hightopo.com')
和button.onClicked = function(){console.log('button is clicked.');}这几步设置初始化该button对象,
然后对json格式新增加一个element属性,其值为该button对象。
ht.widget.Button为按钮类,其主要可配置属性和函数如下:
label属性通过getLabel和setLabel获取和设置文字标签labelFont属性通过getLabelFont和setLabelFont获取和设置文字字体labelColor属性通过getLabelColor和setLabelColor获取和设置文字颜色labelSelectColor属性通过getLabelSelectColor和setLabelSelectColor获取和设置文字选中颜色borderColor属性通过getBorderColor和setBorderColor获取和设置边框颜色background属性通过getBackground和setBackground获取和设置背景颜色selectBackground属性通过getSelectBackground和setSelectBackground获取和设置背景颜色icon属性通过getIcon和setIcon获取和设置图标iconColor属性通过getIconColor和setIconColor获取和设置图标颜色disabled属性通过isDisabled和setDisabled获取和设置是否使能功能,默认值为falsetoolTip属性通过getToolTip和setToolTip获取和设置文字提示,可通过enableToolTip()和disableToolTip()启动和关闭文字提示orientation属性通过getOrientation和setOrientation获取和设置文字和图标的排列方式,
可设置horizontal和vertical的水平和垂直方式,也可采用h和v的简写方式selected属性通过isSelected和setSelected获取和设置按钮是否处于选中状态pressed属性通过isPressed和setPressed获取和设置按钮是否处于按下状态clickable属性通过isClickable和setClickable获取和设置按钮是否处于可按状态togglable属性通过isTogglable和setTogglable获取和设置按钮是否处于开关状态groupId属性通过getGroupId和setGroupId获取和设置组编号,属于同组的togglable按钮具有互斥功能ht.widget.RadioButton为单选按钮类,其主要可配置属性和函数如下:
label属性通过getLabel和setLabel获取和设置文字标签labelFont属性通过getLabelFont和setLabelFont获取和设置文字字体labelColor属性通过getLabelColor和setLabelColor获取和设置文字颜色icon属性通过getIcon和setIcon获取和设置图标iconColor属性通过getIconColor和setIconColor获取和设置图标颜色disabled属性通过isDisabled和setDisabled获取和设置是否使能功能,默认值为falsetoolTip属性通过getToolTip和setToolTip获取和设置文字提示,可通过enableToolTip()和disableToolTip()启动和关闭文字提示selected属性通过isSelected和setSelected获取和设置单选按钮是否处于选中状态pressed属性通过isPressed和setPressed获取和设置单选按钮是否处于按下状态pressBackground属性通过getPressBackground和setPressBackground获取和设置按下状态背景颜色padding属性通过getPadding和setPadding获取和设置间距,默认值为0getRadioIcon函数选中时返回radioOn图标,非选中时返回radioOff图标,可重载自定义groupId属性通过getGroupId和setGroupId获取和设置组编号,属于同组的togglable单选按钮具有互斥功能ht.widget.CheckBox为复选框类,其主要可配置属性和函数如下:
label属性通过getLabel和setLabel获取和设置文字标签labelFont属性通过getLabelFont和setLabelFont获取和设置文字字体labelColor属性通过getLabelColor和setLabelColor获取和设置文字颜色icon属性通过getIcon和setIcon获取和设置图标iconColor属性通过getIconColor和setIconColor获取和设置图标颜色disabled属性通过isDisabled和setDisabled获取和设置是否使能功能,默认值为falsetoolTip属性通过getToolTip和setToolTip获取和设置文字提示,可通过enableToolTip()和disableToolTip()启动和关闭文字提示selected属性通过isSelected和setSelected获取和设置复选框是否处于选中状态pressed属性通过isPressed和setPressed获取和设置复选框是否处于按下状态pressBackground属性通过getPressBackground和setPressBackground获取和设置按下状态背景颜色padding属性通过getPadding和setPadding获取和设置间距,默认值为0getCheckIcon函数选中时返回check图标,非选中时返回uncheck图标,可重载自定义ht.widget.TextField为文本框类,其主要可配置属性和函数如下:
getElement()函数返回内部的html原生input文本框元素,可对其直接增加监听或修改风格type属性通过getType()和setType()获取和设置文本框类型,该值设置到原生elemenet的type属性,如number类型只允许输入数字editable属性通过isEditable和setEditable获取和设置文本框是否允许输入编辑,为boolean类型,默认为truetoolTip属性通过getToolTip和setToolTip获取和设置文字提示,可通过enableToolTip()和disableToolTip()启动和关闭文字提示getText或getValue获取,setText或setValue进行设置,最终都是操作原生element的value属性值getColor和setColor进行获取和设置,最终都是操作原生element的style.color属性值getFont和setFont进行获取和设置,最终都是操作原生element的style.font属性值getBackground和setBackground进行获取和设置,最终都是操作原生element的style.background属性值ht.widget.TextArea为文本区类,其主要可配置属性和函数如下:
getElement()函数返回内部的html原生input文本区元素,可对其直接增加监听或修改风格editable属性通过isEditable和setEditable获取和设置文本区是否允许输入编辑,为boolean类型,默认为truetoolTip属性通过getToolTip和setToolTip获取和设置文字提示,可通过enableToolTip()和disableToolTip()启动和关闭文字提示getText或getValue获取,setText或setValue进行设置,最终都是操作原生element的value属性值getColor和setColor进行获取和设置,最终都是操作原生element的style.color属性值getFont和setFont进行获取和设置,最终都是操作原生element的style.font属性值getBackground和setBackground进行获取和设置,最终都是操作原生element的style.background属性值ht.widget.Image为图片类,其主要可配置属性和函数如下:
borderColor属性通过getBorderColor和setBorderColor获取和设置边框颜色background属性通过getBackground和setBackground获取和设置背景颜色icon属性通过getIcon和setIcon获取和设置图标iconColor属性通过getIconColor和setIconColor获取和设置图标颜色toolTip属性通过getToolTip和setToolTip获取和设置文字提示,可通过enableToolTip()和disableToolTip()启动和关闭文字提示stretch属性通过getStretch和setStretch获取和设置图片拉伸方式,默认值为centerUniform,可取值如下:fill图片填充满整个矩形区域,如果图片宽高比例和矩形不一致会导致图片拉伸失真uniform图片始终保持原始宽高比例不变化,并尽量填充满矩形区域centerUniform当矩形区域大于图片尺寸时图片以原始大小绘制在中心位置,空间不够时采用uniform的绘制方式ht.widget.Slider为滑动条类,其主要可配置属性和函数如下:
value属性通过getValue和setValue获取和设置当前值,为数字类型,默认值为50min属性通过getMin和setMin获取和设置最小值,为数字类型,默认值为0max属性通过getMax和setMax获取和设置最大值,为数字类型,默认值为100step属性通过getStep和setStep获取和设置步进,为数字类型,默认值为空代表连续button属性通过getButton和setButton获取和设置滑动条按钮图标thickness属性通过getThickness和setThickness获取和设置滑动条粗细,为数字类型,默认值为3padding属性通过getPadding和setPadding获取和设置滑动条水平边界间距,为数字类型,默认值为4background属性通过getBackground和setBackground获取和设置滑动条背景颜色,为字符串类型leftBackground属性通过getLeftBackground和setLeftBackground获取和设置滑动条左侧背景颜色,为字符串类型disabled属性通过isDisabled和setDisabled获取和设置是否使能功能,默认值为falsetoolTip属性通过getToolTip和setToolTip获取和设置文字提示,可通过enableToolTip()和disableToolTip()启动和关闭文字提示instant属性通过isInstant和setInstant获取和设置是否处于即时状态,默认为true,代表作为表格和属性页的编辑器时,将实时改变模型值ht.widget.ComboBox为组合框类,其主要可配置属性和函数如下:
value属性通过getValue和setValue获取和设置当前值,可为任意类型values属性通过getValues和setValues获取和设置下拉可选值,为Array类型数组,其值类型需与value一致labels属性通过getLabels和setLabels获取和设置下拉可选值对应文本,为Array类型数组,数组长度需与values一致icons属性通过getIcons和setIcons获取和设置下拉可选值对应图标,为Array类型数组,数组长度需与values一致background属性通过getBackground和setBackground获取和设置背景色,字符串类型selectBackground属性通过getSelectBackground和setSelectBackground获取和设置选中背景色,字符串类型indent属性通过getIndent和setIndent获取和设置图标缩进,为数字类型editable属性通过isEditable和setEditable获取和设置组合框是否允许输入编辑,为boolean类型,默认为falseselectIcon属性通过getSelectIcon和setSelectIcon获取和设置下拉勾选图标dropDownIcon属性通过getDropDownIcon和setDropDownIcon获取和设置下拉箭头图标dropDownWidth属性通过getDropDownWidth和setDropDownWidth获取和设置下拉列表宽,默认为组合框宽度dropDownBackground属性通过getDropDownBackground和setDropDownBackground获取和设置下拉列表背景色,默认为组合框背景色disabled属性通过isDisabled和setDisabled获取和设置是否使能功能,默认值为falsetoolTip属性通过getToolTip和setToolTip获取和设置文字提示,可通过enableToolTip()和disableToolTip()启动和关闭文字提示ht.widget.MultiComboBox为模板组合框类,其主要可配置属性和函数如下:
value属性通过getValue和setValue获取和设置当前值background属性通过getBackground和setBackground获取和设置背景色,字符串类型indent属性通过getIndent和setIndent获取和设置图标缩进,为数字类型editable属性通过isEditable和setEditable获取和设置组合框是否允许输入编辑,为boolean类型,默认为falsedropDownIcon属性通过getDropDownIcon和setDropDownIcon获取和设置下拉箭头图标dropDownWidth属性通过getDropDownWidth和setDropDownWidth获取和设置下拉框宽,默认为组合框宽度disabled属性通过isDisabled和setDisabled获取和设置是否使能功能,默认值为falsetoolTip属性通过getToolTip和setToolTip获取和设置文字提示,可通过enableToolTip()和disableToolTip()启动和关闭文字提示dropDownComponent属性通过setDropDownComponent和getDropDownComponent设置下拉框模版类,此类要从ht.widget.BaseDropDownTemplate继承open()打开下拉框close()关闭下拉框模板组合框和普通组合框类似,不过它下拉的内容是开发人员自定义的,因此下拉框中可以放入任意组件(HT的组件或普通的DOM元素),要自定义下拉框的内容,需要自定义一个类继承ht.widget.BaseDropDownTemplate,并重载几个方法:
getView() 重载此方法返回要显示在下拉框中的DOM对象onOpened(value) 此方法在下拉框弹开时被回调,重载此方法将value参数显示在下拉框中onClosed() 下拉框关闭时被回调,可以重载此方法做一些清理工作getValue() 下拉框关闭时被回调,重载此方法返回下拉框的值getWidth() 重载此方法返回下拉框的宽度,如果没有重载此方法,下拉框的宽度和MultiComboBox的宽度保持一致getHeight() 重载此方法返回下拉框的高度ht.widget.ColorPicker为颜色选择框,从MultiComboBox继承,除了从MultiComboBox继承的属性和函数,此类还增加两个属性:
instant属性通过isInstant和setInstant获取和设置是否处于即时状态,默认为true,代表作为表格和属性页的编辑器时,将实时改变模型值clearButtonVisible 通过isClearButtonVisible和setClearButtonVisible获取和设置清除按钮是否可见,默认为true