2012-01-04 27 views
5

Tất cả thông tin mà tôi có thể tìm cho SuggestBox và MultiWordSuggestOracle cho thấy cách duy nhất để đặt một oracle cho hộp đề xuất là khi nó được xây dựng. Tôi không nghĩ rằng điều này có ý nghĩa, mặc dù, vì có một nhà xây dựng mặc định mà không chấp nhận một oracle và tạo ra một cho bạn, có lẽ là sản phẩm nào. Điều đó không tốt lắm. Những gì tôi đang tìm kiếm sẽ là các phương pháp như setSuggestOracle(MultiWordSuggestOracle) hoặc addToSuggestOracle(String), nhưng tôi không thể tìm thấy bất kỳ điều gì trong tài liệu hướng dẫn cách thực hiện việc này.Thêm/sửa đổi SuggestOracle sau khi xây dựng SuggestBox trong GWT

Trả lời

7

Có vẻ như bạn không thể thay đổi phiên bản SuggestOracle sau khi SuggestBox được tạo nhưng bạn có thể truy cập bằng SuggetBox::getSuggestOracle(). Từ đó bạn sẽ phải chuyển sang lớp thực hiện để thay đổi nó; Bản thân lớp SuggestOracle không cung cấp bất cứ thứ gì. Vì vậy, một cái gì đó như:

SuggestOracle oracle = new MultiWordSuggestOracle(); 
SuggestBox box = new SuggestBox(oracle); 

try { 
    MultiWordSuggestOracle multiWordOracle = (MultiWordSuggestOracle)box.getOracle(); 
    multiWordOracle.add("This awesome suggestion."); 
} catch (ClassCastException e) { 
    // the oracle was not what you thought it was 
} 
+0

Giải pháp tuyệt vời. Cảm ơn! – Neeko

+0

Tại sao không chỉ làm việc trên các biến oracle thay vì nhận được nó từ đề nghị? – Guillaume

+0

@Guillaume Có, bạn có thể làm điều đó. Nhưng, tôi đã cố gắng để cho thấy làm thế nào bạn sẽ nhận được Oracle từ hộp đề xuất. –

Các vấn đề liên quan