Portál AbcLinuxu, 5. května 2025 14:50

Dotaz: PlantUML: jak automaticky ocislovat akce v activity diagramu?

2.4.2018 13:37 zdenek2008 | skóre: 26
PlantUML: jak automaticky ocislovat akce v activity diagramu?
Přečteno: 269×
Odpovědět | Admin
Pri navrhu vetsich activity diagramu v PlantUML je obcas problem s identifikaci konkretni akce druhym lidem, takze by bylo vhodne mit je automaticky ocislovane abych Vojtovi ze mlyna jednoduse napsal "mrkni na akci c. 38, co na ni rika Zubejda?" a nemusel mu obsirne vysvetlovat o ktere casti diagramu se momentalne bavime. Sequence diagram ma na to prikaz autonumber, ale activity diagram ne. Tak jsem myslel ze bych ten zdrojak po aktualizaci zpracoval nejakym skriptem (asi v bashi/pythonu, nebo snippetem/makrem primo v kWrite?) ktery by pridal auto increment cislovani do kazde akce, tedy nekam mezi kazdou uvodni dvojtecku a uzaviraci znak jako treba v nasledujicim kodu:

@startuml
:Ready;
:next(o)|
:Receiving;
split
 :nak(i)<
 :ack(o)>
split again
 :ack(i)<
 :next(o)
 on several line|
 :i := i + 1]
 :ack(o)>
split again
 :err(i)<
 :nak(o)>
split again
 :foo/
split again
 :i > 5}
stop
end split
:finish;
@enduml
Nemeli byste nekdo nejaky tip jak na to co nejjednoduseji? Predem diky za pripadne tipy.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (zdenek2008 (tazatel))
3.4.2018 10:02 .
Rozbalit Rozbalit vše Re: PlantUML: jak automaticky ocislovat akce v activity diagramu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
awk 'BEGIN { ID=1 } /:/ { sub(/:/, ":" ID " "); ID++ } 1'
3.4.2018 16:20 zdenek2008 | skóre: 26
Rozbalit Rozbalit vše Re: PlantUML: jak automaticky ocislovat akce v activity diagramu?
Diky moc, vyzkousim, zvysi to prehlednost diagramu.
4.4.2018 20:55 zdenek2008 | skóre: 26
Rozbalit Rozbalit vše Re: PlantUML: jak automaticky ocislovat akce v activity diagramu?
Příloha:
Tady je vysledek. Co bych si mohl prat vic? Diky!
4.4.2018 21:01 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PlantUML: jak automaticky ocislovat akce v activity diagramu?
Ještě by to číslo mohlo být vedle bloku, kterého se týká, jiným fontem nebo s jiným pozadím.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
4.4.2018 23:06 zdenek2008 | skóre: 26
Rozbalit Rozbalit vše Re: PlantUML: jak automaticky ocislovat akce v activity diagramu?
V PlantUML diskuznim foru nekdo pozadoval pridani autonumber prikazu do activity diagramu, zatim to nikdo nepridal; ale ten uzivatel chtel cislovat edges misto nodes. To by taky vyhovovalo, ale zatim se mi vic libi cislovani primo v bloku/node/akci/aktivite nebo jakkoliv tomu rikame. Plantuml nabizi bohate formatovani, takze tam je velky prostor ke zlepsovani. Jeste si budu muset trochu pohrat s awk, az bude vic casu. Napriklad awk cisluje i zakomentovane nodes/bloky/akce, zkratka kde je :neco: i kdyz je pred tim ' jako znak pro komentar.
5.4.2018 02:39 .
Rozbalit Rozbalit vše Re: PlantUML: jak automaticky ocislovat akce v activity diagramu?
To první // je regexp filtrující řádky, pro které se provede následující příkaz. Dá se napsat přesněji. (začátek řádku, whitespace, dvojtečka).
awk 'BEGIN { ID=1 } /^\s*:/ { sub(/:/, ":" ID " "); ID++ } 1'
V awku se dá udělat hodně, ale jestli plánuješ nějaké větší brikule, tak ho přeskoč a zkus raději ten Python.
5.4.2018 12:34 zdenek2008 | skóre: 26
Rozbalit Rozbalit vše Re: PlantUML: jak automaticky ocislovat akce v activity diagramu?
Diky za vylepseni. Nic vic od toho nepozaduji, staci kdyz to ocisluje ty nodes, mozna to cislo by mohlo byt oddelene od dalsiho obsahu, treba "1) obsah" nebo "1 - obsah", zkusim si to nejak prizpusobit.
Řešení 1× (zdenek2008 (tazatel))
5.4.2018 20:19 .
Rozbalit Rozbalit vše Re: PlantUML: jak automaticky ocislovat akce v activity diagramu?
sub(/:/, ":" ID " - ")
5.4.2018 23:59 zdenek2008 | skóre: 26
Rozbalit Rozbalit vše Re: PlantUML: jak automaticky ocislovat akce v activity diagramu?
Diky moc, vynalezal bych znovu kolo...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.