// Uncomment the following line to change the fontsize:
// fontsize=14
//////////////////////////////////////////////////////////////////////////////////////////////
// Welcome to UMLet!
//
// Double-click on UML elements to add them to the diagram, or to copy them
// Edit elements by modifying the text in this panel
// Hold Ctrl to select multiple elements
// Use Ctrl+mouse to select via lasso
//
// Use ± or Ctrl+mouse wheel to zoom
// Drag a whole relation at its central square icon
//
// Press Ctrl+C to copy the whole diagram to the system clipboard (then just paste it to, eg, Word)
// Edit the files in the "palettes" directory to create your own element palettes
//
// Select "Custom Elements > New..." to create new element types
//////////////////////////////////////////////////////////////////////////////////////////////
// This text will be stored with each diagram; use it for notes.7com.umlet.element.base.Class10574214798Menu
--
--
#Menu()
/+~Menu()/
#addItem(MenuItem*)
#removeItem(MenuItem*)
#display()
--
-- Base class for all Menuscom.umlet.element.base.Class1057189147175TextMenu
--
outputter: ostream
title: string;
spacer: char
length: int
--
#TextMenu(ostream&,string,char,int)
#TextMenu(ostream&,string)
/+~TextMenu()/
addItem(MenuItem*)
removeItem(MenuItem*)
display()
doQuit()
hasQuit(): bool
showEntry(MenuItem*)
com.umlet.element.base.Class157521259266MenuItem
--
char trigger: char
description: string*
added: bool
--
#MenuItem(char,const char*,Menu*);
/+~MenuItem();/
/+doTrigger()/
/+checkTrigger(char)/
/+formatEntry(): const string/
/+getDescription(): const string/
/+getTrigger(): char/
/+add_to_menu(Menu*)/
/+wasAdded(): bool/
#setDescription(string);
--
Responsibilities
-- Store Items in a menu
-- check a trigger,
if the trigger matches call doTrigger() on subclass
--
Constraints
-- A MenuItem always belongs to a single
-- Destruction is done by the owning menucom.umlet.element.base.Relation11836340534lt=<<<<-
m1=1
m2=1...N21;21;392;21com.umlet.element.base.Relation11061193483lt=<<-21;21;21;70com.umlet.element.base.Class158265125284ActionMenuItem
--
--
#ActionMenuItem(char,const char*,Menu*,Action*)
/+~ActionMenuItem()/
/+doTrigger()/
--
Responsibilities
-- Call action.call() when the trigger is recieved
com.umlet.element.base.Relation167326634398lt=<<-21;21;21;385com.umlet.element.base.Class2037392238182DisplayMenuItem
--
string title;
int length;
char spacer;
--
#DisplayMenuItem(Menu*, StringView *);
#DisplayMenuItem(Menu*, StringView *, string, char, int);
/+~DisplayMenuItem()/
/+doTrigger()/
/+checkTrigger(char)/
/+formatEntry(): const string/
/getDescription(): const string/
--
Responsibilities
-- Display any kind of stringView within a Menu
-- All trigger are ignoredcom.umlet.element.base.Class238042728784StringView
--
--
#StringView()
/+~StringView()/
/+toString(): const string/
--
Responsibilities
-- Base class for anything that can be displayed as a Stringcom.umlet.element.base.Relation225444113934lt=<<<<-
m1=1...N
m2=121;21;126;21com.umlet.element.base.Relation1673266447139lt=<<-21;21;21;105;434;105;434;126com.umlet.element.base.Class1729406217154SeperatorItem
--
spacer: char
length: int
--
#SeperatorItem(Menu*)
#SeperatorItem(Menu*,char,int)
/+virtual ~SeperatorItem()/
/+doTrigger()/
/+checkTrigger(char)/
/+getDescription(): const string/
/+formatEntry(): const string/
--
Responsibilities
-- Display a seperating line of spacers com.umlet.element.base.Relation1673266174153lt=<<-21;21;21;105;161;105;161;140com.umlet.element.base.Class130234325298<<composite>>
SubMenuItem
--
--
#SubMenuItem(char,const char*,Menu*,Menu*)
/+~SubMenuItem()/
/+doTrigger()/
--
Responsibilities
-- Produce a submenu when this item is triggeredcom.umlet.element.base.Relation118398132321lt=<<<<-
m1=1
m2=1119;308;77;308;77;21;21;21com.umlet.element.base.Relation140026630790lt=<<-294;21;294;56;21;56;21;77com.umlet.element.base.Class1288644231133<<Command>>
Action
--
name : string
--
#Action(std::string _name,bool _doRegister=true)
/+~Action()/
/+call()/
/+undo()/
/+canUndo(): bool/
/+getName(): const string/
--
Responsibilities
-- Perfom an Operation on callcom.umlet.element.base.Relation14986589734lt=<<<<-
m1=0...N
m2=184;21;21;21com.umlet.element.base.Class1484847238133<<Wrapper>>
MethodAction
--
executeMethod : boost::function<void()>
--
#MethodAction(boost::function<void()>)
/+~MethodAction()/
/+call()/
/+undo()/
/+canUndo(): bool/
--
Responsibilities
-- Transform an ordinary method into an Actioncom.umlet.element.base.Relation1386756223104lt=<<-21;21;21;56;210;56;210;91com.umlet.element.base.Class243625918256<<View>>
View
--
--
--
Responsibilities
-- Anything that needs to be shown
com.umlet.element.base.Relation250629434146lt=<<-21;21;21;133com.umlet.element.base.Class2219644287105<<Wrapper>>
MethodStringView
--
displayMethod: boost::function<string()>
--
#MethodStringView(boost::function<string()>)
/+~MethodStringView()/
/+toString(): const string/
--
Responsibilities
-- Turn any method that returns a string into a StringViewcom.umlet.element.base.Class2562644329105<<Wrapper>>
StreamStringView
--
displayMethod: boost::function<void(ofstream *)>
--
StreamStringView(boost::function<void(ofstream *)>)
/+~StreamStringView()/
/+toString(): const string/
--
Responsibilities
-- Turn any method that uses a stream for output into a StringViewcom.umlet.element.base.Relation2338490195167lt=<<-182;21;182;84;21;84;21;154com.umlet.element.base.Relation2499490244167lt=<<-21;21;21;84;231;84;231;154com.umlet.element.base.Class1022847196119<<composite>>
MakroAction
--
--
#MakroAction(ActionSequence*)
/+~MakroAction()/
/+call()/
/+undo()/
/+canUndo(): bool/
--
Responsibilities
-- Group several small actions togethercom.umlet.element.base.Class700644231133ActionSequence
--
--
#ActionSequence();
/+~ActionSequence();/
#addAction(Action*)
#removeLastAction(): Action*
#callAll()
#undoAll()
#canUndo(): bool
--
Responsibilities
-- Group several actions together for later usecom.umlet.element.base.Relation91068639134lt=<<<<-
m1=0...N
m2=1...N21;21;378;21com.umlet.element.base.Relation910714125202lt=<<<<-
m1=1
m2=1112;189;77;189;77;21;21;21com.umlet.element.base.Relation1099756321104lt=<<-308;21;308;56;21;56;21;91com.umlet.element.base.Class189086821791<<singleton>>
ActionRegistry
--
--
getActionByName(const std::string) : Action*;
registerAction(Action*);
--
Responsibilities
-- Stores all actions by name for later retrieval
-- handle destruction of all registered actionscom.umlet.element.base.Relation1498728398181lt=<<<<-385;168;294;168;294;21;21;21com.umlet.element.base.Relation1498742405195lt=<.
registers itself upon creation
392;182;273;182;273;84;133;84;133;21;21;21com.umlet.element.base.Relation1295756125111lt=<<-112;21;112;56;21;56;21;98com.umlet.element.base.Class124685418277ErrorAction
--
--
/+call()/
/+undo()/
/+canUndo()/
--
Responsibilities
-- Display some kind of error Messagecom.umlet.element.base.Class3992146991<<Abstract Factory>>
<<Singleton>>
UIFactory
--
--
/+makeMainWindow(menuPopulaters,MoleculeListClass *, config *, periodentafel *, char *): MainWindow*/
/+makeDialog() : Dialog*/
--
Responsibilities
-- Handles creation of all UIElementscom.umlet.element.base.Class399238462133<<Concrete Factory>>
TextUIFactory
--
--
/+makeMainWindow(menuPopulaters,MoleculeListClass *, config *, periodentafel *, char *): MainWindow*/
/+makeDialog() : Dialog*/
--
Responsibilities
-- Production of all kinds of TextWidgetscom.umlet.element.base.Relation71491120160lt=<.
creates and stores63;147;63;21com.umlet.element.base.Relation8475622349lt=<.
creates abstract210;35;21;35com.umlet.element.base.Relation84025923049lt=<.
creates concrete217;35;21;35com.umlet.element.base.Class02823863MainWindow
--
--
/+display()/
--
Responsibilities
-- Abstract base class for all kinds of MainWindowscom.umlet.element.base.Relation2173519549lt=<.
creates abstract21;35;182;35com.umlet.element.base.Class2125919656TextWindow
--
--
/+display()/
--
Responsibilities
-- Special class for MainWindow in TextUIscom.umlet.element.base.Relation917034202lt=<<-21;21;21;189com.umlet.element.base.Relation19625921649lt=<.
creates concrete
21;35;203;35com.umlet.element.base.Relation5609134160lt=<<-21;21;21;147