Здравствуйте.
Подскажите пожалуйста как изменить\переопределить существующий компонент. И как добавить свой.
На данный момент в модуле в котором использую компонент делаю так:
Ext.define("Terrasoft.controls.UsrTextEdit", {
extend: "Terrasoft.BaseEdit",
alternateClassName: "Terrasoft.UsrTextEdit",
left: "",
top: "",
combineStyles: function() {
var styles = this.callParent(arguments);
var left = this.left ? this.left : "";
var top = this.top ? this.top : "";
var wrapStyle = styles.wrapStyle;
if (left) {
wrapStyle.left = left;
}
if (top) {
wrapStyle.top = top;
}
return styles;
},
init: function() {
this.callParent(arguments);
this.addEvents(
"onmousedown",
"onmousemove",
"onmouseup"
);
},
initDomEvents: function() {
this.callParent(arguments);
var el = this.getEl();
el.on({
"onmousedown": {
fn: this.onMouseDown,
scope: this
},
"onmousemove": {
fn: this.onMouseMove,
scope: this
},
"onmouseup": {
fn: this.onMouseUp,
scope: this
}
});
},
onMouseDown: function(e) {
Console.Log('onMouseDown');
this.fireEvent("onmousedown", this, e);
},
onMouseMove: function(e) {
Console.Log('onMouseMove');
this.fireEvent("onmousemove", this, e);
},
onMouseUp: function(e) {
Console.Log('onMouseUp');
this.fireEvent("onmouseup", this, e);
}
});
extend: "Terrasoft.BaseEdit",
alternateClassName: "Terrasoft.UsrTextEdit",
left: "",
top: "",
combineStyles: function() {
var styles = this.callParent(arguments);
var left = this.left ? this.left : "";
var top = this.top ? this.top : "";
var wrapStyle = styles.wrapStyle;
if (left) {
wrapStyle.left = left;
}
if (top) {
wrapStyle.top = top;
}
return styles;
},
init: function() {
this.callParent(arguments);
this.addEvents(
"onmousedown",
"onmousemove",
"onmouseup"
);
},
initDomEvents: function() {
this.callParent(arguments);
var el = this.getEl();
el.on({
"onmousedown": {
fn: this.onMouseDown,
scope: this
},
"onmousemove": {
fn: this.onMouseMove,
scope: this
},
"onmouseup": {
fn: this.onMouseUp,
scope: this
}
});
},
onMouseDown: function(e) {
Console.Log('onMouseDown');
this.fireEvent("onmousedown", this, e);
},
onMouseMove: function(e) {
Console.Log('onMouseMove');
this.fireEvent("onmousemove", this, e);
},
onMouseUp: function(e) {
Console.Log('onMouseUp');
this.fireEvent("onmouseup", this, e);
}
});
Но таким способом не получилось подписаться на новые события, в лог ничего не выводиться, combineStyles отрабатывает нормально.
Нравится
2 комментария
25 августа 2015 11:40
Добрый день!
Попробуйте убрать приставку "on" из названия событий "onmousedown", "onmousemove", "onmouseup". Фреймворк должен сам определять, нужна она или нет.
Также для вывода в консоль необходимо использовать нижний регистр: console.log(...).
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать