Re: Using ajax to update a panel

2007-12-05 Thread wicket user
-ajax-to-update-a-panel-tf4949239.html#a14170394
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




Using ajax to update a panel

2007-12-05 Thread Andrew Moore

Hi, 
I've got a page, which includes a drop down choice box, and a panel (with a
list of images).

The drop down box holds an id (which ties back to a list of images), what
I'm wanting to be able to do is that if the user changes the drop down
choice, the panel refreshes via ajax with the new images.

Here's a few snippets of code:

-
//insert the image preview panel
final ImagePreviewPanel imagePreviewPanel = new
ImagePreviewPanel(imagePreviewPanel, generalPage.getImageCollectionId());
imagePreviewPanel.setOutputMarkupId(true);
form.add(imagePreviewPanel);
form.setOutputMarkupId(true);

//add the OnChange for the ajax call
OnChangeAjaxBehavior onChangeAjaxBehavior = new OnChangeAjaxBehavior(){
protected void onUpdate(AjaxRequestTarget target) {
FormComponent fc = getFormComponent();
fc.getForm();
GeneralPage aGeneralPage = (GeneralPage)
fc.getForm().getModelObject();
//get the drop down image collection id
if (aGeneralPage.getImageCollectionOption() != null){
String keyValue =
aGeneralPage.getImageCollectionOption().getKey();

imagePreviewPanel.setImageCollectionId(new
Long(aGeneralPage.getImageCollectionOption().getKey()));
}
target.addComponent(imagePreviewPanel);
}
};

-

Then I've got the panel (which I've cut down on the details here to make it
a bit easier to understand)

-
public class ImagePreviewPanel extends Panel
{
private Long imageCollectionId; 
private String galleryCounterText = ;
private List imageList = new ArrayList();

public ImagePreviewPanel(final String componentId, Long
anImageCollectionId){
super(componentId);
//set up the instance variable from the constructor
setImageCollectionId(anImageCollectionId);

//now add the image previews
//first get the images if there are any
ImageCollection imageCollection =
imageCollectionDao.findByImageCollectionId(imageCollectionId);

WebMarkupContainer dataImagecontainer = new
WebMarkupContainer(dataimage);
dataImagecontainer.setOutputMarkupId(true);
add(dataImagecontainer);

//display the total number of images in the list
galleryCounterText = imageCollection.getImages().size();
add(new Label(galleryCounter,new PropertyModel(this,
galleryCounterText)).setOutputMarkupId(true));

//get the collection of images from the imageCollection object  
  
imageList = imageCollection.getImages();

final PageableListView imageView;
dataImagecontainer.add(imageView = new 
PageableListView(galleryList, new
CompoundPropertyModel(imageList), 20){
public void populateItem(final ListItem listItem){
final Image image = 
(Image)listItem.getModelObject();

//set up default image element description
String imageElementDescription = new
StringResourceModel(noImageElementDescription, this, null).getString();

//set up image element description if a better 
one exists
StaticImage staticImage = new 
StaticImage(previewImage,
image.getImageHref());
staticImage.setOutputMarkupId(true);
listItem.add(staticImage);
}
});
imageView.setOutputMarkupId(true);
}


public Long getImageCollectionId() {
return imageCollectionId;
}

public void setImageCollectionId(Long imageCollectionId) {
this.imageCollectionId = imageCollectionId;
}
}




-
The only thing is, don't feel like I've got my head completely around the
wicket models and I'm having trouble working out what I need to do to the
page and panel to get the panel to refresh via ajax.

Sorry for the amount of code, but it's the only way I think to try and
describe what I've currently got.
Thanks
Andrew
-- 
View this message in context: 
http://www.nabble.com/Using-ajax-to-update-a-panel-tf4949239.html#a14170394
Sent from the Wicket

Re: Using ajax to update a panel

2007-12-05 Thread wicket user
(staticImage);
  }
  });
  imageView.setOutputMarkupId(true);
  }
 
 
  public Long getImageCollectionId() {
  return imageCollectionId;
  }
 
  public void setImageCollectionId(Long imageCollectionId) {
  this.imageCollectionId = imageCollectionId;
  }
  }
 
 
 
 
 
 
 -
  The only thing is, don't feel like I've got my head completely around
 the
  wicket models and I'm having trouble working out what I need to do to
 the
  page and panel to get the panel to refresh via ajax.
 
  Sorry for the amount of code, but it's the only way I think to try and
  describe what I've currently got.
  Thanks
  Andrew
  --
  View this message in context:
 
 http://www.nabble.com/Using-ajax-to-update-a-panel-tf4949239.html#a14170394
  Sent from the Wicket - User mailing list archive at Nabble.com.
 
 
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 
 

 --
 View this message in context:
 http://www.nabble.com/Using-ajax-to-update-a-panel-tf4949239.html#a14171495
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




Re: Using ajax to update a panel

2007-12-05 Thread Andrew Moore
) {
 this.imageCollectionId = imageCollectionId;
 }
 }





 -
 The only thing is, don't feel like I've got my head completely around the
 wicket models and I'm having trouble working out what I need to do to the
 page and panel to get the panel to refresh via ajax.

 Sorry for the amount of code, but it's the only way I think to try and
 describe what I've currently got.
 Thanks
 Andrew
 --
 View this message in context:
 http://www.nabble.com/Using-ajax-to-update-a-panel-tf4949239.html#a14170394
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 
 

-- 
View this message in context: 
http://www.nabble.com/Using-ajax-to-update-a-panel-tf4949239.html#a14171495
Sent from the Wicket - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]