@startuml actor Client order 10 participant DefaultView order 20 participant JFrame order 30 participant ActionListener order 40 activate Client 'defaultView()' Client --> DefaultView **: <> DefaultView DefaultView --> DefaultView ++ : DefaultView() DefaultView --> JFrame **: <> JFrame activate JFrame DefaultView --> JFrame: set up frame DefaultView --> ActionListener ++: set up ActionListener return ok return ok return ok 'updateView()' Client -> DefaultView ++: updateView() 'loop' loop x - number of height loop y - number of width opt String is selected DefaultView -> JFrame++ : set text in cell JFrame --> DefaultView-- : String else Color is selected DefaultView -> JFrame++ : set color in cell JFrame --> DefaultView-- : Color else Icon is selected DefaultView -> JFrame++ : set icon in cell JFrame --> DefaultView-- : Icon end DefaultView -> JFrame ++: add the cell JFrame --> DefaultView --: ok end DefaultView -> JFrame ++ : revalidate the frame JFrame --> DefaultView --: ok end DefaultView --> Client --: ok 'setDataSource(RepresentableBoard)' Client -> DefaultView ++: setDataSource(representableBoard) return ok 'actionPerformed(ActionEvent)' DefaultView -> ActionListener ++: actionPerformed(ActionEvent) return ok DefaultView -> ActionListener ++ : handle type of event return ok DefaultView -> DefaultView ++ : update the view return ok @enduml