Hi Andrew,
So what's actually happening? Anything? Exceptions or does the image just
stay the same?
On 05/12/2007, Andrew Moore <[EMAIL PROTECTED]> wrote:
>
>
> 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 - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>