In case anyone needs to do the same thing, I managed to do it the following 
way: 

[i know it's kinda sucky... there's probably a better way to do this, but at 
least i get what i need]

    class MyAjaxFallbackDefaultDataTable extends DataTable {

     private static final long serialVersionUID = 1L;

     public MyAjaxFallbackDefaultDataTable(String id, final 
List<AbstractColumn> columns,
       ISortableDataProvider dataProvider, int rowsPerPage) {
      this(id, (IColumn[])columns.toArray(new IColumn[columns.size()]), 
dataProvider, rowsPerPage);
     }

     public MyAjaxFallbackDefaultDataTable(String id, final IColumn[] columns,
       ISortableDataProvider dataProvider, int rowsPerPage)
     {
      super(id, columns, dataProvider, rowsPerPage);
      setOutputMarkupId(true);
      setVersioned(false);
      
      final IAjaxCallDecorator ajaxCallDecorator = new IAjaxCallDecorator() {
    private static final long serialVersionUID = -4668216748325275868L;
    
    @Override
    public CharSequence decorateOnFailureScript(CharSequence script) {
     return script + "sweetTitles.tipOut(); sweetTitles.init();";
    }

    @Override
    public CharSequence decorateOnSuccessScript(
      CharSequence script) {
     return script + "sweetTitles.tipOut(); sweetTitles.init();";
    }

    @Override
    public CharSequence decorateScript(CharSequence script) {
     return script + "sweetTitles.tipOut(); sweetTitles.init();";
    }   
      };
      
      AjaxNavigationToolbar ant = new AjaxNavigationToolbar(this) {
    private static final long serialVersionUID = -1343468065894409925L;

    protected PagingNavigator newPagingNavigator(String navigatorId, final 
DataTable table) {
     return new AjaxPagingNavigator(navigatorId, table) {
         
         private static final long serialVersionUID = 1L;

         @Override
         protected void onAjaxEvent(AjaxRequestTarget target) {
          target.addComponent(table);
         }
         
         @Override
         protected Link newPagingNavigationLink(String id, IPageable pageable, 
int pageNumber) {
          AjaxPagingNavigationLink link = new AjaxPagingNavigationLink(id, 
pageable, pageNumber);
          
          link.add(new AjaxPagingNavigationBehavior(link, pageable, "onclick"){
        private static final long serialVersionUID = 4139026546933752257L;

        @Override
        protected IAjaxCallDecorator getAjaxCallDecorator() {
            return ajaxCallDecorator;
           }           
          });
          
          return link;
         }
         
         @Override
         protected Link newPagingNavigationIncrementLink(String id, IPageable 
pageable, int increment) {
          AjaxPagingNavigationIncrementLink link = new 
AjaxPagingNavigationIncrementLink(id, pageable, increment);
          
          link.add(new AjaxPagingNavigationBehavior(link, pageable, "onclick"){
        private static final long serialVersionUID = 4139026546933752257L;

        @Override
        protected IAjaxCallDecorator getAjaxCallDecorator() {
            return ajaxCallDecorator;
           }           
          });
          
          return link;          
         }
         
         @Override
         protected PagingNavigation newNavigation(final IPageable pageable, 
final IPagingLabelProvider labelProvider) {
          return new AjaxPagingNavigation("navigation", pageable, 
labelProvider) {
        private static final long serialVersionUID = 1456846335814294449L;

        protected PagingNavigationLink newPagingNavigationLink(String id, 
IPageable pageable, int pageIndex) {
            AjaxPagingNavigationLink link = new AjaxPagingNavigationLink(id, 
pageable, pageIndex);
            
            link.add(new AjaxPagingNavigationBehavior(link, pageable, 
"onclick"){
             private static final long serialVersionUID = 4139026546933752257L;

             @Override
             protected IAjaxCallDecorator getAjaxCallDecorator() {
                 return ajaxCallDecorator;
                }           
               });
            
            return link;
           }
          };
         }
           };
       }
      };
      addTopToolbar(ant);
      addTopToolbar(new AjaxFallbackHeadersToolbar(this, dataProvider));
      addBottomToolbar(new NoRecordsToolbar(this));
     }

     protected Item newRowItem(String id, int index, IModel model) {
      return new OddEvenItem(id, index, model);
     }
    }


  ----- Original Message ----- 
  From: Cristi Manole 
  To: [email protected] 
  Sent: Tuesday, October 23, 2007 11:23 PM
  Subject: Javascript call on AjaxFallbackDefaultDataTable


  Hello,

  I am wondering how I could make a javascript call each time the 
AjaxFallbackDefaultDataTable is refreshed. 

  Thanks in advance.

Reply via email to