Мне нужно создать редактор диаграмм, поэтому я использую AlloYUI, я добавил пользовательский узел после ответа для this question.Изменить редактор по умолчанию для узла в AlloYUI Diagram Builder
Я успешно установил новые узлы и извлечь его значения через diagramBuilder.toJSON()
То, что я пытаюсь сделать, это изменить редактор по умолчанию виджет на для пользовательского атрибута моего пользовательского узла, я бы как изменить текстовое поле для виджета даты, но моя цель - использовать любые другие элементы формы, такие как выбор или набор переключателей.
Играя вокруг с отладчиком javascript, включенным в WebStorm, я обнаружил, что поля по умолчанию имеют атрибут «editor», где определен «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'
})
});
Но ничего не работает. Вы знаете, как изменить редактор по умолчанию?