Plantuml 活动栏与参与者的颜色相匹配

问题描述 投票:0回答:1

我正在制作一些 plantuml 图,对于任何活跃的参与者,我想显示与参与者颜色相似的颜色。有没有办法直接从参与者框中引用颜色?

示例代码:

@startuml

Participant "bar" as bar #aquamarine
Participant "foo" as foo #lightblue
bar -> foo: hello
activate bar #aquamarine
activate foo #lightblue
foo -> bar : data back
deactivate foo
deactivate bar
@enduml

/' Can above statement - bar color #aquamarine be taken from participant "bar" with some config /'
/' Can above statement - foo color #lightblue be taken from participant "foo" with some config /'

图片:

=== 添加新信息(目前的解决方法)===
我探索了很多文档,现在我想到的最好的方法是编写一些脚本,以根据如下参数获得至少基本颜色:

' ======= SCRIPTING STARTS=========
' defining colors
!$aClr = "#lavender"
!$bClr = "#business"
!$ctClr = "#deepskyblue"

!function clr()
    !return clr("a")
!endfunction

!function clr($p)
    !return %get_variable_value("$"+$p+"Clr")
!endfunction
' ======= SCRIPTING ENDS=========

participant "A" as a clr()
participant "B" as a clr("b")

如果有更好的方法请提出。
谢谢

colors plantuml
1个回答
0
投票
' ======= SCRIPTING STARTS=========
' defining colors
!$aClr = "#lavender"
!$bClr = "#business"
!$ctClr = "#deepskyblue"

!function clr()
    !return clr("a")
!endfunction

!function clr($p)
    !return %get_variable_value("$"+$p+"Clr")
!endfunction

!procedure active($p)
    activate $p clr($p)
!endprocedure
' ======= SCRIPTING ENDS=========

participant "A" as a clr()
participant "B" as b clr("b")

a -> b : hello
active(a)
active(b)
b -> a : data back

deactivate a
deactivate b
© www.soinside.com 2019 - 2024. All rights reserved.