2012-08-02 16 views
5

मेरी वर्तमान परियोजना में मुझे विकेट में इंडिकेटिंगएजैक्सलिंक को अनुकूलित करने की समस्या का सामना करना पड़ा है, क्या स्टैंडअल जीआईएफ छवि को अपने आप में बदलने का कोई समाधान है? उदाहरण के लिए हम listeneer निम्नलिखित हैविकेट में इंडिकेटिंगएजेक्सलिंक को अनुकूलित करना

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

उपयोगकर्ता के रूप में इस लिंक, लोड हो रहा है प्रकट होता है के साथ gif क्लिक करता है और मैं इस gif बदलना चाहते हैं, इस समस्या के लिए किसी भी समाधान है?

उत्तर

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"; 
    } 

इस तरह, आप html में सेट कर सकते हैं, किसी भी छवि आप जब लोड हो रहा है "img" टैग में छवि को बदलने से प्रकट होता है प्रदर्शित करना चाहते हैं

<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 की विधि नीचे ओवरराइड करने के लिए की जरूरत है छवि

protected CharSequence getIndicatorUrl() 
संबंधित मुद्दे