rt-sim-training-client/src/jmapNew/shape/StationStand/EMouse.js

67 lines
1.8 KiB
JavaScript
Raw Normal View History

2019-11-29 12:51:58 +08:00
import Group from 'zrender/src/container/Group';
import Rect from 'zrender/src/graphic/shape/Rect';
export default class EMouse extends Group {
constructor(device) {
super();
this.device = device;
this.zlevel = device.zlevel;
this.style = device.style;
this.create();
}
2019-11-29 12:51:58 +08:00
create() {
this.border = new Rect({
silent: true,
zlevel: this.zlevel,
z: 0,
2021-02-19 17:27:10 +08:00
shape: {
x: 0,
y: 0,
width: 0,
height: 0
},
style: {
lineDash: this.style.StationStand.mouseOverStyle.borderLineDash,
stroke: this.style.StationStand.mouseOverStyle.borderLineColor,
fill: this.style.transparentColor
}
});
2021-02-19 17:27:10 +08:00
this.border.hide();
this.add(this.border);
}
2019-11-29 12:51:58 +08:00
mouseover(e) {
2021-02-19 17:27:10 +08:00
const model = this.device.model;
const mapDevice = this.device.mapDevice;
const psdModel = mapDevice[model.psdCode];
const rect = this.device.getBoundingRect().clone();
2021-02-20 17:02:40 +08:00
if (psdModel && psdModel.instance) {
rect.union( psdModel.instance.getBoundingRect());
}
if (this.style.StationStand.mouseOverStyle.standBackgroundColor) {
this.device.solidStand && this.device.solidStand.removeHover();
this.device.solidStand && this.device.solidStand.addHover({
2021-02-20 17:02:40 +08:00
fill: this.device.__over
? this.style.StationStand.mouseOverStyle.standBackgroundColorOver
: this.style.StationStand.mouseOverStyle.standBackgroundColor
});
2021-02-19 17:27:10 +08:00
}
this.border.setShape(rect);
this.border.show();
}
2019-11-29 12:51:58 +08:00
mouseout(e) {
if (!this.device.__down) {
2021-02-20 17:02:40 +08:00
if (this.style.StationStand.mouseOverStyle.standBackgroundColor) {
this.device.solidStand && this.device.solidStand.removeHover();
2021-02-20 17:02:40 +08:00
}
this.border.hide();
}
}
2019-11-29 12:51:58 +08:00
}