Re: RadioChoice and Ajax to display a panel of dropdowns

2009-09-30 Thread Per Newgro

Hey Jeff,

did you override this?


   /**
* Override this method if you want onBeforeRender to be called even 
when your component is not

* visible. default this returns false.
*
* @return boolean, if true then onBeforeRender is called even for 
none visible components,

* default false.
*
* @see Component#onBeforeRender()
*/
   protected boolean callOnBeforeRenderIfNotVisible()
   {
   return false;
   }

If you add a visible and an invisible panel you have to override this on 
the invisible one.


hth
Cheers
Per

I want to create a list of radio buttons [I have that working] and an
ajax event to fire whenever a radio button is clicked [I have this
working].  If the radio button matches the one I am interested in then I
want to display additional information that must be filled in.  A radio
button selection is required.

 


I cannot get the additional information to display when I add the
component back to the target.  I think it is because the additional
information is originally set to not visible so the output markup id is
not written out.  How would I go about doing this?  It seems pretty
standard.  Do I need to use panels and swap the appropriate panel [1 -
empty panel, 2 - panel with additional info] into the target when
needed?  That seems like a lot of code to do something fairly simple.

 

My code is below. 

 


Thanks.

 


Jeff

 


=

 


HTML:

  tr

 tdwicket:message key=userTypeType of
User:/wicket:message/td

 td

   span wicket:id=accountType

  input type=radio /option 1

   /span

 /td

  /tr

  tr

 td/td

 tdspan wicket:id=typeBoxThe additional
information/span/td

  /tr

 


Java Code:

 // Account Type sub box

 final WebMarkupContainer typeBox = new
WebMarkupContainer(typeBox);

 typeBox.setVisible(false);

 typeBox.setOutputMarkupId(true);

 add(typeBox);

 


 // Account Type Select

 List accountTypes = accountTypeDao.findAll();

 ChoiceRenderer accountTypeChoiceRenderer = new
ChoiceRenderer(name, code);

 RadioChoice accountTypeRadio = new
RadioChoice(accountType, accountTypes, accountTypeChoiceRenderer);

 //accountTypeRadio.setRequired(true);// THIS
SHOULD REALLY BE REQUIRED

 // add the on click to the radio button

 accountTypeRadio.add(new
AjaxFormChoiceComponentUpdatingBehavior () { 

   private static final long serialVersionUID = 1L; 

 

   @Override 

   protected void onUpdate(AjaxRequestTarget target) { 


 RadioChoice choice = (RadioChoice) getComponent();

 choice.updateModel();

 


 if (((AccountType)
choice.getModelObject()).getCode().equalsIgnoreCase(REP)) {

typeBox.setVisible(true);

 } else {

typeBox.setVisible(false); 


 }

 target.addComponent(typeBox);

   } 

   });

___ 


Jeffrey A. Schneller

 


Envisa

End-to-End E-Commerce for the Multi-Channel Merchant

 


281 Pleasant Street

Framingham, MA  01701

P: (508) 405-1220 x115

C: (508) 954-8044

F: (508) 405-1219

 



  



-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



RE: RadioChoice and Ajax to display a panel of dropdowns

2009-09-30 Thread Jeffrey Schneller
I did not override the method.I just did and it is still not
working.  Here is what I have:

Also, where would one find this type of information.  I don't think the
online example show it and blindly guessing methods to look at in
javadoc doesn't seem efficient.

HTML:
tr
tdwicket:message key=userTypeType of
User:/wicket:message/td
td
span wicket:id=accountType
input type=radio /option 1
/span
/td
/tr
tr
td/td
tdspan wicket:id=typeBoxThe type
box/span/td
/tr

Code:
// Account Type sub box
final WebMarkupContainer typeBox = new
WebMarkupContainer(typeBox) {

/* (non-Javadoc)
 * @see
org.apache.wicket.Component#callOnBeforeRenderIfNotVisible()
 */
@Override
protected boolean
callOnBeforeRenderIfNotVisible() {
return true;
}

};
typeBox.setVisible(false);
typeBox.setOutputMarkupId(true);
add(typeBox);

// Account Type Select
List accountTypes = accountTypeDao.findAll();
ChoiceRenderer accountTypeChoiceRenderer = new
ChoiceRenderer(name, code);
RadioChoice accountTypeRadio = new
RadioChoice(accountType, accountTypes, accountTypeChoiceRenderer);
//accountTypeRadio.setRequired(true);
// add the on click to the radio button
accountTypeRadio.add(new
AjaxFormChoiceComponentUpdatingBehavior () { 
private static final long serialVersionUID = 1L; 

@Override 
protected void onUpdate(AjaxRequestTarget target) { 
RadioChoice choice = (RadioChoice)
getComponent();
choice.updateModel();

if (((AccountType)
choice.getModelObject()).getCode().equalsIgnoreCase(REP)) {
typeBox.setVisible(true);
} else {
typeBox.setVisible(false);  
}
target.addComponent(typeBox);
} 
}); 

add(accountTypeRadio);


-Original Message-
From: Per Newgro [mailto:per.new...@gmx.ch] 
Sent: Wednesday, September 30, 2009 2:17 AM
To: users@wicket.apache.org
Subject: Re: RadioChoice and Ajax to display a panel of dropdowns

Hey Jeff,

did you override this?


/**
 * Override this method if you want onBeforeRender to be called even

when your component is not
 * visible. default this returns false.
 *
 * @return boolean, if true then onBeforeRender is called even for 
none visible components,
 * default false.
 *
 * @see Component#onBeforeRender()
 */
protected boolean callOnBeforeRenderIfNotVisible()
{
return false;
}

If you add a visible and an invisible panel you have to override this on

the invisible one.

hth
Cheers
Per
 I want to create a list of radio buttons [I have that working] and an
 ajax event to fire whenever a radio button is clicked [I have this
 working].  If the radio button matches the one I am interested in then
I
 want to display additional information that must be filled in.  A
radio
 button selection is required.

  

 I cannot get the additional information to display when I add the
 component back to the target.  I think it is because the additional
 information is originally set to not visible so the output markup id
is
 not written out.  How would I go about doing this?  It seems pretty
 standard.  Do I need to use panels and swap the appropriate panel [1 -
 empty panel, 2 - panel with additional info] into the target when
 needed?  That seems like a lot of code to do something fairly simple.

  

 My code is below. 

  

 Thanks.

  

 Jeff

  

 =

  

 HTML:

   tr

  tdwicket:message key=userTypeType of
 User:/wicket:message/td

  td

span wicket:id=accountType

   input type=radio /option 1

/span

  /td

   /tr

   tr

  td/td

  tdspan wicket:id=typeBoxThe 

Re: RadioChoice and Ajax to display a panel of dropdowns

2009-09-30 Thread Per Newgro
Only a shot in the dark, but is 
typeBox.setOutputMarkupPlaceholderTag(true) helping? You could use it 
instead of
setOutputMarkupId(true), because its done there to. Otherwise i would 
have to create a testcase for this situation.


There are different places to get informations:
- search this list
- read the wiki
- check the examples
- read a wicket book (many good out there)
It's all explained on the website. Or do you expect them elsewhere?

Cheers
Per

I did not override the method.I just did and it is still not
working.  Here is what I have:

Also, where would one find this type of information.  I don't think the
online example show it and blindly guessing methods to look at in
javadoc doesn't seem efficient.

HTML:
tr
tdwicket:message key=userTypeType of
User:/wicket:message/td
td
span wicket:id=accountType
input type=radio /option 1
/span
/td
/tr
tr
td/td
tdspan wicket:id=typeBoxThe type
box/span/td
/tr

Code:
// Account Type sub box
final WebMarkupContainer typeBox = new
WebMarkupContainer(typeBox) {

/* (non-Javadoc)
 * @see
org.apache.wicket.Component#callOnBeforeRenderIfNotVisible()
 */
@Override
protected boolean
callOnBeforeRenderIfNotVisible() {
return true;
}

};
typeBox.setVisible(false);
typeBox.setOutputMarkupId(true);
add(typeBox);

// Account Type Select
List accountTypes = accountTypeDao.findAll();
ChoiceRenderer accountTypeChoiceRenderer = new
ChoiceRenderer(name, code);
RadioChoice accountTypeRadio = new
RadioChoice(accountType, accountTypes, accountTypeChoiceRenderer);
//accountTypeRadio.setRequired(true);
// add the on click to the radio button
accountTypeRadio.add(new
AjaxFormChoiceComponentUpdatingBehavior () { 
	private static final long serialVersionUID = 1L; 

	@Override 
	protected void onUpdate(AjaxRequestTarget target) { 
		RadioChoice choice = (RadioChoice)

getComponent();
choice.updateModel();

if (((AccountType)
choice.getModelObject()).getCode().equalsIgnoreCase(REP)) {
typeBox.setVisible(true);
} else {
typeBox.setVisible(false);  
}
target.addComponent(typeBox);
	} 
	}); 			


add(accountTypeRadio);


-Original Message-
From: Per Newgro [mailto:per.new...@gmx.ch] 
Sent: Wednesday, September 30, 2009 2:17 AM

To: users@wicket.apache.org
Subject: Re: RadioChoice and Ajax to display a panel of dropdowns

Hey Jeff,

did you override this?


/**
 * Override this method if you want onBeforeRender to be called even

when your component is not
 * visible. default this returns false.
 *
 * @return boolean, if true then onBeforeRender is called even for 
none visible components,

 * default false.
 *
 * @see Component#onBeforeRender()
 */
protected boolean callOnBeforeRenderIfNotVisible()
{
return false;
}

If you add a visible and an invisible panel you have to override this on

the invisible one.

hth
Cheers
Per
  

I want to create a list of radio buttons [I have that working] and an
ajax event to fire whenever a radio button is clicked [I have this
working].  If the radio button matches the one I am interested in then


I
  

want to display additional information that must be filled in.  A


radio
  

button selection is required.

 


I cannot get the additional information to display when I add the
component back to the target.  I think it is because the additional
information is originally set to not visible so the output markup id


is
  

not written out.  How would I go about doing this?  It seems pretty
standard.  Do I need to use panels and swap the appropriate panel [1 -
empty panel, 2 - panel with additional info] into the target when
needed?  That seems like a lot of code to do something fairly simple.

 

My code is below. 

 


Thanks.

 


Jeff

 


=

 


HTML:

  tr

 

RE: RadioChoice and Ajax to display a panel of dropdowns

2009-09-30 Thread Jeffrey Schneller
Adding the call to that method seemed to solve the problem.

The places you mentioned are the usual places to look for information.
However I searched the list, read the wiki, checked the examples, and
looked through some books.  I also tried to google what I was trying to
do.  

It just seemed like this was a pretty common thing to do and I would
have thought an answer would have been found much quicker.

Do you recommend any books in particular.  I have Wicket in Action and
have ordered Pro Wicket.  Are there other books that I should be
looking at?

Thanks.

Jeff




-Original Message-
From: Per Newgro [mailto:per.new...@gmx.ch] 
Sent: Wednesday, September 30, 2009 2:09 PM
To: users@wicket.apache.org
Subject: Re: RadioChoice and Ajax to display a panel of dropdowns

Only a shot in the dark, but is 
typeBox.setOutputMarkupPlaceholderTag(true) helping? You could use it 
instead of
setOutputMarkupId(true), because its done there to. Otherwise i would 
have to create a testcase for this situation.

There are different places to get informations:
- search this list
- read the wiki
- check the examples
- read a wicket book (many good out there)
It's all explained on the website. Or do you expect them elsewhere?

Cheers
Per
 I did not override the method.I just did and it is still not
 working.  Here is what I have:

 Also, where would one find this type of information.  I don't think
the
 online example show it and blindly guessing methods to look at in
 javadoc doesn't seem efficient.

 HTML:
   tr
   tdwicket:message key=userTypeType of
 User:/wicket:message/td
   td
   span wicket:id=accountType
   input type=radio /option 1
   /span
   /td
   /tr
   tr
   td/td
   tdspan wicket:id=typeBoxThe type
 box/span/td
   /tr

 Code:
   // Account Type sub box
   final WebMarkupContainer typeBox = new
 WebMarkupContainer(typeBox) {

   /* (non-Javadoc)
* @see
 org.apache.wicket.Component#callOnBeforeRenderIfNotVisible()
*/
   @Override
   protected boolean
 callOnBeforeRenderIfNotVisible() {
   return true;
   }
   
   };
   typeBox.setVisible(false);
   typeBox.setOutputMarkupId(true);
   add(typeBox);
   
   // Account Type Select
   List accountTypes = accountTypeDao.findAll();
   ChoiceRenderer accountTypeChoiceRenderer = new
 ChoiceRenderer(name, code);
   RadioChoice accountTypeRadio = new
 RadioChoice(accountType, accountTypes, accountTypeChoiceRenderer);
   //accountTypeRadio.setRequired(true);
   // add the on click to the radio button
   accountTypeRadio.add(new
 AjaxFormChoiceComponentUpdatingBehavior () { 
   private static final long serialVersionUID = 1L; 

   @Override 
   protected void onUpdate(AjaxRequestTarget target) { 
   RadioChoice choice = (RadioChoice)
 getComponent();
   choice.updateModel();
   
   if (((AccountType)
 choice.getModelObject()).getCode().equalsIgnoreCase(REP)) {
   typeBox.setVisible(true);
   } else {
   typeBox.setVisible(false);  
   }
   target.addComponent(typeBox);
   } 
   }); 

   add(accountTypeRadio);


 -Original Message-
 From: Per Newgro [mailto:per.new...@gmx.ch] 
 Sent: Wednesday, September 30, 2009 2:17 AM
 To: users@wicket.apache.org
 Subject: Re: RadioChoice and Ajax to display a panel of dropdowns

 Hey Jeff,

 did you override this?


 /**
  * Override this method if you want onBeforeRender to be called
even

 when your component is not
  * visible. default this returns false.
  *
  * @return boolean, if true then onBeforeRender is called even for

 none visible components,
  * default false.
  *
  * @see Component#onBeforeRender()
  */
 protected boolean callOnBeforeRenderIfNotVisible()
 {
 return false;
 }

 If you add a visible and an invisible panel you have to override this
on

 the invisible one.

 hth
 Cheers
 Per
   
 I want to create a list of radio buttons [I have that working] and an
 ajax event to fire 

Re: RadioChoice and Ajax to display a panel of dropdowns

2009-09-30 Thread Per Newgro

The books you mentioned are the places to look at.

If i google wicket component not visible the third entry brings up the 
solution.
And in the list this question was answered quite often. But it surely 
depends on

search phrase. But now it's answered again.

At least here you will get almost ever an answer.

Cheers
Per

Adding the call to that method seemed to solve the problem.

The places you mentioned are the usual places to look for information.
However I searched the list, read the wiki, checked the examples, and
looked through some books.  I also tried to google what I was trying to
do.  


It just seemed like this was a pretty common thing to do and I would
have thought an answer would have been found much quicker.

Do you recommend any books in particular.  I have Wicket in Action and
have ordered Pro Wicket.  Are there other books that I should be
looking at?

Thanks.

Jeff
  



-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



RadioChoice and Ajax to display a panel of dropdowns

2009-09-29 Thread Jeffrey Schneller
I want to create a list of radio buttons [I have that working] and an
ajax event to fire whenever a radio button is clicked [I have this
working].  If the radio button matches the one I am interested in then I
want to display additional information that must be filled in.  A radio
button selection is required.

 

I cannot get the additional information to display when I add the
component back to the target.  I think it is because the additional
information is originally set to not visible so the output markup id is
not written out.  How would I go about doing this?  It seems pretty
standard.  Do I need to use panels and swap the appropriate panel [1 -
empty panel, 2 - panel with additional info] into the target when
needed?  That seems like a lot of code to do something fairly simple.

 

My code is below. 

 

Thanks.

 

Jeff

 

=

 

HTML:

  tr

 tdwicket:message key=userTypeType of
User:/wicket:message/td

 td

   span wicket:id=accountType

  input type=radio /option 1

   /span

 /td

  /tr

  tr

 td/td

 tdspan wicket:id=typeBoxThe additional
information/span/td

  /tr

 

Java Code:

 // Account Type sub box

 final WebMarkupContainer typeBox = new
WebMarkupContainer(typeBox);

 typeBox.setVisible(false);

 typeBox.setOutputMarkupId(true);

 add(typeBox);

 

 // Account Type Select

 List accountTypes = accountTypeDao.findAll();

 ChoiceRenderer accountTypeChoiceRenderer = new
ChoiceRenderer(name, code);

 RadioChoice accountTypeRadio = new
RadioChoice(accountType, accountTypes, accountTypeChoiceRenderer);

 //accountTypeRadio.setRequired(true);// THIS
SHOULD REALLY BE REQUIRED

 // add the on click to the radio button

 accountTypeRadio.add(new
AjaxFormChoiceComponentUpdatingBehavior () { 

   private static final long serialVersionUID = 1L; 

 

   @Override 

   protected void onUpdate(AjaxRequestTarget target) { 

 RadioChoice choice = (RadioChoice) getComponent();

 choice.updateModel();

 

 if (((AccountType)
choice.getModelObject()).getCode().equalsIgnoreCase(REP)) {

typeBox.setVisible(true);

 } else {

typeBox.setVisible(false); 

 }

 target.addComponent(typeBox);

   } 

   });

___ 

Jeffrey A. Schneller

 

Envisa

End-to-End E-Commerce for the Multi-Channel Merchant

 

281 Pleasant Street

Framingham, MA  01701

P: (508) 405-1220 x115

C: (508) 954-8044

F: (508) 405-1219