Exit Full View

Blok Art / examples / classDiagram.txt

An example class diagram from another of my projects (Glok - a GUI Toolkit similar to JavaFX).


I've taken some liberties with the UML class diagram syntax :

    * As italics aren't possible, I've use /ClassName/ instead (to represent an interface).
      I've also used different line styles for interfaces, abstract classes and concrete classes.

    * For compactness, I've not included the dividing lines, and instead used indentation to distinguish
      attributes from the class's name.

/**

## Class Diagram
There is a very similar class-hierarchy of buttons. See [ButtonBase].
*
*                 ╭╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╮     ┌─────────────┐        ╭╌╌╌╌╌╌╌╌╌╌╌╌╌╮
*                 ┆/Actionable/     ┆     │MenuItemBase │        ┆/WithContent/┆
*                 ┆  performAction()┆     │ onAction    │        ┆  content    ┆
*                 ┆                 ┆     │             │        ┆             ┆
*                 ╰╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╯     └─────────────┘        ╰╌╌╌╌╌╌╌╌╌╌╌╌╌╯
*                           △                    △                    △
*                           └─────────┐      ┌───┴──────────────┐     │
*                                  ┌──┴──────┴──────┐           │     │
*                                  │LabelledMenuItem│      ┌────┴─────┴───┐
*                                  │ text           │      │CustomMenuItem│
*                                  │ graphic        │      │              │
*                                  │ ...            │      │              │
*                                  └────────────────┘      └──────────────┘
*                                           △
*           ┌────────────────┬──────────────┴───────┐               ╭╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╮
*     ┏━━━━━┷━━━━━┓     ┏━━━━┷━━━━━━┓       ┌───────┴──────────┐    ┆/Toggle/       ┆      ┏━━━━━━━━━━━━━━━┓
*     ┃SubMenu    ┃     ┃MenuItem   ┃       │SelectMenuItemBase│    ┆  selected     ┆      ┃ToggleGroup    ┃
*     ┃ items     ┃     ┃           ┃       │ selected         │    ┆  toggleGroup  ├─────◇┃ selectedToggle┃
*     ┃           ┃     ┃           ┃       │                  │    ┆  userData     ┆      ┃ userData()    ┃
*     ┗━━━━━━━━━━━┛     ┗━━━━━━━━━━━┛       └──────────────────┘    ╰╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╯      ┗━━━━━━━━━━━━━━━┛
*                                                   △                       △
*                ┌───────────────────────────┬──────┴────────────┐   ┌──────┴─────────────┐
*     ┏━━━━━━━━━━┷━━━━━━━━━━━┓   ┏━━━━━━━━━━━┷━━━━━━━━━┓    ┌────┴───┴─────────┐          ╵
*     ┃PropertyToggleMenuItem┃   ┃PropertyRadioMenuItem┃    │ToggleMenuItemBase│   ToggleButtonBase
*     ┃ property             ┃   ┃ property            ┃    │                  │
*     ┃ value                ┃   ┃ value               ┃    │                  │
*     ┗━━━━━━━━━━━━━━━━━━━━━━┛   ┗━━━━━━━━━━━━━━━━━━━━━┛    └──────────────────┘
*                                                                    △
*                                                          ┌─────────┴──────────┐
*                                                   ┏━━━━━━┷━━━━━━━┓   ┏━━━━━━━━┷━━━━┓
*                                                   ┃ToggleMenuItem┃   ┃RadioMenuItem┃
*                                                   ┃              ┃   ┃             ┃
*                                                   ┗━━━━━━━━━━━━━━┛   ┗━━━━━━━━━━━━━┛
*
*
Created with [Blokart](https://gitlab.com/nickthecoder/blokart).
*/