Мне нужно создать редактор диаграмм, поэтому я использую AlloYUI, я добавил пользовательский узел после ответа на этот вопрос.
Я успешно установил новые узлы и получил их значения через диаграмму Builder.toJSON().
То, что я пытаюсь сделать, это изменить виджет редактора по умолчанию для пользовательского атрибута моего пользовательского узла, я хотел бы изменить текстовое поле для виджета выбора даты, но моя цель - использовать любые другие элементы формы, такие как выберите или набор переключателей.
Играя с отладчиком javascript, включенным в WebStorm, я обнаружил, что поля по умолчанию имеют атрибут «редактор», где определен «textAreaCellEditor».
Но у моего пользовательского свойства нет этого атрибута, поэтому я пытаюсь подключить редактор, но не могу заставить его работать, я пробовал это:
Y.DiagramNodeCustom = Y.Component.create({
NAME: 'diagram-node',
ATTRS: {
type: {
value: 'custom'
},
custom_attr: {
value: 'customAttr'
}
},
EXTENDS: Y.DiagramNodeTask,
prototype: {
getPropertyModel: function () {
var instance = this;
var model = Y.DiagramNodeTask.superclass.getPropertyModel.apply(
instance, arguments);
model.push({
attributeName: 'customAttr',
name: 'Custom Attribute',
editor: Y.Component.create({
NAME: "DateField",
EXTENDS: Y.DateCellEditor
})
});
return model;
},
SERIALIZABLE_ATTRS: ['description', 'name', 'required', 'type',
'width', 'height', 'zIndex', 'xy', 'customAttr']
}
});
Y.DiagramBuilder.types['custom'] = Y.DiagramNodeCustom;
Я также попытался изменить раздел «model.push» на:
model.push({
attributeName: 'customAttr',
name: 'Custom Attribute',
editor: {name: "textCellEditor"}
});
и к:
model.push({
attributeName: 'customAttr',
name: 'Custom Attribute',
editor: Y.DateCellEditor({
name: 'DateCellEditor'
})
});
Но ничего не работает. У вас есть идеи, как я могу изменить редактор по умолчанию?