Я пытаюсь иметь текстовые поля, которые показывают свою границу только тогда, когда виджет находится в фокусе (или, возможно, зависает)
Я использую Qooxdoo 3.5.
У меня есть следующее для Appearance.js
qx.Theme.define("myapp.theme.Appearance",
{
extend : qx.theme.modern.Appearance,
appearances :
{
"dynamicborder-textfield" : {
base : true,
style : function(states)
{
var result = {};
if (states.hovered) {
result.decorator = "noborder";
} else {
result.decorator = "singleborder";
}
return result;
}
}
}
});
и у меня есть следующее для моего Decoration.js
qx.Theme.define("myapp.theme.Decoration",
{
extend : qx.theme.modern.Decoration,
decorations :
{
"noborder" : {
},
"singleborder" : {
decorator : qx.ui.decoration.Decorator,
style : {
width : 2,
color : red
}
}
}
});
Я устанавливаю внешний вид своего текстового поля во время выполнения так
var textfield = new qx.ui.form.TextField();
textfield.setAppearance("dynamicborder-textfield");
Все, что я получаю, это текстовые поля без границ все время. Неважно, находятся ли они в зависшем состоянии или в любом другом состоянии. Что я делаю не так? Пожалуйста, рассмотрите также сфокусированное состояние.