Looks fine to me. Can you create a quickstart?

Sven

On 07/04/2013 03:30 AM, Vignesh Palanisamy wrote:
Hi all,

I have  a ConfirmAjaxFallbackLink which is use to display confirmation
dialog, when a user attempts to delete an item in a datatable.

public abstract class ConfirmAjaxFallbackLink extends AjaxFallbackLink
{
     private String confirmMessage;
     private IModel<String> confirmMessageModel;


     public ConfirmAjaxFallbackLink(String id, String confirmMessage)
     {
         super(id);
         this.confirmMessage = confirmMessage;
     }

     public ConfirmAjaxFallbackLink(String id, IModel<String> messageModel)
     {
         super(id, messageModel);
         this.confirmMessageModel = messageModel;
     }

     @Override
     protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
     {
         super.updateAjaxAttributes(attributes);
         AjaxCallListener ajaxCallListener = new AjaxCallListener();
         if (confirmMessage != null) {
             ajaxCallListener.onPrecondition(new
JavaScriptEventConfirmation(confirmMessage).getBeforeHandler(this));
         } else {
             ajaxCallListener.onPrecondition(new
JavaScriptEventConfirmation(confirmMessageModel.getObject()).getBeforeHandler(this));
         }
         attributes.getAjaxCallListeners().add(ajaxCallListener);
     }

     @Override
     public abstract void onClick(AjaxRequestTarget target);
}



it works fine with static message and static model


but i want to load the message dynamically. so i use LoadableDetachableModel

like this

new ConfirmAjaxFallbackLink("deleteItemLink", new
LoadableDetachableModel<String>()
                         {
                             @Override
                             protected String load()
                             {
                                 List<String> activeUsages =
findActiveUsages();
                                 if (activeUsages.size() > 0) {
                                     return "This item is actively used in "
+activeUsages +", Do you still want to delete it?";
                                 }
                                 return "Do you want delete?"
                             }
                         })
                         {
                             @Override
                             public void onClick(AjaxRequestTarget target)
                             {
                                 onDelete(target);
                             }
                         };


But it doesn't load dynamically. while we refresh the page only it loading.


can you have any idea about it.



Thanks,
Vignesh


Reply via email to