hi

The other day, I was busy creating reusable components. To make them "safe", I 
used what I believe is a wicket good practices: adding the components in 
onBeforeRender.

In fact, it's not just in onBeforeRender, it's rather :
        @Override
        protected void onBeforeRender() {
            if(!hasBeenRendered()){
                // actual code
            }
            super.onBeforeRender();
        }

having done this stuff repeatedly, I felt a bit annoyed but these many   " 
if(!hasBeenRendered())" and the brackets/indentations it brings. 
Furthermore, on the few occasions I really needed something done on each 
onBeforeRender, it brought clutter to the code.
Last but not least, recently, I was helping a wicket beginner and explaining 
this "onBeforeRender/if(!hasBeenRendered)" wasn't the best moment I had.

As such, I started to wonder if a simple "onInitialRender" method (or similarly 
named) could be created ? It would run once and only once before the first 
onBeforeRender. 

onBeforeRender would then return to what it should really mean (but still have 
this handy hasBeenRendered() method just in case). 

In the end, it's trivial but would save a few keystrokes and bring some clarity.

What do you think of that ?

thanks in advance
joseph

Reply via email to