And this would be used by the check box model.

Now one more question. What is the reason that the pages themselves are not versioned? The way that versioning is implemented for model objects is simply cloning them using Java Serialization. So in principle the same approach would have been possible with pages. Oversimplifying it, the 'only thing' to be done would be to reinject the pages and components with any references to transient objects upon deserialization.

What do you mean pages themselves are not versioned? Pages are just components so additions of removeals or model changes are recorded just fine.
Are you saying that you want to clone the complete page? Then we get error reports all over the place.
The page itself shouldnt be cloned if possible. Because suddenly you have 2 instances of that same page in memory..
The current versioning scheme works fine. In your case you have to do it yourself yes.. Because you have a model or data that you alter completely outside of
the page/components/model scope.

I am a bit confused now by the slogan 'transparent back button support' since it now turns out that a lot of work needs to be done in a number of cases to make sure back button support works. In other words, back button support is not transparent at all, especially if I have to implement version management myself. I think the knowledge level required to solve the back button problem for applications transcends the capabilities of average developers and in practice many applications will be written with wicket that don't behave well with the use of the back button. So at best wicket provides support for solving the back button problem.

If you have  an data object that is not attached to anything then yes you should have to make your own Change object and register that.
If it was just a model object then you just have to call modelChanging() modelChanged() on the component where you change the model on.

There is not really a better way i can currently think of.

Right now, if I would have to develop a wicket application with full back button support using inexperienced developers, I would probably have to give design rules such as this:
  • do not store any data as instance variables but retrieve them from the models of the components.
  • Always call modelChanging() before changing a model and modelChanged() after a change.



Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
Wicket-user mailing list

Reply via email to