Search code examples
javatapestry

How exactly does Tapestry mixin work?


I just realized after reading this article that I can not explain to myself how it works and what problems it can solve.

Yes, It could be used to change the behavior of existing component. But how it is limitated? What can I do, and what I can not do? Is it better than inheritance?

This article is helpful but I'm still confused a lot.

Can anyone explain Tapestry mixin using simple words?


Solution

  • Tapestry Mixin is a limited version of component that should be attached to another component and can not have its own template. It has access to container parameters and can introduce its own. It is not better than inheritance. It is a different way to change components behaviour.

    So, what you can do with mixins that can not be done with inheritance:

    • you can change behaviour of core tapestry components
    • you can use more than one mixin for one component

    Some other words about mixinns:

    • they usually introduce some common logic that can be applied to all components, e.g. submit form on some client event or attach popup with help for some field
    • they can fix some problem with core components, e.g. we have mixin that fixes upload component when it is used in ajax form