SORU
15 HAZİRAN 2009, PAZARTESİ


GWT Özel Olay İşleyicisi

Birisi bana bir Olay özel bir set ve bir İşleyicisi oluşturma konusunda bir örnek verebilir. Araçlarınızı eğer güncelleme varsa bilmek istediğiniz Kişinin bir nesne olduğunu varsayalım.

Bir HandlerManager oluşturmak ve bir Olay için bir İşleyici oluşturmak zorunda artık. Nasıl ve olaylar abone ateş böylece bu sınıflar tanımlayabilir misiniz?

Olayların çoğu tarayıcı tabanlı herhangi bir olay dışında ateş ki bazı özel olaylar ve işleyicileri oluşturmak isterken DOM göre.

CEVAP
21 HAZİRAN 2009, Pazar


Tüm cevaplar için teşekkürler. Zakness bana cevap biraz daha basit bir model ile geldim, ancak ihtiyacım vererek en yakın geldi.

Asıl amacım ana veri yapısı için statik bir değişken kullanmaktan kaçının. Ben de hit sorunu çözmeye çalışıyorum eğer ana veri yapısı olduğunu başarıyla alınan veritabanından anda çalışıyorum erişim ve ne zaman değil (yani ne zaman boş).

Google IO Google Web Toolkit Architecture: Best Practices For Architecting Your GWT App videoyu izledikten sonra, Olay Otobüs fikir mükemmel görünüyordu.

Başka birisi yardımcı olur diye çözümü buraya post edeceğim.

< / ^ hr .

İlk olarak, İşleyici sınıf oluşturun. Olay sınıfı zaten: referans not

public interface CategoryChangeHandler extends EventHandler {
    void onCategoryChange(CategoryChangeEvent event);
}

Şimdi Olay sınıfı için. Bu bana çok sıkıntı verdi

public class CategoryChangeEvent extends GwtEvent<CategoryChangeHandler> {

    private final List<Category> category;

    public CategoryChangeEvent(List<Category> category) {
    	super();
    	this.category = category;
    }

    public static final Type<CategoryChangeHandler> TYPE = new Type<CategoryChangeHandler>();

    @Override
    protected void dispatch(CategoryChangeHandler handler) {
    	handler.onCategoryChange(this);
    }

    @Override
    public com.google.gwt.event.shared.GwtEvent.Type<CategoryChangeHandler> getAssociatedType() {
    	return TYPE;
    }

    public List<Category> getCategories(){
    	return category;
    }

}

Şimdi bu İşleyici ve Olay sınıfları bu ana veri yapısı yeniden gelince: böyle kullanabiliyorum

Bu kod veri yapısı var ve güncellendi, onu dinleyen herkesi haberdar etmek istiyorum:

CategoryChangeEvent event = new CategoryChangeEvent(result);
eventBus.fireEvent(event);

Bu kod, Olayın bir uygulamasıdır

public class PopulateCategoryHandler implements CategoryChangeHandler {

	@Override
	public void onCategoryChange(CategoryChangeEvent event) {
		tearDownCategories();

		List<Category> categories = event.getCategories();
		populateCategories(categories);	
	}

}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Associated Press

    Associated P

    18 EYLÜL 2006
  • MikeyMacintosh

    MikeyM

    28 Aralık 2009
  • Professor Messer

    Professor Me

    27 NİSAN 2007