diff --git a/src/components/DiagramFrame/SeqDiagram/LifeLineLayer/LifeLine.vue b/src/components/DiagramFrame/SeqDiagram/LifeLineLayer/LifeLine.vue index 9fdc7164a..ccb1c2826 100644 --- a/src/components/DiagramFrame/SeqDiagram/LifeLineLayer/LifeLine.vue +++ b/src/components/DiagramFrame/SeqDiagram/LifeLineLayer/LifeLine.vue @@ -4,22 +4,22 @@ class="lifeline absolute flex flex-col mx-2 transform -translate-x-1/2 h-full" :style="{ paddingTop: top + 'px', left: left + 'px' }" > -
{{centerOf(entity.name)}}
+
{{ centerOf(entity.name) }}
-
+
\ No newline at end of file + store.getters.onMessageClick(context, messageRef.value); +}; + diff --git a/src/components/DiagramFrame/SeqDiagram/MessageLayer/Block/Statement/Statement.vue b/src/components/DiagramFrame/SeqDiagram/MessageLayer/Block/Statement/Statement.vue index 71a36065a..78f9f5ae0 100644 --- a/src/components/DiagramFrame/SeqDiagram/MessageLayer/Block/Statement/Statement.vue +++ b/src/components/DiagramFrame/SeqDiagram/MessageLayer/Block/Statement/Statement.vue @@ -10,7 +10,7 @@ :commentObj="commentObj" :selfCallIndent="selfCallIndent" :number="number" - :inheritFromOccurrence="inheritFromOccurrence" + :fromOccurrence="fromOccurrence" > @@ -29,13 +29,7 @@ import Comment from "../../../../../Comment/Comment"; export default { name: "statement", - props: [ - "context", - "selfCallIndent", - "number", - "collapsed", - "inheritFromOccurrence", - ], + props: ["context", "selfCallIndent", "number", "collapsed", "fromOccurrence"], computed: { comment: function () { return this.context.getComment() ? this.context.getComment() : ""; diff --git a/src/components/DiagramFrame/SeqDiagram/MessageLayer/MessageLayer.vue b/src/components/DiagramFrame/SeqDiagram/MessageLayer/MessageLayer.vue index 728c427a1..eaea76ab5 100644 --- a/src/components/DiagramFrame/SeqDiagram/MessageLayer/MessageLayer.vue +++ b/src/components/DiagramFrame/SeqDiagram/MessageLayer/MessageLayer.vue @@ -66,14 +66,6 @@ onUpdated(() => { border-right-width: 7px; } - .alt, - .fragment { - .interaction.sync { - border-left-width: 7px; - //border-right-width: 0; - } - } - .occurrence { .occurrence { .interaction.sync, @@ -86,17 +78,26 @@ onUpdated(() => { .occurrence { .interaction.sync, .interaction.async { - border-left-width: 7px; + border-left-width: 8px; + } + + .interaction.sync.from-no-occurrence { + border-left-width: 0; } .interaction.sync.right-to-left { border-right-width: 7px; } .interaction.async.right-to-left { border-right-width: 7px; + border-left-width: 7px; + } + .interaction.async.right-to-left.from-occurrence { border-left-width: 0; } + .interaction.async.right-to-left.to-occurrence { + border-left-width: 7px; + } } - .interaction.sync.right-to-left { /* This border width configuration make sure the content width is the same as from the source occurrence's right border to target diff --git a/src/parser/Owner.js b/src/parser/Owner.js index 277c6b573..fac729eae 100644 --- a/src/parser/Owner.js +++ b/src/parser/Owner.js @@ -1,4 +1,4 @@ -import { default as sequenceParser } from '../generated-parser/sequenceParser'; +import { default as sequenceParser } from "../generated-parser/sequenceParser"; const seqParser = sequenceParser; const CreationContext = seqParser.CreationContext; @@ -19,7 +19,7 @@ CreationContext.prototype.Constructor = function () { // Owner of m1 m2 m3 CreationContext.prototype.Owner = function () { if (!this.Constructor()) { - return 'Missing Constructor'; + return "Missing Constructor"; } const assignee = this.Assignee(); const type = this.Constructor(); @@ -51,3 +51,16 @@ AsyncMessageContext.prototype.To = function () { AsyncMessageContext.prototype.Owner = function () { return this.To() || getOwnerFromAncestor(this.parentCtx); }; + +AsyncMessageContext.prototype.isToOccurrence = function (current) { + const target = current.Owner(); + while (current != null) { + if (current?.message) { + if (current?.message()?.From() === target) { + return true; + } + } + current = current.parentCtx; + } + return false; +};