|
@@ -52,7 +52,14 @@ export class SPolygonItem extends SGraphyItem {
|
|
|
closeFlag: boolean = false;
|
|
|
// 当前状态 1:show 2 创建中,3 编辑中
|
|
|
_status: number = 2;
|
|
|
- zOrder: number = 1000;
|
|
|
+ /** 显示高度 */
|
|
|
+ zOrder: number = 100;
|
|
|
+ /** 边框颜色 */
|
|
|
+ borderColor: SColor = new SColor("#0091FF");
|
|
|
+ /** 填充颜色 */
|
|
|
+ brushColor: SColor = new SColor("#1EE887");
|
|
|
+ /** border宽 只可输入像素宽*/
|
|
|
+ borderLine: number = 4;
|
|
|
/** 鼠标移动点 */
|
|
|
private lastPoint = new SPoint();
|
|
|
constructor(parent: SGraphyItem | null, data: PolygonData | null) {
|
|
@@ -177,26 +184,19 @@ export class SPolygonItem extends SGraphyItem {
|
|
|
* 构造函数 闭合多边形
|
|
|
*
|
|
|
*/
|
|
|
- _closePolygon(painter: SPainter, pointList: SPoint[], closeFlag: boolean = false) {
|
|
|
- this._status = 1;
|
|
|
+ _showPolygon(painter: SPainter, pointList: SPoint[]) {
|
|
|
painter.pen.lineCapStyle = SLineCapStyle.Square;
|
|
|
- painter.pen.color = new SColor("#0091FF");
|
|
|
- painter.pen.lineWidth = painter.toPx(4);
|
|
|
- painter.drawPolyline(this.pointList);
|
|
|
- // 是否闭合
|
|
|
- if (closeFlag) {
|
|
|
- painter.drawLine(
|
|
|
- pointList[this.pointList.length - 1],
|
|
|
- pointList[0]
|
|
|
- );
|
|
|
- }
|
|
|
+ painter.pen.color = this.borderColor;
|
|
|
+ painter.pen.lineWidth = painter.toPx(this.borderLine);
|
|
|
+ painter.brush.color = this.brushColor;
|
|
|
+ painter.drawPolygon([...this.pointList]);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 构造函数 创建多边形
|
|
|
*
|
|
|
*/
|
|
|
- createPolygon(painter: SPainter, pointList: SPoint[], closeFlag: boolean = false) {
|
|
|
+ _createPolygon(painter: SPainter, pointList: SPoint[]) {
|
|
|
painter.pen.lineCapStyle = SLineCapStyle.Square;
|
|
|
painter.pen.color = new SColor("#0091FF");
|
|
|
painter.pen.lineWidth = painter.toPx(4);
|
|
@@ -211,6 +211,18 @@ export class SPolygonItem extends SGraphyItem {
|
|
|
painter.pen.lineWidth = painter.toPx(4);
|
|
|
painter.drawPolygon([...this.pointList, this.lastPoint]);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+* 构造函数 创建多边形
|
|
|
+*
|
|
|
+*/
|
|
|
+ _editPolygon(painter: SPainter, pointList: SPoint[],point:SPoint) {
|
|
|
+ // 展示多边形
|
|
|
+ this._showPolygon(painter, pointList);
|
|
|
+ // 绘制顶点块
|
|
|
+
|
|
|
+ }
|
|
|
////////////以下为鼠标事件
|
|
|
|
|
|
/**
|
|
@@ -231,7 +243,10 @@ export class SPolygonItem extends SGraphyItem {
|
|
|
* @return boolean
|
|
|
*/
|
|
|
onKeyDown(event: KeyboardEvent): boolean {
|
|
|
- console.log(event)
|
|
|
+ if (this._status == 2 && event.code == 'Enter') {
|
|
|
+ this._status = 1
|
|
|
+ }
|
|
|
+ this.update()
|
|
|
return true;
|
|
|
} // Function onKeyDown()
|
|
|
/**
|
|
@@ -289,21 +304,16 @@ export class SPolygonItem extends SGraphyItem {
|
|
|
* @param painter painter对象
|
|
|
*/
|
|
|
onDraw(painter: SPainter): void {
|
|
|
- painter.pen.lineCapStyle = SLineCapStyle.Square;
|
|
|
- painter.pen.color = SColor.Transparent;
|
|
|
- painter.pen.lineWidth = painter.toPx(4);
|
|
|
- painter.brush.color = new SColor("#1EE887")
|
|
|
// 当状态为展示状态
|
|
|
if (this._status == 1) {
|
|
|
- painter.drawPolygon(this.pointList);
|
|
|
// 闭合多边形
|
|
|
+ this._showPolygon(painter, this.pointList);
|
|
|
} else if (this._status == 2) {
|
|
|
// 创建状态
|
|
|
- // this._closePolygon(painter, this.pointList, this.closeFlag);
|
|
|
- this.createPolygon(painter, this.pointList)
|
|
|
+ this._createPolygon(painter, this.pointList)
|
|
|
} else {
|
|
|
// 编辑状态
|
|
|
- // this._closePolygon(painter, this.pointList);
|
|
|
+ this._editPolygon(painter, this.pointList);
|
|
|
}
|
|
|
} // Function onDraw()
|
|
|
}
|