Как использовать Mixin в декораторах для qooxdoo?

В документации по qooxdoo есть способы написания декораторов, но нет ясного способа их использования.

Так что если есть гуру qooxdoo, пожалуйста, просветите меня.

Я пробовал это:

qx.Mixin.define("phwabe.theme.MTextShadow", {
  properties : {
    textShadowColor : {
      nullable : true,
      check : "Color"
    }
  },

  members : {
    _styleTextShadow : function(styles) {
      var color = this.getTextShadowColor();
      if (color === null) {
        return;
      }
      color = qx.theme.manager.Color.getInstance().resolve(color);
      styles["text-shadow"] = color + " 1px 1px";
    }
  }
});

// patch the original decorator class
qx.Class.patch(qx.ui.decoration.Decorator, phwabe.theme.MTextShadow);

и это:

//in Decoration.js of theme
    "chatitem": {
      style: {
        // width: 1,
        color: "rgba(200,200,200,0.2)",
        textShadowColor: red
      }

Только в конечном итоге с этой неизвестной ошибкой свойства

phwabe.js?v=e7a4ce2e449b91add3c65027e524a0c7:210 Ошибка Uncaught: такого свойства нет: textShadowColor

1 ответ

Решение

Я нашел, как это исправить:

Ваш пользовательский миксин:

qx.Mixin.define("phwabe.theme.MTextShadow", {
  properties : {
    textShadowColor : {
      nullable : true,
      check : "Color"
    }
  },

  members : {
    _styleTextShadow : function(styles) {
      var color = this.getTextShadowColor();
      if (color === null) {
        return;
      }
      color = qx.theme.manager.Color.getInstance().resolve(color);
      styles["text-shadow"] = color + " 1px 1px";
    }
  }
});

// в украшении темы темы

qx.Class.patch(qx.ui.decoration.Decorator, phwabe.mixins.MTextShadow);
"chatitem": {
  style: {
    // width: 1,
    color: "rgba(200,200,200,0.2)",
    textShadowColor: red
  }
Другие вопросы по тегам