// Uncomment the following line to change the fontsize and font:
// fontsize=14
// fontfamily=SansSerif //possible: SansSerif,Serif,Monospaced
//////////////////////////////////////////////////////////////////////////////////////////////
// Welcome to UMLet!
//
// Double-click on 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.
9
UMLClass
288
234
252
117
ButtonEventsHandler
<<Singleton>>
bg=white
Text
63
27
522
36
*ButtonManager - Basic Class Structure - Overview*
style=wordwrap
fontsize=22
Relation
54
45
504
27
lt=-
lw=2.5
10.0;10.0;540.0;10.0
UMLClass
63
756
882
27
lt=..
halign=right
2021-11-09
UMLNote
63
567
882
180
Note:
- ButtonsController receives button IO interrupts and debounces them
- ButtonsController handles all buttons present on the board
- ButtonsController sends button pressed/realeased notifications via a callback method
- ButtonEventsHandler creates button short pressed and button long pressed notifications
- ButtonEventsHandler notifies via an observer pattern.
- ButtonEventsLogger logs the button short/long pressed notifications via Trace to the host PC
bg=#FFCCCC
UMLClass
288
468
252
72
ButtonsController
<<Singleton>>
bg=white
UMLClass
288
90
252
72
app::ButtonEventsLogger
bg=#53C05B
Relation
405
153
90
99
lt=<-
<<observing>>
10.0;90.0;10.0;10.0
Relation
405
342
81
144
lt=<-
<<callback>>
10.0;140.0;10.0;10.0
UMLClass
63
90
135
189
app::Factory
bg=#53C05B
--
--
+ initialize()
+ build()
Relation
189
108
117
36
lt=<<<<<->
m2=1
10.0;10.0;110.0;10.0
UMLClass
630
90
288
72
/ButtonEventsHandlerObserver/
<<interface>>
bg=#90cbe0
--
+ onButtonShortPressed(buttonIndex)
+ onButtonLongPressed(buttonIndex)
Relation
531
108
117
27
lt=<<.
110.0;10.0;10.0;10.0
Relation
513
126
135
126
lt=<<<<->
r2=observer
m2=*
10.0;120.0;10.0;80.0;60.0;20.0;130.0;20.0
UMLPackage
63
405
126
135
XF
--
bg=#BBBBBB
Relation
180
135
126
387
lt=<.
10.0;410.0;70.0;410.0;70.0;10.0;120.0;10.0
Relation
180
423
126
99
lt=<.
10.0;90.0;70.0;90.0;70.0;10.0;120.0;10.0
Relation
180
495
126
27
lt=<.
10.0;10.0;120.0;10.0
UMLClass
603
468
315
72
/ButtonIrq/
<<interface>>
bg=#90cbe0
--
+ onIrq()
Relation
531
504
90
36
lt=<<.
80.0;20.0;10.0;10.0
UMLClass
603
387
315
72
/ButtonsControllerCallbackCaller/
<<interface>>
bg=#90cbe0
--
+ registerCallback(callbackProvider, callbackMethod)
Relation
531
414
90
117
lt=<<.
80.0;10.0;10.0;110.0
UMLClass
603
279
315
72
/ButtonsControllerCallbackProvider/
<<interface>>
bg=#90cbe0
--
+ onButtonChanged(buttonIndex, pressed : bool)
UMLClass
603
198
315
72
/ButtonEventsHandlerSubject/
<<interface>>
bg=#90cbe0
--
+ subscribe(observer)
+ unsubscribe(observer)
Relation
531
225
90
81
lt=<<.
80.0;10.0;10.0;70.0
Relation
531
279
90
54
lt=<<.
80.0;40.0;10.0;10.0
Relation
765
153
27
63
lt=<.
10.0;10.0;10.0;50.0
Relation
477
153
144
72
lt=<.
140.0;60.0;110.0;40.0;20.0;40.0;10.0;10.0
Relation
477
342
144
81
lt=<.
140.0;70.0;110.0;40.0;20.0;40.0;10.0;10.0
Relation
765
342
27
63
lt=<.
10.0;10.0;10.0;50.0
UMLClass
288
405
99
45
ButtonStateSm
Relation
306
342
36
81
lt=<<<<<->
m2=4
10.0;10.0;10.0;70.0
Relation
351
342
36
81
lt=<<<<->
m2=1
10.0;70.0;10.0;10.0