awslabs / aws-icons-for-plantuml

PlantUML sprites, macros, and other includes for Amazon Web Services services and resources
Other
916 stars 159 forks source link

Support more than 10 indexes on $DefineCalloutSprite function #78

Open carloscrono opened 2 months ago

carloscrono commented 2 months ago

I recently created a Sequence Diagram where I needed to track the number of sequences. In one of my blocks I had more than 10 indexes, so, I had to integrate your DefineCallOut function inline with the following code.

!function $DefineCalloutSprite($number, $textcolor, $fillcolor, $xtext) 
!$header = 'sprite Callout_' + $number + ' <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18">'
!$circle = '<circle cx="11" cy="11" r="11" fill="' + $fillcolor + '" />'
!$textnumber = '<text x="' + $xtext + '" y="15" fill="' + $textcolor + '" font-size="12">' + $number + '</text></svg>'
!return $header + $circle + $textnumber
!endfunction

!$CalloutIndex = 1
!while $CalloutIndex < 100
  !if $CalloutIndex < 10
    $DefineCalloutSprite($CalloutIndex, $AWS_BG_COLOR, $AWS_FG_COLOR, 7)
  !else
    $DefineCalloutSprite($CalloutIndex, $AWS_BG_COLOR, $AWS_FG_COLOR, 3)
  !endif
  !$CalloutIndex = $CalloutIndex + 1
!endwhile

I would like to integrate this small change so we can support more indexes, unless until 99.

Thanks

hakanson commented 2 months ago

I'm working on an update now and will take a look at this, likely next week based on my schedule.

carloscrono commented 2 months ago

Thanks, that would be great

hakanson commented 1 month ago

Instead of increasing circle size, I'm going to decrease font size. When I tested larger size on sequence diagrams, the larger circle size overlapped the message line/arrow.

!function $DefineCalloutSprite($number, $textcolor, $fillcolor, $x) 
!$header = 'sprite Callout_' + $number + ' <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18">'
!$circle = '<circle cx="9" cy="9" r="9" fill="' + $fillcolor + '" />'
!$textnumber = '<text x="' + $x + '" y="13" fill="' + $textcolor + '" font-size="10">' + $number + '</text></svg>'
!return $header + $circle + $textnumber
!endfunction

!$CalloutIndex = 1
!while $CalloutIndex < 100
  !if $CalloutIndex < 10
    $DefineCalloutSprite($CalloutIndex, $AWS_BG_COLOR, $AWS_FG_COLOR, 6)
  !else
    $DefineCalloutSprite($CalloutIndex, $AWS_BG_COLOR, $AWS_FG_COLOR, 3)
  !endif
  !$CalloutIndex = $CalloutIndex + 1
!endwhile