6

私の現在のプロジェクトでは、ウィケットで IndicatingAjaxLink をカスタマイズするという問題に直面しました。標準的な gif 画像を自分のものに変更する解決策はありますか? たとえば、次のリスナーがあります

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

ユーザーがこのリンクをクリックすると、読み込み中の gif が表示され、この gif を変更したいのですが、この問題の解決策はありますか?

4

2 に答える 2

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>
于 2012-08-02T12:25:01.780 に答える
2

次のような独自のカスタム クラスを作成します (IndicatingAjaxLink 内の内容をコピーして更新します)。

   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 が必要であり、以下の indicatorAppender メソッドをオーバーライドして、カスタム イメージのパスを返す必要があります。

protected CharSequence getIndicatorUrl()
于 2012-08-02T09:21:21.830 に答える