grossman / mscgen

Automatically exported from code.google.com/p/mscgen
GNU General Public License v2.0
0 stars 2 forks source link

Box for optional elements #43

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
Suggestion:
Have box around optional sequences. With dotted lines it is possible to  
separate optional sequences but it is not easy to see where one optional part 
starts and ends. See examples.

example.png shows optional sequences "" and "b" closed between dotted lines
example_mod.png shows optional sequences closed with dotted line boxes

Original issue reported on code.google.com by p...@rokki.net on 31 Aug 2010 at 7:54

Attachments:

GoogleCodeExporter commented 8 years ago

Original comment by NThykier@gmail.com on 31 Aug 2010 at 8:36

GoogleCodeExporter commented 8 years ago
I'm definitely for it.
Also, a general grouping method would be useful; it could be based on possible 
boxes from UML: alt, loop, opt.

Original comment by w.male...@gmail.com on 16 Sep 2010 at 12:51

GoogleCodeExporter commented 8 years ago
Arc skip can be used to do this kind of boxing, but it will require user to 
update arc skip, every time he changes msc. Hence I am using the following 
syntax currently in my local version of mscgen. Calling it a frame, the 
following commands are added where A and B are entity names. "label" attribute 
of these commands contain the frame "condition" text, if any.

A altf B      # Start an alternative frame
A optf B      # Start an optional frame
A loopf B     # Start a loop frame
A parf B      # Start a parallel frame
A seqf B      # Start a sequential frame
A excf B      # Start an exception frame
A startf B    # Start a generic frame whose type string (e.g. loop, alt)
              # can be specified in the attribute "frametext".

To split the frame (usually used in case of altf and parf frames), the 
following two commands are used. Both are same and can be used interchangeably. 
"label" attribute of these commands contain the frame "condition" text of split 
frame, if any.

elsef         # Split a frame started recently
splitf        # Split a frame started recently

To terminate a frame, the following command is used. "label" attribute is not 
valid in this command.

endf          # End a recently started frame

Parallel frames (Similar to parallel arcs) are usually not needed, but just not 
to limit user from drawing parallel frames, the attribute "framekey" can be 
used in the above commands. The commands containing the same "framekey" 
attribute are grouped together.

Original comment by arunmozh...@gmail.com on 22 Oct 2010 at 7:54

GoogleCodeExporter commented 8 years ago
A configurable default background colour for alternative boxes would be 
appreciated.

Original comment by towom...@googlemail.com on 19 Feb 2015 at 1:04