Cytoscape JS создать пользовательский рендерер (расширение рендерера)
Пожалуйста, кто-нибудь может мне помочь с созданием расширения рендерера для cytoscape js lib.
Вот как это работает сейчас:
let CanvasRenderer = cytoscape('renderer', 'canvas');
CanvasRenderer.prototype.drawPolygonPath = function(context, x, y, width, height, points) {
// my implementation goes here
}
Как говорится на сайте cytoscape, это расширяемая библиотека! Поскольку я использую машинопись в своем проекте, я хочу что-то вроде этого:
class MyRenderer {
constructor() {
}
}
cytoscape('renderer', 'myRenderer', MyRenderer);
Этот код явно выдает ошибку cytoscape, которая говорит о том, что я не реализовал некоторые методы...
Затем я нашел расширение https://github.com/wehriam/cytoscape-css-renderer, и оно не работало с моей версией cytoscape (я использую 2.7.13). Я также попытался решить эту проблему, аналогично cytoscape-css-renderer:
let CanvasRenderer = cytoscape('renderer', 'canvas');
class MyRenderer {
constructor(options) {
CanvasRenderer.call(options);
}
}
MyRenderer.prototype = Object.create(CanvasRenderer.prototype);
MyRenderer.prototype.constructor = MyRenderer;
$.extend(PricingRenderer, CanvasRenderer);
cytoscape('renderer', 'myRenderer', MyRenderer);
но он выдает эту ошибку:
Не могу зарегистрироваться myRenderer
за renderer
поскольку clientFunctions
уже существует в прототипе и не может быть переопределено
Так может кто-нибудь помочь мне с этим... Спасибо!
1 ответ
Используйте рендерер canvas в качестве примера: https://github.com/cytoscape/cytoscape.js/tree/master/src/extensions/renderer/canvas