Class: Border

ht.ui.border. Border

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
listener function

监听器函数

scope Object <optional>

函数域

ahead Boolean <optional>

是否将当前监听器插入到监听器列表开头

drawBorder(x, y, width, height, view, dom)

绘制 border,如果自定义 border,都需要重写此函数

Parameters:
Name Type Argument Description
x Number

绘制范围的 x 坐标

y Number

绘制范围的 y 坐标

width Number

绘制范围的宽度

height Number

绘制范围的高度

view ht.View

当前在绘制的组件

dom HTMLElement <optional>

当前在绘制的 dom 对象,绝大多数组件无需考虑这个参数(因为只有一个绘制 canvas),特殊情况下如右键菜单,每个子菜单都是一个单独的 canvas,这种情况下才有这个参数

firePropertyChange(property, oldValue, newValue, compareFunc) → {Boolean}

派发属性变化事件

Parameters:
Name Type Argument Description
property String

属性名

oldValue Object

属性变化之前的值

newValue Object

属性变化之后的值

compareFunc function <optional>

比较函数,用于比较新值和旧值是否一致,如果一致则不会派发事件

Returns:

事件是否派发成功

Type
Boolean

fp(property, oldValue, newValue, compareFunc) → {Boolean}

派发属性变化事件,firePropertyChange 的缩写

Parameters:
Name Type Argument Description
property String

属性名

oldValue Object

属性变化之前的值

newValue Object

属性变化之后的值

compareFunc function <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
listener function

监听器函数

scope Object <optional>

函数域

ahead Boolean <optional>

是否将当前监听器插入到监听器列表开头

removePropertyChangeListener(listener, scope)

删除属性事件变化监听器

Parameters:
Name Type Argument Description
listener function

监听器函数

scope Object <optional>

函数域

tearDownBorder(x, y, width, height, view, dom)

border 被卸载时调用,只有 CSS border 才需要重写这个函数将 CSS 清除,一般用 canvas 绘制的 border 无需重写此函数

Parameters:
Name Type Argument Description
x Number

绘制范围的 x 坐标

y Number

绘制范围的 y 坐标

width Number

绘制范围的宽度

height Number

绘制范围的高度

view ht.View

当前在绘制的组件

dom HTMLElement <optional>

当前在绘制的 dom 对象,绝大多数组件无需考虑这个参数(因为只有一个绘制 canvas),特殊情况下如右键菜单,每个子菜单都是一个单独的 canvas,这种情况下才有这个参数

ump(listener, scope)

删除属性事件变化监听器,removePropertyChangeListener 的缩写

Parameters:
Name Type Argument Description
listener function

监听器函数

scope Object <optional>

函数域

© 2017 Hightopo Inc. All rights reserved. - Email: service@hightopo.com