Interface IComponentAssignedModel<T>

  • Type Parameters:
    T - The model data type
    All Superinterfaces:
    org.apache.wicket.util.io.IClusterable, IDetachable, IModel<T>, Serializable
    All Known Implementing Classes:
    ComponentDetachableModel, ComponentModel, ComponentPropertyModel, ResourceModel, StringResourceModel

    public interface IComponentAssignedModel<T>
    extends IModel<T>
    Models that wish to substitute themselves with a wrapper when they are bound to a component (either through IModel parameter in a constructor or via a call to Component.setDefaultModel(IModel)) should implement this interface. One reason for a model to want to do this is if it needs to be aware of the component it is bound to. The algorithm wicket employs is similar to this:
     void Component.setModel(IModel model) 
     {
         if (model instanceof IComponentAssignedModel) 
         {
            this.model = ((IComponentAssignedModel)model).wrapOnAssignment(this);
         } 
         else 
         {
            this.model = model;
         }
     }
     
    For an example see ResourceModel
    Author:
    jcompagner, Igor Vaynberg (ivaynberg)
    • Method Detail

      • wrapOnAssignment

        IWrapModel<TwrapOnAssignment​(Component component)
        This method is called when the component gets its model assigned. WARNING: Because the model can be assigned in the constructor of component this method can also be called with a 'this' of a component that is not fully constructed yet.
        Parameters:
        component -
        Returns:
        The WrapModel that wraps this model