bookmarks  1

  •  

    /** * Called when a null model is about to be retrieved in order to allow a subclass to provide an * initial model. * <p> * By default this implementation looks components in the parent chain owning a * {@link IComponentInheritedModel} to provide a model for this component via * {@link IComponentInheritedModel#wrapOnInheritance(Component)}. * <p> * For example a {@link FormComponent} has the opportunity to instantiate a model on the fly * using its {@code id} and the containing {@link Form}'s model, if the form holds a * {@link CompoundPropertyModel}. * * @return The model */ protected IModel<?> initModel() { IModel<?> foundModel = null; // Search parents for IComponentInheritedModel (i.e. CompoundPropertyModel) for (Component current = getParent(); current != null; current = current.getParent()) { // Get model // Don't call the getModel() that could initialize many in between // completely useless models. // IModel model = current.getDefaultModel(); IModel<?> model = current.getModelImpl(); if (model instanceof IWrapModel && !(model instanceof IComponentInheritedModel)) { model = ((IWrapModel<?>)model).getWrappedModel(); } if (model instanceof IComponentInheritedModel) { // return the shared inherited foundModel = ((IComponentInheritedModel<?>)model).wrapOnInheritance(this); setFlag(FLAG_INHERITABLE_MODEL, true); break; } } // No model for this component! return foundModel; }
    5 years ago by @jil
    (0)
     
     
  • ⟨⟨
  • 1
  • ⟩⟩

publications  

    No matching posts.
  • ⟨⟨
  • ⟩⟩