// 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.10com.umlet.element.base.Class0330210140Menu -- -- #Menu() /+~Menu()/ #addItem(MenuItem*) #removeItem(MenuItem*) #display() -- -- Base class for all Menuscom.umlet.element.base.Class0540210250TextMenu -- 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.Class740300370380MenuItem -- 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.Relation18036058050lt=<<<<- m1=1 m2=1...N30;30;560;30com.umlet.element.base.Relation7044050120lt=<<-30;30;30;100com.umlet.element.base.Class7501200360120ActionMenuItem -- -- #ActionMenuItem(char,const char*,Menu*,Action*) /+~ActionMenuItem()/ /+doTrigger()/ -- Responsibilities -- Call action.call() when the trigger is recieved com.umlet.element.base.Relation88065050570lt=<<-30;30;30;550com.umlet.element.base.Class1400830340260DisplayMenuItem -- 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.Class1890880410120StringView -- -- #StringView() /+~StringView()/ /+toString(): const string/ -- Responsibilities -- Base class for anything that can be displayed as a Stringcom.umlet.element.base.Relation171090019040lt=<<<<- m1=1...N m2=130;30;180;30com.umlet.element.base.Relation880650640200lt=<<-30;30;30;150;620;150;620;180com.umlet.element.base.Class960850310220SeperatorItem -- 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.Relation880650250220lt=<<-30;30;30;150;230;150;230;200com.umlet.element.base.Class350760360140<<composite>> SubMenuItem -- -- #SubMenuItem(char,const char*,Menu*,Menu*) /+~SubMenuItem()/ /+doTrigger()/ -- Responsibilities -- Produce a submenu when this item is triggeredcom.umlet.element.base.Relation180410190460lt=<<<<- m1=1 m2=1170;440;110;440;110;30;30;30com.umlet.element.base.Relation490650440130lt=<<-420;30;420;80;30;80;30;110com.umlet.element.base.Class3801190220170<<Command>> Action -- -- #Action() /+~Action()/ /+call()/ /+undo()/ /+canUndo(): bool/ -- Responsibilities -- Perfom an Operation on callcom.umlet.element.base.Relation570121020050lt=<<<<- m1=0...N m2=1180;30;30;30com.umlet.element.base.Class3201470340190<<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.Relation450133050160lt=<<-30;30;30;140com.umlet.element.base.Class197064026080<<View>> View -- -- -- Responsibilities -- Anything that needs to be shown com.umlet.element.base.Relation207069040200lt=<<-30;30;30;190com.umlet.element.base.Class16601190410150<<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.Class21501190470150<<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.Relation1830970270230lt=<<-260;30;260;120;30;120;30;220com.umlet.element.base.Relation2060970340230lt=<<-30;30;30;120;330;120;330;220