new Border()
Border 用于绘制组件边框,开发者如果需要自定义边框,需要继承此类并重写 drawBorder 函数
Example
// 下面这段代码绘制了一个直线边框
function MyBorder() {
MyBorder.superClass.constructor.call(this);
}
ht.Default.def(MyBorder, ht.ui.border.Border, {
getLeft: function() {return 1;},
getTop: function() {return 1;},
getBottom: function() {return 1;},
getRight: function() {return 1;},
draw: function(x, y, width, height, view, dom) {
var g = view.getRootContext(dom);
g.beginPath();
g.rect(x, y, width, height);
g.lineWidth = 1;
g.strokeStyle = 'red';
g.stroke();
}
});
Methods
-
addPropertyChangeListener(listener, scope, ahead)
-
增加属性事件变化监听函数
Parameters:
Name Type Argument Description listenerfunction 监听器函数
scopeObject <optional>
函数域
aheadBoolean <optional>
是否将当前监听器插入到监听器列表开头
-
drawBorder(x, y, width, height, view, dom)
-
绘制 border,如果自定义 border,都需要重写此函数
Parameters:
Name Type Argument Description xNumber 绘制范围的 x 坐标
yNumber 绘制范围的 y 坐标
widthNumber 绘制范围的宽度
heightNumber 绘制范围的高度
viewht.View 当前在绘制的组件
domHTMLElement <optional>
当前在绘制的 dom 对象,绝大多数组件无需考虑这个参数(因为只有一个绘制 canvas),特殊情况下如右键菜单,每个子菜单都是一个单独的 canvas,这种情况下才有这个参数
-
firePropertyChange(property, oldValue, newValue, compareFunc) → {Boolean}
-
派发属性变化事件
Parameters:
Name Type Argument Description propertyString 属性名
oldValueObject 属性变化之前的值
newValueObject 属性变化之后的值
compareFuncfunction <optional>
比较函数,用于比较新值和旧值是否一致,如果一致则不会派发事件
Returns:
事件是否派发成功
- Type
- Boolean
-
fp(property, oldValue, newValue, compareFunc) → {Boolean}
-
派发属性变化事件,firePropertyChange 的缩写
Parameters:
Name Type Argument Description propertyString 属性名
oldValueObject 属性变化之前的值
newValueObject 属性变化之后的值
compareFuncfunction <optional>
比较函数,用于比较新值和旧值是否一致,如果一致则不会派发事件
Returns:
事件是否派发成功
- Type
- Boolean
-
getBottom() → {Number}
-
返回边框底部的高度
Returns:
底部高度
- Type
- Number
-
getLeft() → {Number}
-
返回边框左侧的宽度
Returns:
左侧宽度
- Type
- Number
-
getRight() → {Number}
-
返回边框右侧的宽度
Returns:
右侧宽度
- Type
- Number
-
getSerializableProperties() → {Object}
-
获取可序列化的属性
Returns:
属性 map
- Type
- Object
-
getTop() → {Number}
-
返回边框顶部的高度
Returns:
顶部高度
- Type
- Number
-
isCSSBorder() → {Boolean}
-
此边框是否使用 CSS 设置 border
Returns:
是否是 CSS border
- Type
- Boolean
-
mp(listener, scope, ahead)
-
增加属性事件变化监听函数,addPropertyChangeListener 的缩写
Parameters:
Name Type Argument Description listenerfunction 监听器函数
scopeObject <optional>
函数域
aheadBoolean <optional>
是否将当前监听器插入到监听器列表开头
-
removePropertyChangeListener(listener, scope)
-
删除属性事件变化监听器
Parameters:
Name Type Argument Description listenerfunction 监听器函数
scopeObject <optional>
函数域
-
tearDownBorder(x, y, width, height, view, dom)
-
border 被卸载时调用,只有 CSS border 才需要重写这个函数将 CSS 清除,一般用 canvas 绘制的 border 无需重写此函数
Parameters:
Name Type Argument Description xNumber 绘制范围的 x 坐标
yNumber 绘制范围的 y 坐标
widthNumber 绘制范围的宽度
heightNumber 绘制范围的高度
viewht.View 当前在绘制的组件
domHTMLElement <optional>
当前在绘制的 dom 对象,绝大多数组件无需考虑这个参数(因为只有一个绘制 canvas),特殊情况下如右键菜单,每个子菜单都是一个单独的 canvas,这种情况下才有这个参数
-
ump(listener, scope)
-
删除属性事件变化监听器,removePropertyChangeListener 的缩写
Parameters:
Name Type Argument Description listenerfunction 监听器函数
scopeObject <optional>
函数域