Как изменить цвет обводки ячейки

Я пытаюсь динамически изменять цвет границы некоторых моих фигур на основе настраиваемого атрибута ячейки, следующий мой код:

        var cells = graph.getChildCells();
        for (var i = 0; i < cells.length; i++) {
            var cell = cells[i];
            if (cell != null && ....) {
               var style=cell.getStyle();                       
               console.info('style='+style);
               style=style+mxConstants.STYLE_STROKECOLOR+"=red";
               cell.setStyle(style);
               console.info('style='+style);
            }
         }

В консоли браузера я вижу:

style = ellipse; whiteSpace = wrap; вращение = 40; style = ellipse; whiteSpace = wrap; вращение = 40; strokeColor = красный

но ничего не происходит. Это правильный подход?


person Marco Azzalini    schedule 28.11.2018    source источник


Ответы (2)


Я сам нашел ответ ;-) Ниже приведен рабочий код для изменения цвета обводки без изменения других настроек / стилей формы:

var style=graph.getModel().getStyle(cell);
var newStyle=mxUtils.setStyle(style,mxConstants.STYLE_STROKECOLOR,'red');
var cs= new Array();
cs[0]=cell;
graph.setCellStyle(newStyle,cs);

Я думаю, что это немного сложно по сравнению с тем, что он делает, но я не нашел лучшего API, чем эти.

person Marco Azzalini    schedule 28.11.2018

Существует лучший способ.

graph.setCellStyles(mxConstants.STYLE_STROKECOLOR, 'red', [cell])

См. здесь

person Najor    schedule 20.04.2020