Hello,
I'm creating a diagram. I've done some research on how to create a custom shape, but I'm having a few problems on dynamically modifying the data of the various elements present in the shape.
1) Firstly, I've understood the code bellow that allows me to create a custom shape:
let newShape = function() {
let dataviz = kendo.dataviz
let g = new dataviz.diagram.Group()
let dataItem = options.dataItem
g.append(new dataviz.diagram.Rectangle({
width: 210,
height: 75,
stroke: {
width: 0
},
fill: {
gradient: {
type: 'linear',
stops: [{
color: dataItem.colorScheme,
offset: 0,
opacity: 0.5
}, {
color: dataItem.colorScheme,
offset: 1,
opacity: 1
}]
}
}
}))
g.append(new dataviz.diagram.TextBlock({
text: dataItem.name,
x: 20,
y: 20,
fill: '#fff'
}))
g.append(new dataviz.diagram.TextBlock({
text: dataItem.props,
x: 20,
y: 40,
fill: '#fff'
}))
return g
}
However, I'm having trouble dynamically modifying the value of a TextBlock.
Which field do I need to access, after retrieving the shape via diagram.shapes[i] , to be able to modify the "text" field of a TextBlock? Or, more generally, how can I easily retrieve an element (TextBlock, etc.) from a compound shape?
I've tried accessing various fields in the shape object referring to the TextBlock element and then calling shape[i].redraw( ) / .redrawVIsual( ), but no shape is updated.
2) Secondly, what kind of components can be added to the Group ? My goal is to add a progress bar into my shape, but I don't think that's possible. Is there a list of elements (TextBlocks, ...) that can be appended to Group ? Or any idea to have a progress bar in a shape ? Maybe using the progressbar component and attach a progress bar to each shape ?
Thanks in advance,
Best,
VB