Wicket
  1. Wicket
  2. WICKET-4462

Update AbstractPropertyModel and PropertyModel constructor to include parameter for IModel<?>

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Invalid
    • Affects Version/s: 1.5.5
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      Please consider adding another constructor to AbstractPropertyModel and PropertyModel class to include a parameter for IModel<?>. Since both of these classes implement the IChainingModel interface, I think it makes sense to include a parameter for IModel<?> in the constructor for these classes, as in the case of CompoundPropertyModel class.

      For what's it worth, below is my custom class to enhance the PropertyModel class:

      public class CustomPropertyModel<T> extends PropertyModel<T> {
      private static final long serialVersionUID = 1L;

      public CustomPropertyModel(IModel<T> model, String expression)

      { super(model.getObject(), expression); setChainedModel(model); }

      }

        Activity

        Hide
        Sven Meier added a comment -

        You can already pass a model as argument to PropertyModel's constructor. What is missing here?

        Show
        Sven Meier added a comment - You can already pass a model as argument to PropertyModel's constructor. What is missing here?
        Hide
        Don Ngo added a comment -

        From what I can tell, there's only one PropertyModel constructor, and it doesn't have a argument for IModel. Below is the signature for that constructor taken from the 1.5.5. api doc:

        public PropertyModel(java.lang.Object modelObject,
        java.lang.String expression) Construct with a wrapped (IModel) or unwrapped (non-IModel) object and a property expression that works on the given model.

        Parameters:modelObject - The model object, which may or may not implement IModelexpression - Property expression for property access

        Show
        Don Ngo added a comment - From what I can tell, there's only one PropertyModel constructor, and it doesn't have a argument for IModel. Below is the signature for that constructor taken from the 1.5.5. api doc: public PropertyModel(java.lang.Object modelObject, java.lang.String expression) Construct with a wrapped (IModel) or unwrapped (non-IModel) object and a property expression that works on the given model. Parameters:modelObject - The model object, which may or may not implement IModelexpression - Property expression for property access
        Hide
        Don Ngo added a comment -

        What I'm suggesting is to add another constructor with the following signature:

        public PropertyModel(IModel<T> model, String expression)

        Show
        Don Ngo added a comment - What I'm suggesting is to add another constructor with the following signature: public PropertyModel(IModel<T> model, String expression)
        Hide
        Sven Meier added a comment -

        The current constructor takes any object, including models - the javadoc even states it. I don't see an advantage adding another one, do you?

        Show
        Sven Meier added a comment - The current constructor takes any object, including models - the javadoc even states it. I don't see an advantage adding another one, do you?
        Hide
        Don Ngo added a comment -

        You're right. My bad for not reading the documentation carefully. I didn't know the modelObject argument can be an instance of IModel<T>. Thanks for pointing that out to me.

        Show
        Don Ngo added a comment - You're right. My bad for not reading the documentation carefully. I didn't know the modelObject argument can be an instance of IModel<T>. Thanks for pointing that out to me.
        Hide
        Sven Meier added a comment -

        Already working as suggested.

        Show
        Sven Meier added a comment - Already working as suggested.

          People

          • Assignee:
            Unassigned
            Reporter:
            Don Ngo
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development