Skip to content

Commit d870797

Browse files
Sagar PatelNicolas ERNY
authored andcommitted
Add: default node selection (#90)
1 parent 048d760 commit d870797

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

src/GojsDiagram.test.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ describe('<GojsDiagram />', () => {
8888

8989
const myDiagramId = 'myDiagramId';
9090

91+
const defaultSelectedNodeKey = 'Beta';
92+
9193
let diagram: Diagram;
9294
let wrapper;
9395
let modelChangeCallback;
@@ -127,6 +129,7 @@ describe('<GojsDiagram />', () => {
127129
newdata.key = keyIndex;
128130
return newdata;
129131
}}
132+
defaultSelectedNode={defaultSelectedNodeKey}
130133
/>,
131134
{ attachTo: dom }
132135
);

src/GojsDiagram.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export interface GojsDiagramProps<N extends BaseNodeModel, L extends LinkModel>
2828
makeUniqueLinkKeyFunction?: () => go.Key;
2929
copyNodeDataFunction?: (data: ObjectData, model: go.Model) => ObjectData;
3030
updateDiagramProps?: (myDiagram: Diagram) => void;
31+
defaultSelectedNode?: string;
3132
}
3233

3334
export interface GojsModel extends go.Model {
@@ -82,7 +83,7 @@ class GojsDiagram<N extends BaseNodeModel, L extends LinkModel> extends React.Pu
8283
this.myDiagram.commitTransaction('updated');
8384
}
8485
init() {
85-
const { createDiagram, diagramId, onModelChange } = this.props;
86+
const { createDiagram, diagramId, onModelChange, defaultSelectedNode } = this.props;
8687
this.myDiagram = createDiagram(diagramId);
8788
if (onModelChange) {
8889
this.myDiagram.addModelChangedListener(this.modelChangedHandler);
@@ -102,6 +103,10 @@ class GojsDiagram<N extends BaseNodeModel, L extends LinkModel> extends React.Pu
102103
makeUniqueLinkKeyFunction: this.props.makeUniqueLinkKeyFunction || null,
103104
copyNodeDataFunction: this.props.copyNodeDataFunction || null
104105
});
106+
107+
if (defaultSelectedNode) {
108+
this.myDiagram.select(this.myDiagram.findNodeForKey(defaultSelectedNode));
109+
}
105110
}
106111
render() {
107112
return <div id={this.props.diagramId} className={this.props.className} />;

0 commit comments

Comments
 (0)