> if there are issues with validator messages, we should work 
> on that separately.  this has nothing whatsoever to do with 
> feedback components, imo.

See point 2 of my original post. I don't really care about how the feedback
works, I was trying to improve the validation messages. That's why
abstractvalidator is patched in the patch I proposed.

> why would you want the label's model?  it's just a slot to 
> put some text.  you're going to want to localize all these 
> messages anyway.  
> the feedback label component should 
> construct a key based on the component its attached to (with 
> the ability to override the key
> construction) and then load
> the resource string that way...

If I will be adding a label I will make sure its model is localized.
Getmodelobjectasstring() should return the localized version since that's
what will be displayed on screen by the label anyways.

> 
> Igor Vaynberg wrote:
> 
> >I am not constructing the validator message, the 
> abstractvalidator is. 
> >It would be nice if wicket supported generic validator 
> messages out of 
> >the box
> >- all other frameworks do. This is the feature I was trying to add.
> >
> >By having a link to a label component inside the form component you 
> >know where to look for the label's model.
> >
> >Igor
> >
> >
> >  
> >
> >>-----Original Message-----
> >>From: [EMAIL PROTECTED]
> >>[mailto:[EMAIL PROTECTED] On Behalf 
> Of Jonathan 
> >>Locke
> >>Sent: Saturday, July 30, 2005 10:03 AM
> >>To: wicket-user@lists.sourceforge.net
> >>Subject: Re: [Wicket-user] Feedback Refactor Idea
> >>
> >>
> >>
> >>Jonathan Locke wrote:
> >>
> >>    
> >>
> >>>i think you're missing the point.
> >>>
> >>>formcomponents should not possess feedbacks because
> >>>      
> >>>
> >>formcomponents can
> >>    
> >>
> >>>be wired to more than one feedback component.  so the relationship 
> >>>needs to be the other way around.  it's also important that 
> >>>formcomponents never know anything about the feedback
> >>>      
> >>>
> >>components that
> >>    
> >>
> >>>are watching them.
> >>>
> >>>you know which form component to query for your label because you 
> >>>wrote the feedback component and it should take the form
> >>>      
> >>>
> >>component it
> >>    
> >>
> >>>connects to as an argument to its constructor.  i already
> >>>      
> >>>
> >>showed this
> >>    
> >>
> >>>once below.  you don't cast anything in this model!  you write a 
> >>>first-class label object subclass that takes the form
> >>>      
> >>>
> >>component as an
> >>    
> >>
> >>>argument.  then you can do whatever you want with the form
> >>>      
> >>>
> >>component
> >>    
> >>
> >>>to construct your label validator message...
> >>>      
> >>>
> >>i should have added "when updateFeedback() is called" right 
> before the 
> >>elipsis.
> >>
> >>    
> >>
> >>>Igor Vaynberg wrote:
> >>>
> >>>      
> >>>
> >>>>What about generic validator messages - this is more
> >>>>        
> >>>>
> >>important then
> >>    
> >>
> >>>>the look and feel of the label which I can achieve in a thousand 
> >>>>different ways.
> >>>>
> >>>>Using this model it is not possible to generically identify which 
> >>>>Ifeedback belongs to which FormComponent.
> >>>>
> >>>>And what if there are more then one - how do I know which one to 
> >>>>query for the label?
> >>>>
> >>>>And I still have to cast Ifeedback to Component in order
> >>>>        
> >>>>
> >>to retrieve
> >>    
> >>
> >>>>the model used for the label.
> >>>>
> >>>>Igor
> >>>>
> >>>>
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>>>-----Original Message-----
> >>>>>From: [EMAIL PROTECTED]
> >>>>>[mailto:[EMAIL PROTECTED] On Behalf Of 
> >>>>>Jonathan Locke
> >>>>>Sent: Saturday, July 30, 2005 1:04 AM
> >>>>>To: wicket-user@lists.sourceforge.net
> >>>>>Subject: [Wicket-user] Feedback Refactor Idea
> >>>>>
> >>>>>
> >>>>>at this point, it looks like it would make more sense to
> >>>>>          
> >>>>>
> >>me to break
> >>    
> >>
> >>>>>with compatibility and change IFeedback to something more
> >>>>>          
> >>>>>
> >>like this:
> >>    
> >>
> >>>>>interface IFeedback
> >>>>>{
> >>>>>   public void updateFeedback();
> >>>>>}
> >>>>>
> >>>>>then have the framework call updateFeedback() on each IFeedback 
> >>>>>implementing component on the page at the appropriate
> >>>>>          
> >>>>>
> >>time (probably
> >>    
> >>
> >>>>>onBeginRequest(), but subject to implementation details).
> >>>>>
> >>>>>then we can implement any kind of feedback component 
> that we want 
> >>>>>to.  igor can implement like this:
> >>>>>
> >>>>>public class FormComponentFeedbackLabel extends Label implements 
> >>>>>IFeedback {
> >>>>>   FormComponent component;
> >>>>>
> >>>>>   public FormComponentFeedbackLabel(FormComponent component)
> >>>>>   {
> >>>>>       this.component = component;
> >>>>>   }
> >>>>>
> >>>>>   public void updateFeedback()
> >>>>>   {
> >>>>>      // Set label look and feel based on any error in component
> >>>>>   }
> >>>>>}
> >>>>>
> >>>>>FormComponentErrorIndicator would be similar, showing/hiding its 
> >>>>>content on error.  And FeedbackPanel and
> >>>>>          
> >>>>>
> >>FormComponentFeedbackBorder
> >>    
> >>
> >>>>>would do their recursive magic in update()
> >>>>>
> >>>>>so now every feedback component is "pull model" and
> >>>>>          
> >>>>>
> >>updated at the
> >>    
> >>
> >>>>>appropriate time by implementing updateFeedback().  best
> >>>>>          
> >>>>>
> >>of all, the
> >>    
> >>
> >>>>>component can do absolutely anything based on the state
> >>>>>          
> >>>>>
> >>of any other
> >>    
> >>
> >>>>>components passed in to whatever constructor the feedback
> >>>>>          
> >>>>>
> >>component
> >>    
> >>
> >>>>>has...
> >>>>>
> >>>>>doesn't this seem a whole lot simpler and more flexible?
> >>>>>
> >>>>>Jonathan Locke wrote:
> >>>>>
> >>>>>  
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>ok, i see... it looks like this is all changed now.  if i     
> >>>>>>            
> >>>>>>
> >>>>>understand,   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>the "collectingComponent" is really a formComponent that     
> >>>>>>            
> >>>>>>
> >>>>>the feedback   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>is optionally attached to.  i think this is actually
> >>>>>>            
> >>>>>>
> >>slightly more
> >>    
> >>
> >>>>>>general than the old code, which only searched parents.
> >>>>>>but the refactor doesn't
> >>>>>>seem like it's done because the whole idea of a feedback
> >>>>>>            
> >>>>>>
> >>border is
> >>    
> >>
> >>>>>>kindof meaningless since the containment hierarchy isn't     
> >>>>>>            
> >>>>>>
> >>>>>always being   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>used to wire things up.
> >>>>>>it seems like there ought to be (at least) two classes here... 
> >>>>>>FormComponentFeedbackBorder,
> >>>>>>which visits its children looking for errors and 
> >>>>>>FormComponentErrorIndicator, which changes its visibility     
> >>>>>>            
> >>>>>>
> >>>>>based on any   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>errors set on a particular form component (which is what 
> >>>>>>"collectingComponent"
> >>>>>>seems to be).
> >>>>>>given this refactor, i'm unsure what use IFeedback is at     
> >>>>>>            
> >>>>>>
> >>>>>all... seems   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>like each feedback implementation can just do its own 
> search for 
> >>>>>>errors and we could remove the IFeedback from Form 
> constructor...
> >>>>>>   ????
> >>>>>>
> >>>>>>Jonathan Locke wrote:
> >>>>>>
> >>>>>>    
> >>>>>>
> >>>>>>            
> >>>>>>
> >>>>>>>efficiency is the least of our worries here.  what's
> >>>>>>>              
> >>>>>>>
> >>more,       
> >>    
> >>
> >>>>>the search   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>for feedback interfaces on a form validate (which 
> doesn't       
> >>>>>>>              
> >>>>>>>
> >>>>>happen that   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>often) is already in place in order to support the       
> >>>>>>>              
> >>>>>>>
> >>>>>existing extension   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>mechanism.  while your suggested change would fix your
> >>>>>>>              
> >>>>>>>
> >>particular
> >>    
> >>
> >>>>>>>problem, wicket needs to take a more general view.  it 
> should be
> >>>>>>>possible to implement absolutely any kind of feedback       
> >>>>>>>              
> >>>>>>>
> >>>>>mechanism for   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>forms.  not just label-oriented feedback.  i think we
> >>>>>>>              
> >>>>>>>
> >>should stick
> >>    
> >>
> >>>>>>>with what we've got since it's completely general and       
> >>>>>>>              
> >>>>>>>
> >>>>>enhance it only   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>if we have to in order to implement a feedback label       
> >>>>>>>              
> >>>>>>>
> >>>>>component.  make   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>sense?
> >>>>>>>
> >>>>>>>i agree that you shouldn't have to cast the IFeedback
> >>>>>>>              
> >>>>>>>
> >>to a       
> >>    
> >>
> >>>>>Component.    
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>in the past, this was not necessary... i no longer
> >>>>>>>              
> >>>>>>>
> >>understand the
> >>    
> >>
> >>>>>>>code here though...  what is this refactor, eelco?
> >>>>>>>and what is a "collectingComponent" ??
> >>>>>>>in the past, any component could implement IFeedback
> >>>>>>>              
> >>>>>>>
> >>and act as a
> >>    
> >>
> >>>>>>>"sink" for feedback information:
> >>>>>>>
> >>>>>>>public interface IFeedback
> >>>>>>>{
> >>>>>>>  /**
> >>>>>>>   * Called to add feedback messages from a component. If the 
> >>>>>>>component is a
> >>>>>>>   * container, messages will be added for all children of the 
> >>>>>>>container.
> >>>>>>>   *
> >>>>>>>   * @param component
> >>>>>>>   *            The component with associated feedback messages
> >>>>>>>   * @param recurse
> >>>>>>>   *            True if feedback messages should be added from 
> >>>>>>>children of the
> >>>>>>>   *            given component
> >>>>>>>   */
> >>>>>>>  public void addFeedbackMessages(Component component, boolean 
> >>>>>>>recurse); }
> >>>>>>>
> >>>>>>>this is a very powerful way to wire things up and i 
> don't       
> >>>>>>>              
> >>>>>>>
> >>>>>understand   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>why this was changed.
> >>>>>>>
> >>>>>>>Igor Vaynberg wrote:
> >>>>>>>
> >>>>>>>      
> >>>>>>>
> >>>>>>>              
> >>>>>>>
> >>>>>>>>I can kind of see what you are saying. The abstract         
> >>>>>>>>                
> >>>>>>>>
> >>>>>validator would   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>have to search the page and find the Ifeedback for 
> the         
> >>>>>>>>                
> >>>>>>>>
> >>>>>formcomponent   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>in error. But what if you have two ifeedbacks for a         
> >>>>>>>>                
> >>>>>>>>
> >>>>>component - the   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>feedback panel and the label? The search is also
> >>>>>>>>                
> >>>>>>>>
> >>inefficient for
> >>    
> >>
> >>>>>>>>something simple like this, I don't think a link in a         
> >>>>>>>>                
> >>>>>>>>
> >>>>>formcomponent   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>to a labelcomponent is that big a deal. In abstract
> >>>>>>>>                
> >>>>>>>>
> >>validator you
> >>    
> >>
> >>>>>>>>would also have to cast Ifeedback to a Component in
> >>>>>>>>                
> >>>>>>>>
> >>order         
> >>    
> >>
> >>>>>to get the   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>model, this isnt very safe, it would be nice to have         
> >>>>>>>>                
> >>>>>>>>
> >>>>>Icomponent and   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>have Ifeedback extend Icomponent.
> >>>>>>>>
> >>>>>>>>Igor
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>        
> >>>>>>>>
> >>>>>>>>                
> >>>>>>>>
> >>>>>>>>>-----Original Message-----
> >>>>>>>>>From: [EMAIL PROTECTED]
> >>>>>>>>>[mailto:[EMAIL PROTECTED] On 
> Behalf Of 
> >>>>>>>>>Jonathan Locke
> >>>>>>>>>Sent: Friday, July 29, 2005 10:03 PM
> >>>>>>>>>To: wicket-user@lists.sourceforge.net
> >>>>>>>>>Subject: Re: [Wicket-user] FieldLabel component
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>well, i don't know what's happened to the feedback           
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>interface stuff   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>recently, but it was originally designed to be
> >>>>>>>>>                  
> >>>>>>>>>
> >>general enough to
> >>    
> >>
> >>>>>>>>>support what you're
> >>>>>>>>>trying to do.   seems like what you're writing is 
> >>>>>>>>>                  
> >>>>>>>>>
> >>more or less a
> >>    
> >>
> >>>>>>>>>FormComponentFeedbackLabel.  and the link is simply
> >>>>>>>>>                  
> >>>>>>>>>
> >>implementing
> >>    
> >>
> >>>>>>>>>IFeedback (or it used to be... i'm not sure what's
> >>>>>>>>>                  
> >>>>>>>>>
> >>changed... it
> >>    
> >>
> >>>>>>>>>looks unfamiliar now).
> >>>>>>>>>the form code then finds the associated feedback           
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>elements for each   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>form component.
> >>>>>>>>>
> >>>>>>>>>Igor Vaynberg wrote:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>          
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>>>>>>I've seen the error border, it doesn't do what I want -
> >>>>>>>>>>            
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>>>>in our app   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>>a red asterisk indicates a required field and field
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>labels     
> >>    
> >>
> >>>>>>>>>>            
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>>>>>>>>with errors turn red.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>          
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>>>>>>What I am looking for is a way to link the label to the     
> >>>>>>>>>>            
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>>>>>>>>component not
> >>>>>>>>>
> >>>>>>>>>          
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>>>>>>the other way around. My primary interest was the
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>validator     
> >>    
> >>
> >>>>>>>>>>            
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>>>>>>>>stuff, the
> >>>>>>>>>
> >>>>>>>>>          
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>>>>>>decoration of the label was a bonus.
> >>>>>>>>>>
> >>>>>>>>>>-Igor
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> 
> >>>>>>>>>>            
> >>>>>>>>>>
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>>>>>>>>>>-----Original Message-----
> >>>>>>>>>>>From: [EMAIL PROTECTED]
> >>>>>>>>>>>[mailto:[EMAIL PROTECTED] On
> >>>>>>>>>>>              
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>Behalf         
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>>            
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>>>>>>>>Of Jonathan
> >>>>>>>>>
> >>>>>>>>>          
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>>>>>>>Locke
> >>>>>>>>>>>Sent: Friday, July 29, 2005 8:14 PM
> >>>>>>>>>>>To: wicket-user@lists.sourceforge.net
> >>>>>>>>>>>Subject: Re: [Wicket-user] FieldLabel component
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>if you just want to show an error indicator like a
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>red       
> >>    
> >>
> >>>>>>>>>>>              
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>            
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>>>>>>>>asterisk, see
> >>>>>>>>>
> >>>>>>>>>          
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>>>>>>>FormComponentFeedbackBorder.
> >>>>>>>>>>>i personally don't like the idea of changing field
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>label       
> >>    
> >>
> >>>>>>>>>>>              
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>            
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>>>>>>>>contents on
> >>>>>>>>>
> >>>>>>>>>          
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>>>>>>>users.  so instead, i've emphasized FeedbackPanel and
> >>>>>>>>>>>              
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>IFeedback.
> >>>>>  
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>>>however, you should be able to implement what
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>you're talking
> >>    
> >>
> >>>>>>>>>>>about though by implementing IFeedback on a
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>subclass of Label.
> >>    
> >>
> >>>>>>>>>>>Igor Vaynberg wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>Hi Guys,
> >>>>>>>>>>>>
> >>>>>>>>>>>>Ive been working on forms a lot lately, and what ive been
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>missing from
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>tapestry is a fieldlabel component. Basically a fieldlabel
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>is a label
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>that is linked to a form component.
> >>>>>>>>>>>>
> >>>>>>>>>>>>This allows to do cool things like:
> >>>>>>>>>>>>
> >>>>>>>>>>>>1) FieldLabel can change its apperance based on the form 
> >>>>>>>>>>>>component
> >>>>>>>>>>>>
> >>>>>>>>>>>>TextField tf=new RequiredTextField(...) FieldLabel lb=new 
> >>>>>>>>>>>>FieldLabel("label1","First Name", tf) {
> >>>>>>>>>>>>   public void initialize() {
> >>>>>>>>>>>>       add(new AttributeModifier("style", true, new
> >>>>>>>>>>>>Model("color:red;")) {
> >>>>>>>>>>>>           public boolean isEnabled()
> >>>>>>>>>>>>           {
> >>>>>>>>>>>>               return !getFieldComponent().isValid();
> >>>>>>>>>>>>           }
> >>>>>>>>>>>>       });
> >>>>>>>>>>>>   }
> >>>>>>>>>>>>};
> >>>>>>>>>>>>
> >>>>>>>>>>>>This will create a field label that will turn red when the
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>linked form
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>component has an error.
> >>>>>>>>>>>>
> >>>>>>>>>>>>Another good use is to prepand an asterisk to the
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>fieldlabel's label if
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>the linked form component has a requiredvalidator added.
> >>>>>>>>>>>>
> >>>>>>>>>>>>2) FieldLabel's label can participate in 
> validator messages
> >>>>>>>>>>>>
> >>>>>>>>>>>>With this patch it is possible to create generic error
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>messages of form :
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>"'${label}' is required" or "'${label}' contains 
> an invalid
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>email address"
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>I am looking for feedback and ideas on how to make this
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>better before I
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>submit this as a patch.
> >>>>>>>>>>>>
> >>>>>>>>>>>>Thank you!
> >>>>>>>>>>>>Igor
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>-------------------------------------------------------------
> >>    
> >>
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>----------
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>-
> >>>>>>>>>>>>
> >>>>>>>>>>>>Index: wicket/markup/html/form/FormComponent.java
> >>>>>>>>>>>>
> >>>>>>>>>>>>                
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>================================================================
> >>>>>  
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>>>>===
> >>>>>>>>>>>>RCS file: 
> >>>>>>>>>>>>
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>/cvsroot/wicket/wicket/src/java/wicket/markup/html/form/FormC
> >>    
> >>
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>omponent.j
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>ava,v
> >>>>>>>>>>>>retrieving revision 1.43
> >>>>>>>>>>>>diff -u -r1.43 FormComponent.java
> >>>>>>>>>>>>--- wicket/markup/html/form/FormComponent.java    28 
> >>>>>>>>>>>>                
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>Jul              
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>>>2005 11:56:51 -0000    1.43
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>+++ wicket/markup/html/form/FormComponent.java    30 
> >>>>>>>>>>>>                
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>Jul              
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>>>2005 02:32:19 -0000
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>@@ -30,6 +30,7 @@
> >>>>>>>>>>>>import wicket.model.IModel;
> >>>>>>>>>>>>import wicket.util.lang.Classes; import 
> >>>>>>>>>>>>wicket.util.string.StringList;
> >>>>>>>>>>>>+import wicket.version.undo.Change;
> >>>>>>>>>>>>
> >>>>>>>>>>>>/**
> >>>>>>>>>>>>* An html form component knows how to validate itself. 
> >>>>>>>>>>>>Validators that @@ -71,6 +72,9 @@
> >>>>>>>>>>>>   /** The validator or validator list for this
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>component. */
> >>    
> >>
> >>>>>>>>>>>>   private IValidator validator = IValidator.NULL;
> >>>>>>>>>>>>
> >>>>>>>>>>>>+    /** The field label for this component */
> >>>>>>>>>>>>+    private FieldLabel fieldLabel;
> >>>>>>>>>>>>+       /**
> >>>>>>>>>>>>    * Typesafe interface to code that is called when
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>visiting a form component
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>    *
> >>>>>>>>>>>>@@ -575,4 +579,24 @@
> >>>>>>>>>>>>   {
> >>>>>>>>>>>>       validator.validate(this);
> >>>>>>>>>>>>   }
> >>>>>>>>>>>>+   +    protected FormComponent                 
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>setFieldLabel(FieldLabel label) {
> >>>>>  
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>>>>+        if (fieldLabel!=null) {
> >>>>>>>>>>>>+           +            addStateChange(new Change() {
> >>>>>>>>>>>>+                private final FieldLabel 
> >>>>>>>>>>>>+oldFieldLabel=FormComponent.this.fieldLabel;
> >>>>>>>>>>>>+
> >>>>>>>>>>>>+                public void undo()
> >>>>>>>>>>>>+                {
> >>>>>>>>>>>>+                                              
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>FormComponent.this.fieldLabel=oldFieldLabel;
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>+                }
> >>>>>>>>>>>>+            });
> >>>>>>>>>>>>+        }
> >>>>>>>>>>>>+        this.fieldLabel=label;
> >>>>>>>>>>>>+        return this;
> >>>>>>>>>>>>+    }
> >>>>>>>>>>>>+   +    public FieldLabel getFieldLabel() {
> >>>>>>>>>>>>+        return fieldLabel;
> >>>>>>>>>>>>+    }
> >>>>>>>>>>>>}
> >>>>>>>>>>>>\ No newline at end of file
> >>>>>>>>>>>>Index:                 
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>wicket/markup/html/form/validation/AbstractValidator.java
> >>>>>  
> >>>>>================================================================
> >>>>>  
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>>>>===
> >>>>>>>>>>>>RCS file: 
> >>>>>>>>>>>>
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>/cvsroot/wicket/wicket/src/java/wicket/markup/html/form/valid
> >>    
> >>
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>ation/Abst
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>ractValidator.java,v
> >>>>>>>>>>>>retrieving revision 1.31
> >>>>>>>>>>>>diff -u -r1.31 AbstractValidator.java
> >>>>>>>>>>>>---
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>wicket/markup/html/form/validation/AbstractValidator.java   21 
> >>    
> >>
> >>>>>>>>>>>Jul 2005 10:46:36 -0000    1.31
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>+++                            
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>wicket/markup/html/form/validation/AbstractValidator.java   30 
> >>    
> >>
> >>>>>>>>>>>Jul 2005 02:32:19 -0000
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>@@ -21,6 +21,7 @@
> >>>>>>>>>>>>import java.util.Map;
> >>>>>>>>>>>>
> >>>>>>>>>>>>import wicket.Localizer;
> >>>>>>>>>>>>+import wicket.markup.html.form.FieldLabel;
> >>>>>>>>>>>>import wicket.markup.html.form.FormComponent;
> >>>>>>>>>>>>import wicket.model.IModel;
> >>>>>>>>>>>>import wicket.model.Model;
> >>>>>>>>>>>>@@ -139,6 +140,21 @@
> >>>>>>>>>>>>       final Map resourceModel = new HashMap(4);
> >>>>>>>>>>>>       resourceModel.put("input",
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>formComponent.getInput());
> >>    
> >>
> >>>>>>>>>>>>       resourceModel.put("name", formComponent.getId());
> >>>>>>>>>>>>+       +        // try to retrieve the label from 
> >>>>>>>>>>>>                
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>field label,
> >>>>>  
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>default to empty string
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>+        String labelValue = "";
> >>>>>>>>>>>>+        FieldLabel label = formComponent.getFieldLabel();
> >>>>>>>>>>>>+        if (label != null)
> >>>>>>>>>>>>+        {
> >>>>>>>>>>>>+            Object modelObject = label.getModelObject();
> >>>>>>>>>>>>+            if (modelObject != null)
> >>>>>>>>>>>>+            {
> >>>>>>>>>>>>+                labelValue = modelObject.toString();
> >>>>>>>>>>>>+            }
> >>>>>>>>>>>>+        }
> >>>>>>>>>>>>+        resourceModel.put("label", labelValue);
> >>>>>>>>>>>>+       +               return resourceModel;
> >>>>>>>>>>>>   }
> >>>>>>>>>>>>}
> >>>>>>>>>>>>Index: wicket/markup/html/form/FieldLabel.java
> >>>>>>>>>>>>
> >>>>>>>>>>>>                
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>================================================================
> >>>>>  
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>>>>=== RCS file: wicket/markup/html/form/FieldLabel.java
> >>>>>>>>>>>>diff -N wicket/markup/html/form/FieldLabel.java
> >>>>>>>>>>>>--- /dev/null    1 Jan 1970 00:00:00 -0000
> >>>>>>>>>>>>+++ wicket/markup/html/form/FieldLabel.java    1 
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>Jan 1970    
> >>    
> >>
> >>>>>>>>>>>>                       
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>00:00:00 -0000
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>@@ -0,0 +1,55 @@
> >>>>>>>>>>>>+package wicket.markup.html.form;
> >>>>>>>>>>>>+
> >>>>>>>>>>>>+import wicket.AttributeModifier; import 
> wicket.Component; 
> >>>>>>>>>>>>+import wicket.markup.html.WebMarkupContainer;
> >>>>>>>>>>>>+import wicket.markup.html.basic.Label; import 
> >>>>>>>>>>>>+wicket.markup.html.panel.Panel; import            
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>             
> >>    
> >>
> >>>>>>>>>>>              
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>wicket.model.IModel; import
> >>>>>>>>>
> >>>>>>>>>          
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>>>>>>>>+wicket.model.Model; import wicket.model.PropertyModel;
> >>>>>>>>>>>>+
> >>>>>>>>>>>>+public class FieldLabel extends Label {
> >>>>>>>>>>>>+    protected FormComponent fc;
> >>>>>>>>>>>>+   +    public FieldLabel(String id, FormComponent 
> >>>>>>>>>>>>                
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>formComponent)
> >>>>>  
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>>>>+    {
> >>>>>>>>>>>>+        super(id);
> >>>>>>>>>>>>+        internalInitialize(formComponent);
> >>>>>>>>>>>>+    }
> >>>>>>>>>>>>+
> >>>>>>>>>>>>+    public FieldLabel(String id, String string,
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>FormComponent formComponent)
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>+    {
> >>>>>>>>>>>>+        super(id, string);
> >>>>>>>>>>>>+        internalInitialize(formComponent);
> >>>>>>>>>>>>+    }
> >>>>>>>>>>>>+   +    public FieldLabel(String id, IModel model,
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>FormComponent formComponent)
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>+    {
> >>>>>>>>>>>>+        super(id, model);
> >>>>>>>>>>>>+        internalInitialize(formComponent);
> >>>>>>>>>>>>+    }
> >>>>>>>>>>>>+
> >>>>>>>>>>>>+    private void internalInitialize(FormComponent
> >>>>>>>>>>>>                
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>formComponent)
> >>>>>  
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>>>>+    {
> >>>>>>>>>>>>+        if (fc==null) throw new
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>IllegalArgumentException("formComponent cannot be null");
> >>>>>>>>>>>
> >>>>>>>>>>>   
> >>>>>>>>>>>              
> >>>>>>>>>>>
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>>>+        this.fc=fc;
> >>>>>>>>>>>>+
> >>>>>>>>>>>>+        fc.setFieldLabel(this);
> >>>>>>>>>>>>+        setRenderBodyOnly(true);
> >>>>>>>>>>>>+       +        initialize();
> >>>>>>>>>>>>+    }
> >>>>>>>>>>>>+
> >>>>>>>>>>>>+    public final FormComponent getFormComponent() {
> >>>>>>>>>>>>+        return fc;
> >>>>>>>>>>>>+    }
> >>>>>>>>>>>>+   +    public void initialize() {
> >>>>>>>>>>>>+       +    }
> >>>>>>>>>>>>+   +
> >>>>>>>>>>>>+   +}
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>                          
> >>>>>>>>>>>>                        
> >>>>>>>>>>>>
> >>>>>>>>>>>-------------------------------------------------------
> >>>>>>>>>>>SF.Net email is sponsored by: Discover Easy Linux   
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>            
> >>    
> >>
> >>>>>Migration         
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>>            
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>>>>>>>>Strategies
> >>>>>>>>>
> >>>>>>>>>          
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>>>>>>>from IBM. Find simple to follow Roadmaps, straightforward 
> >>>>>>>>>>>articles,
> >>>>>>>>>>>              
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>> 
> >>>>>>>>>>            
> >>>>>>>>>>
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>>>>>>>>>>informative Webcasts and more! Get everything you need
> >>>>>>>>>>>              
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>to get up   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>>>to speed, fast.
> >>>>>>>>>>>http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> >>>>>>>>>>>_______________________________________________
> >>>>>>>>>>>Wicket-user mailing list
> >>>>>>>>>>>Wicket-user@lists.sourceforge.net
> >>>>>>>>>>>https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>                   
> >>>>>>>>>>>                      
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>-------------------------------------------------------
> >>>>>>>>>>SF.Net email is sponsored by: Discover Easy Linux
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>Migration     
> >>    
> >>
> >>>>>>>>>>            
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>>>>>>>>Strategies
> >>>>>>>>>
> >>>>>>>>>          
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>>>>>>from IBM. Find simple to follow Roadmaps, straightforward 
> >>>>>>>>>>articles,
> >>>>>>>>>>            
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>          
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>>>>>>informative Webcasts and more! Get everything you need
> >>>>>>>>>>            
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>>>>to get up   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>>>to speed, fast.
> >>>>>>>>>>http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> >>>>>>>>>>_______________________________________________
> >>>>>>>>>>Wicket-user mailing list
> >>>>>>>>>>Wicket-user@lists.sourceforge.net
> >>>>>>>>>>https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>               
> >>>>>>>>>>                    
> >>>>>>>>>>
> >>>>>>>>>-------------------------------------------------------
> >>>>>>>>>SF.Net email is sponsored by: Discover Easy Linux Migration 
> >>>>>>>>>Strategies from IBM. Find simple to follow Roadmaps, 
> >>>>>>>>>straightforward articles, informative Webcasts and more! Get 
> >>>>>>>>>everything you need to get up to speed, fast.
> >>>>>>>>>http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> >>>>>>>>>_______________________________________________
> >>>>>>>>>Wicket-user mailing list
> >>>>>>>>>Wicket-user@lists.sourceforge.net
> >>>>>>>>>https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> 
> >>>>>>>>>          
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>-------------------------------------------------------
> >>>>>>>>SF.Net email is sponsored by: Discover Easy Linux Migration 
> >>>>>>>>Strategies from IBM. Find simple to follow Roadmaps,         
> >>>>>>>>                
> >>>>>>>>
> >>>>>straightforward   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>articles, informative Webcasts and more! Get
> >>>>>>>>                
> >>>>>>>>
> >>everything         
> >>    
> >>
> >>>>>you need to   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>>get up to speed, fast. 
> >>>>>>>>http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> >>>>>>>>_______________________________________________
> >>>>>>>>Wicket-user mailing list
> >>>>>>>>Wicket-user@lists.sourceforge.net
> >>>>>>>>https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>        
> >>>>>>>>                
> >>>>>>>>
> >>>>>>>-------------------------------------------------------
> >>>>>>>SF.Net email is sponsored by: Discover Easy Linux Migration 
> >>>>>>>Strategies from IBM. Find simple to follow Roadmaps,       
> >>>>>>>              
> >>>>>>>
> >>>>>straightforward   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>articles, informative Webcasts and more! Get everything       
> >>>>>>>              
> >>>>>>>
> >>>>>you need to   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>>get up to speed, fast. 
> >>>>>>>http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> >>>>>>>_______________________________________________
> >>>>>>>Wicket-user mailing list
> >>>>>>>Wicket-user@lists.sourceforge.net
> >>>>>>>https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>>>>>
> >>>>>>>      
> >>>>>>>              
> >>>>>>>
> >>>>>>-------------------------------------------------------
> >>>>>>SF.Net email is sponsored by: Discover Easy Linux Migration     
> >>>>>>            
> >>>>>>
> >>>>>Strategies   
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>from IBM. Find simple to follow Roadmaps,
> >>>>>>            
> >>>>>>
> >>straightforward articles,
> >>    
> >>
> >>>>>>informative Webcasts and more! Get everything you need
> >>>>>>            
> >>>>>>
> >>to get up to
> >>    
> >>
> >>>>>>speed, fast. 
> >>>>>>http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> >>>>>>_______________________________________________
> >>>>>>Wicket-user mailing list
> >>>>>>Wicket-user@lists.sourceforge.net
> >>>>>>https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>>>>
> >>>>>>    
> >>>>>>            
> >>>>>>
> >>>>>-------------------------------------------------------
> >>>>>SF.Net email is sponsored by: Discover Easy Linux Migration 
> >>>>>Strategies from IBM. Find simple to follow Roadmaps,
> >>>>>          
> >>>>>
> >>straightforward
> >>    
> >>
> >>>>>articles, informative Webcasts and more! Get everything
> >>>>>          
> >>>>>
> >>you need to
> >>    
> >>
> >>>>>get up to speed, fast.
> >>>>>http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> >>>>>_______________________________________________
> >>>>>Wicket-user mailing list
> >>>>>Wicket-user@lists.sourceforge.net
> >>>>>https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>>>
> >>>>>
> >>>>>
> >>>>>  
> >>>>>          
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>>-------------------------------------------------------
> >>>>SF.Net email is sponsored by: Discover Easy Linux Migration 
> >>>>Strategies from IBM. Find simple to follow Roadmaps,
> >>>>        
> >>>>
> >>straightforward
> >>    
> >>
> >>>>articles, informative Webcasts and more! Get everything
> >>>>        
> >>>>
> >>you need to
> >>    
> >>
> >>>>get up to speed, fast. 
> >>>>http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> >>>>_______________________________________________
> >>>>Wicket-user mailing list
> >>>>Wicket-user@lists.sourceforge.net
> >>>>https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>>
> >>>> 
> >>>>
> >>>>        
> >>>>
> >>>-------------------------------------------------------
> >>>SF.Net email is sponsored by: Discover Easy Linux Migration
> >>>      
> >>>
> >>Strategies
> >>    
> >>
> >>>from IBM. Find simple to follow Roadmaps, straightforward 
> articles, 
> >>>informative Webcasts and more! Get everything you need to 
> get up to 
> >>>speed, fast. 
> http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> >>>_______________________________________________
> >>>Wicket-user mailing list
> >>>Wicket-user@lists.sourceforge.net
> >>>https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>>
> >>>      
> >>>
> >>-------------------------------------------------------
> >>SF.Net email is sponsored by: Discover Easy Linux Migration 
> Strategies 
> >>from IBM. Find simple to follow Roadmaps, straightforward articles, 
> >>informative Webcasts and more! Get everything you need to get up to 
> >>speed, fast.
> >>http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> >>_______________________________________________
> >>Wicket-user mailing list
> >>Wicket-user@lists.sourceforge.net
> >>https://lists.sourceforge.net/lists/listinfo/wicket-user
> >>
> >>
> >>
> >>    
> >>
> >
> >
> >
> >
> >-------------------------------------------------------
> >SF.Net email is sponsored by: Discover Easy Linux Migration 
> Strategies 
> >from IBM. Find simple to follow Roadmaps, straightforward articles, 
> >informative Webcasts and more! Get everything you need to get up to 
> >speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> >_______________________________________________
> >Wicket-user mailing list
> >Wicket-user@lists.sourceforge.net
> >https://lists.sourceforge.net/lists/listinfo/wicket-user
> >
> >  
> >
> 
> 
> -------------------------------------------------------
> SF.Net email is sponsored by: Discover Easy Linux Migration 
> Strategies from IBM. Find simple to follow Roadmaps, 
> straightforward articles, informative Webcasts and more! Get 
> everything you need to get up to speed, fast. 
> http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
> 
> 
> 




-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to