@startuml skinparam class { BackgroundColor White BorderColor #2C3E50 FontColor #2C3E50 FontSize 14 FontName Arial AttributeFontColor #34495E AttributeFontSize 12 AttributeFontName Arial StereotypeFontColor #8E44AD StereotypeFontSize 12 StereotypeFontName Arial } abstract class AbstractActionViewPreparer{ -actionActive -actionPosition +accept(frontContext : FrontContext) : Boolean +setActionActive() : Void +setActionPosition() Void }

class ActionsBandeauViewModel{ }

abstract class AbstractActionsBandeauViewPreparer { -typeAction //On acepte queles actions actionFiche ou actioncard ou ... +accept(frontContext : FrontContext) : Boolean +prepare(frontContext : FrontContext, Map<String, preparers : List>) : V //Prepare toutes les actions du type typeAction +setTypeAction() : Void } AbstractActionsBandeauViewPreparer --* ActionsBandeauViewModel abstract class AbstractActionViewModel{ -icon : String -label : String -order : Integer }

class ActionsBandeauFicheViewPreparer extends AbstractActionsBandeauViewPreparer{ } class AccueilActionsBandeauFicheViewPreparer extends ActionsBandeauFicheViewPreparer{ +accept(frontContext : FrontContext) : Boolean +prepare(frontContext : FrontContext, Map<String, preparers : List>) : V }

note left of ActionsBandeauFicheViewPreparer action-fiche

 main.jsp va attendre un bandeau-action-fiche

end note

class ActionsBandeauCardViewPreparer extends AbstractActionsBandeauViewPreparer{ }

note right of ActionsBandeauCardViewPreparer action-card

FavorisPanierCardViewBuilder va avoir une liste de ActionsBandeauCardViewPreparer.
Il va rechercher un preparer de type bandeau-action-card. et en preparer un pour chaque card.

end note

ActionsBandeauCardViewPreparer --* ActionsBandeauViewModel

abstract class AbstractFavorisActionViewPreparer { +prepare(frontContext : FrontContext, Map<String, preparers : List>) : V }

AbstractFavorisActionViewPreparer -right-|> AbstractActionViewPreparer class FavorisActionViewModel extends AbstractActionViewModel{ }

class FavorisActionFicheViewPreparer extends AbstractFavorisActionViewPreparer{

} note bottom of FavorisActionFicheViewPreparer Dans le core-front-sitetemplates, le preparer : end note

FavorisActionFicheViewPreparer --* FavorisActionViewModel

class FavorisActionCardViewPreparer extends AbstractFavorisActionViewPreparer{ } note bottom of FavorisActionCardViewPreparer Dans le core-front-sitetemplates, le preparer : end note

FavorisActionCardViewPreparer --* FavorisActionViewModel

ActionsBandeauFicheViewPreparer --* ActionsBandeauViewModel AbstractFavorisActionViewPreparer --* FavorisActionViewModel

ActionsBandeauViewModel --*"1..n" AbstractActionViewModel : actions @enduml