2010-06-14 19 views
5

पर सभी विकल्पों को दिखा रहा है मुझे एक सुझाव बॉक्स बनाने की आवश्यकता है जो एंटर कुंजी दबाकर सभी विकल्पों को दिखाएगा। मैंने निम्नलिखित कार्यान्वयन लिखा है, और ऐसा लगता है कि ठीक काम कर रहा है। मैं चाहता हूं कि कोई मेरे कार्यान्वयन की समीक्षा करे और मुझे बताएं कि किसी विशेष परिदृश्य में समस्याएं पैदा करेगा। इसके अलावा, सुझाए गए सुझाव को इस सुझाव बॉक्स में को डिफ़ॉल्ट सुझाव सेट होना चाहिए, विधि setDefaultSuggestions() को MultiWordSuggestOracle पर कॉल करके। मेरे का कोई भी उपयोगकर्ता इस तथ्य के लिए पारदर्शी होना चाहिए। इसलिए मुझे लगता है कि मैं को डिफ़ॉल्ट सुझाव सेटिंग्स को करने के लिए MultiWordSuggestOracle को लपेटने (या विस्तारित) करने की आवश्यकता होगी। क्या आप कृपया यह सलाह दे सकते हैं कि ऐसा करने का एक अच्छा तरीका क्या होगा?सुझाव बॉक्स GWT एंटर कुंजी

public class SuggestBoxWithAllOptions extends SuggestBox implements 
    KeyPressHandler { 
    public SuggestBoxWithAllOptions(MultiWordSuggestOracle oracle) { 
      super(oracle); 
      this.addKeyPressHandler(this); 
    } 
    @Override 
    public void onKeyPress(KeyPressEvent event) { 
      char c = event.getCharCode(); 
      int i = this.getText().length(); 
    if (c == KeyboardListener.KEY_ENTER && i == 0) { 
      /* Since the query string is null, the default suggestions 
      will get listed */ 
      this.showSuggestionList(); 
    } 
    } 
    } 

    /* Code for initializing the SuggestBox */ 
      List<String> suggestions = new ArrayList<String>(); 
      suggestions.add("Tablet"); 
      suggestions.add("Capsule"); 
      MultiWordSuggestOracle myOracle = new MultiWordSuggestOracle(); 
      myOracle.addAll(suggestions); 
      myOracle.setDefaultSuggestionsFromText(suggestions); 
      SuggestBox mySuggest = new SuggestBoxWithAllOptions(myOracle); 

उत्तर

5

यह मेरे लिए बहुत अच्छा लग रहा है। एक और तरीका सभी सुझाव दिखाने के लिए एक बटन जोड़ना है। एक ड्रॉप डाउन बॉक्स तीर की तरह दिखने के लिए बटन को स्टाइल किया जा सकता है।

public class DropDownSuggestBox extends Composite { 

public DropDownSuggestBox(final SuggestBox suggestBox) { 
    FlowPanel layout = new FlowPanel(); 
    final Button dropDownButton = new Button(); 
    dropDownButton.setStyleName("slate-DropdownIcon"); 
    dropDownButton.setText("Show Options"); 
    dropDownButton.addClickHandler(new ClickHandler() { 
     @Override 
     public void onClick(ClickEvent event) { 
      suggestBox.setFocus(true); 
      suggestBox.showSuggestionList(); 
     } 
    }); 

    layout.add(suggestBox); 
    layout.add(dropDownButton); 

    initWidget(layout); 

    setStylePrimaryName("slate-DropDownSuggestBox"); 
} 

} 
2

यही दृष्टिकोण है जब आप, बटन पर क्लिक करें ताकि लोग हैं, जो कलंक पर मान्यता आदि को गति प्रदान, इस व्यवहार से परेशान किया जा सकता है समस्या हो सकती है के बाद से सुझाव है कि बॉक्स पर ध्यान केंद्रित खो दिया है।

मैं इस lib जो एक वास्तविक जीवन विशाल आवेदन के लिए बनाया गया था का उपयोग करना चाहिये, इतने सारे practicle मामलों उपयोग http://code.google.com/p/advanced-suggest-select-box/

के बाद प्रतिक्रिया की वजह से हल किया गया पहला मूल प्रश्न के लिए, आप onkeyup ओवरराइड कर सकते हैं() और है अपने मामले के लिए विशेष सामान करें और बाकी सभी के लिए super.onKeyUp() को प्रतिनिधि दें।

आशा है कि यह मदद कर सकता है, सादर, zied हम्दी

0

@Vishal सिंह,

SuggestBox विस्तार करने के लिए कोई ज़रूरत नहीं। आपका कोड मूल सुझाव बॉक्स के साथ काम करता है।

SuggestBox mySuggest = new SuggestBox(myOracle); 
    mySuggest.addKeyPressHandler(new KeyPressHandler() { 
     @Override 
     public void onKeyPress(KeyPressEvent event) { 

     } 
    }); 
संबंधित मुद्दे