You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by "Mathias P.W Nilsson" <ma...@snyltarna.se> on 2009/03/27 16:53:05 UTC
Compound property model
Hi,
When testing this the user in the onSubmit is null. I load a list of
Connectors and make an CompoundPropertyModel for the list. Every connector
has a user. How can I achive this so that the list is populated with users
in the onSubmit()?
package se.sosalarm.planner.web.page.chain.connector;
import java.util.List;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.ChoiceRenderer;
import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.spring.injection.annot.SpringBean;
import se.sosalarm.planner.entities.chain.connector.Connector;
import se.sosalarm.planner.entities.user.User;
import se.sosalarm.planner.service.ConnectorService;
import se.sosalarm.planner.service.UserService;
public class ConfigureWindow extends WebPage {
private static final long serialVersionUID = 1L;
@SpringBean( name = "connectorService" )
private ConnectorService connectorService;
@SpringBean( name = "userService" )
private UserService userService;
public UserService getUserService() {
return userService;
}
public ConnectorService getConnectorService() {
return connectorService;
}
public void setConnectorService(ConnectorService connectorService) {
this.connectorService = connectorService;
}
private Connector connector;
public ConfigureWindow(final IModel<Connector> model) {
this.connector = model.getObject();
IModel imo = new LoadableDetachableModel(){
@Override
protected Object load() {
return getConnectorService().getChilds(connector);
}
};
Form configureForm = new Form( "configureForm" );
final ListView view = new ListView( "userView" , new
CompoundPropertyModel( imo ) ){
@Override
protected void populateItem(final ListItem item) {
item.setModel(new CompoundPropertyModel(item.getModel().getObject()));
final Connector c = (Connector) item.getModelObject();
IModel ju = new LoadableDetachableModel(){
@Override
protected Object load() {
return getUserService().getAvailableUsers( c );
}
};
DropDownChoice userChoice = new DropDownChoice( "user",
item.getModel(),ju );
item.add( userChoice );
item.add( new Label( "name" ));
}
};
AjaxSubmitLink submit = new AjaxSubmitLink( "submit" , configureForm
){
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
List<Connector> connectors = (List<Connector>)view.getModelObject();
System.out.println( view.getModelObject() );
for( Connector c : connectors ){
if( c.getUser() != null ){
System.out.println( c.getName() + ":" + c.getUser().getFullName() );
}
}
}
};
configureForm.add( submit );
configureForm.add( view );
add( configureForm );
}
}
--
View this message in context: http://www.nabble.com/Compound-property-model-tp22744472p22744472.html
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org