@STMax wrote:
I have node template as shown below and a click event handler for each of the individual parts in the Node Template. When clicked I am changing the selectionObjectName dynamically to highlight the specific part that was clicked. But the selection (blue highlight) in not setting consistently when I click between the different parts with in the node template. Please let me know if my approach is not correct or if I am missing something. Thanks.
$(go.Node, "Spot", $( go.Shape, { name: "Part0", fill: "#FCDBD6", strokeWidth: 1, stroke: "#D8BB71", desiredSize: new go.Size(120, 100), click: function (e: go.InputEvent, obj: go.GraphObject) { if (obj && obj.part && obj.part.diagram) { obj.part.selectionObjectName = "Part0"; } } } ), $( go.Panel, "Horizontal", { background: 'rgba(255,0,0,0.1)', alignment: go.Spot.TopRight, alignmentFocus: go.Spot.BottomLeft, margin: new go.Margin(0, 0, 10, 0), visible: true }, $( go.Shape, "RoundedRectangle", { width: 20, height: 20, name: 'Part1', strokeWidth: 0, fill: 'red', click: function (e: go.InputEvent, obj: go.GraphObject) { if (obj && obj.part && obj.part.diagram) { obj.part.selectionObjectName = "Part1"; } } }, new go.Binding("visible", "part1Visible") ), $( go.Shape, "RoundedRectangle", { width: 20, height: 20, name: 'Part2', strokeWidth: 0, fill: 'green', margin: new go.Margin(0, 0, 0, 10), click: function (e: go.InputEvent, obj: go.GraphObject) { if (obj && obj.part && obj.part.diagram) { obj.part.selectionObjectName = "Part2"; } } }, new go.Binding("visible", "part2Visible") ) ), $( go.Panel, "Horizontal", { background: 'rgba(255,0,0,0.1)', alignment: go.Spot.BottomRight, alignmentFocus: go.Spot.TopLeft, margin: new go.Margin(10, 0, 0, 0), visible: true }, $( go.Shape, "RoundedRectangle", { width: 20, height: 20, name: 'Part3', fill: 'blue', click: function (e: go.InputEvent, obj: go.GraphObject) { if (obj && obj.part && obj.part.diagram) { obj.part.diagram.clearSelection(); obj.part.selectionObjectName = "Part3"; } } }, new go.Binding("visible", "part3Visible") ) ), $( go.TextBlock, this.textStyle(), { margin: 8, maxSize: new go.Size(160, NaN), wrap: go.TextBlock.WrapFit, editable: true, stroke: "#454545" }, new go.Binding("text").makeTwoWay() ), //Ports definition here..... );
Posts: 2
Participants: 2