2012-08-02 2 views
5

현재 프로젝트에서 개찰구에서 IndicatingAjaxLink를 사용자 정의하는 문제에 직면했습니다. standart GIF 이미지를 직접 수정할 수있는 방법이 있습니까? 예를 들어 우리가 사용자로개찰구에서 IndicatingAjaxLink를 사용자 정의

add(new IndicatingAjaxLink("closeReceivedBillspanel") { 
      public void onClick(AjaxRequestTarget art) { 
        // some timeconsuming calculations 
      } 
    }); 

이 링크로드가 나타납니다와 함께 지프를 클릭 listeneer 다음 한 나는이 지프를 변경하려면,이 문제에 대한 모든 솔루션이있다?

답변

13

는 페이지가 IAjaxIndicatorAware 인터페이스를 구현 가지고

public class BasePage extends WebPage implements IAjaxIndicatorAware { 

public BasePage(final PageParameters parameters) { 
    // Home link 
    AjaxLink<Page> homeLink = new AjaxLink<Page>("homeLink") { 
     private static final long serialVersionUID = 1L; 

     @Override 
     public void onClick(AjaxRequestTarget target) { 
     setResponsePage(HomePage.class); 
     } 
    }; 
    add(homeLink); 
    } 

    @Override 
    public String getAjaxIndicatorMarkupId() { 
    return "indicator"; 
    } 

이 방법, 당신은 당신이로드는 "IMG"태그에서 이미지를 변경하여 나타날 때 표시 할, html로에서, 모든 이미지를 설정할 수 있습니다

<div id="indicator" style="display: none;"> 
<div class="indicator-content"> 
    Please wait... <wicket:link><img src="images/loading.gif" width="16" height="16" alt="loading" /></wicket:link> 
</div> 
</div> 
2

것은 yoru 사용자 정의 클래스는 같은

public class MyIndicatingAjaxLink<T> extends AjaxLink<T> implements IAjaxIndicatorAware { 
     private final MyAjaxIndicatorAppender indicatorAppender = new MyAjaxIndicatorAppender();  
    . 
    //rest of the code is same as IndicatingAjaxLink class 
    . 
    } 

은 또한 당신이 당신의 customIndicatingAjaxLink 내에서 사용자 정의 AjaxIndicatorAppender 필요 (IndicatingAjaxLink 및 업데이트 내부 뭐죠 복사) 소유 작성하고 당신은 사용자 정의의 경로를 반환하는 indicatorAppender 방법 아래 오버라이드 (override) 할 필요가 이미지

protected CharSequence getIndicatorUrl() 
관련 문제