2010-11-04 22 views
8

Bir olay işleyicisinin bir GWT parçacığına bağlanabileceği iki yöntem olduğunu fark ediyorum: addHandler ve addDomHandler. AddDomHandler için JavaDoc, "Widget'a bir yerel olay işleyicisi ekler ve karşılık gelen yerel olayı batırır. Yerel olayı kapatmak istemezseniz, bunun yerine genel addHandler yöntemini kullanın."GWT'deki mantıksal olaylar ve yerel olaylar arasındaki fark nedir?

Birisi beni yerel olaylarla mantıksal olaylar arasındaki farka göre aydınlatırsa çok minnettar olurum.

cevap

6

Yerel etkinlikler tarayıcı tarafından doğrudan tıklanır - tıklamalar, mouseoverslar, tuşa basma vb. Gibi etkinlikler. Bir Widget'ta bu olayları almak için, olayları özellikle batırmanız gerekir.

Genel olaylar, daha geneldir. Örneğin, kendi kullanımım için bir SaveEvent ve bir DeleteEvent oluşturdum, belirli UI koşulları karşılandığında tetikleniyor. Tarayıcıdan daha uzaktalar ve tarayıcı tarafından doğrudan kovulmayacaklar. Yapabildiğiniz zaman daha genel olaylarla uğraşmanız gerektiğini düşünüyorum. Diğer yandan, diğer widget'lardan çıkamadığınız bir özel pencere öğesi oluşturuyorsanız - örneğin, kullanıcının tıklayabildiği ve sürükleyebileceği bir kaydırma çubuğu oluşturmak istiyorsanız - DOM etkinliklerine ihtiyacınız olacaktır.

+0

"Olayları özellikle batırmanız" ile ne demek istiyorsunuz? Onları nasıl batırıyorsun? – Mayumi

+0

UIObject'te "sinkEvents" (http://google-web-toolkit.googlecode.com/svn/javadoc/2.5/com/google/gwt/user/client/ui/UIObject.html#sinkEvents(int) 'i çağırdınız. . Bunu yaptıktan sonra, widget'ınızın "onBrowserEvent" öğesi ilgili etkinliklerle tetiklenir. Örneğin, fare olaylarını batırırsanız, widget'ınıza yerel fare olayları gerçekleştiğinde 'onBrowserEvent 'tetiklenir. –