From ec3e022ca3bb8d471e1848bca812a41e42071179 Mon Sep 17 00:00:00 2001 From: Dylan Vorster Date: Sun, 25 Feb 2018 10:16:04 +0200 Subject: [PATCH] deserialize labels correctly --- src/defaults/widgets/DefaultLinkWidget.tsx | 8 ++++++-- src/models/LinkModel.ts | 7 ++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/defaults/widgets/DefaultLinkWidget.tsx b/src/defaults/widgets/DefaultLinkWidget.tsx index 8b51fb6..5417b8d 100644 --- a/src/defaults/widgets/DefaultLinkWidget.tsx +++ b/src/defaults/widgets/DefaultLinkWidget.tsx @@ -58,11 +58,15 @@ export class DefaultLinkWidget extends React.Component 0){ + window.requestAnimationFrame(this.calculateAllLabelPosition.bind(this)); + } } componentDidMount() { - window.requestAnimationFrame(this.calculateAllLabelPosition.bind(this)); + if(this.props.link.labels.length > 0) { + window.requestAnimationFrame(this.calculateAllLabelPosition.bind(this)); + } } addPointToLink = (event: MouseEvent, index: number): void => { diff --git a/src/models/LinkModel.ts b/src/models/LinkModel.ts index d535179..313f340 100644 --- a/src/models/LinkModel.ts +++ b/src/models/LinkModel.ts @@ -38,7 +38,12 @@ export class LinkModel extends return p; }); - this.labels = ob.label || null; + //deserialize labels + _.forEach(ob.labels || [], (label: any) => { + let labelOb = engine.getLabelFactory(label.type).getNewInstance(); + labelOb.deSerialize(label, engine); + this.addLabel(labelOb); + }); if (ob.target) { this.setTargetPort(