Maciej Nowicki

Maciej Nowicki Java Developer

Temat: Prosty sposób na wyłączenie całej zawartości panelu

Hej,

Mam następujący problem. Chciałbym na chwilę (na czas asynchronicznej operacji) wyłączyć wszystkie widgety które znajdują się na panelu, ale za wszelką cenę chciałbym uniknąć wywoływania metody setEnabled() na każdym widgecie z osobna (bardzo komplikuje to kod, który dotąd dbał o to, aby odpowiednie widgety były włączone/wyłączone).

Niestety, najprostsze rozwiązanie jakie przyszło mi do głowy, czyli:

DOM.setElementPropertyBoolean(getElement(), "disabled", !status);

dla całego panelu działa porpawnie pod IE i domyślną przeglądarką GWT, ale niestety nie pod firefoxem.

Macie jakiś inny pomysł na łatwe wyłączenie całego panelu? Dodam, że taki sam problem mam z komponentem drzewka - również chciałbym je na wyłączyć na czas tej operacji.

Z góry dzięki za pomoc

konto usunięte

Temat: Prosty sposób na wyłączenie całej zawartości panelu

Przykryć wszystko div'em ew. na jak najwyższym poziomie zarejestrować przechwytywanie zdarzeń i w czasie włączenia blokady blokować ich dalsze przetwarzanie (eventPreventDefault AFAIR).
Maciej Nowicki

Maciej Nowicki Java Developer

Temat: Prosty sposób na wyłączenie całej zawartości panelu

Myślałem nad takim rozwiązaniem, ale niestety mnie to nie urządza. Widgety powinny wyglądać na wyłączone dokładnie tak, jakby na każdym z nich z osobna była wywołana metoda setEnabled(). Czyli jednak bez gimnastyki przy włączaniu/wyłączaniu odpowiednich widgetów się nie obejdzie.

konto usunięte

Temat: Prosty sposób na wyłączenie całej zawartości panelu

A podmiana klasy na elemencie nadrzędnym?
Fakt musiałbyś przygotować podwójny zestaw CSS dla widgetów
.enabledWidget .xx
.disabledWidget.xx

z drugiej strony jeśli masz w jakimś secie zbiór widgetów i nie jest ich dużo to przeiterowanie po wszystkich też nie powinno długo trwać
Maciej Nowicki

Maciej Nowicki Java Developer

Temat: Prosty sposób na wyłączenie całej zawartości panelu

Tu nie chodzi o wydajność, tylko o fakt, że wcinam się z tą funkcjonalnością w sam środek logiki aplikacji - dotąd odpowiednie pola były włączane/wyłączane w zależności od uprawnień użytkownika i po chwilowym wyłączeniu wszystkich trudno było odtworzyć stan wyjściowy. Ale jakoś sobie już z tym poradziłem, choć kod który z tego wyszedł to mały potworek.



Wyślij zaproszenie do