Thread View: pl.comp.lang.java
9 messages
9 total messages
Started by J-23
Mon, 19 Nov 2012 21:46
LiveGrid EXT-GWT
Author: J-23
Date: Mon, 19 Nov 2012 21:46
Date: Mon, 19 Nov 2012 21:46
36 lines
2320 bytes
2320 bytes
Witam,
Do tej pory gdy pisałem z użyciem EXT-GWT korzystałem ze zwykłej siatki
(BeanModel) teraz chciałbym skorzystać z LiveGrid i mam pytanie
JsonPagingLoadResultReader<PagingLoadResult<ModelData>> reader = new
JsonPagingLoadResultReader<PagingLoadResult<ModelData>>(
type);
final PagingLoader<PagingLoadResult<ModelData>> loader = new
BasePagingLoader<PagingLoadResult<ModelData>>(proxy,
reader);
loader.addListener(Loader.BeforeLoad, new Listener<LoadEvent>() {
public void handleEvent(LoadEvent be) {
BasePagingLoadConfig m = be.<BasePagingLoadConfig> getConfig();
m.set("start", m.get("offset"));
m.set("ext", "js");
m.set("lightWeight", true);
m.set("sort", (m.get("sortField") == null) ? "" :
m.get("sortField"));
m.set("dir", (m.get("sortDir") == null || (m.get("sortDir") !=
null && m.<SortDir> get("sortDir").equals(
SortDir.NONE))) ? "" : m.get("sortDir"));
}
});
Czy parametry start, offset są to jakieś stałe parametry bo nigdzie ich
nie ma zdefiniowanych?
Czy też może one są zaszyte w
http://www.sencha.com/forum/topics-browse-remote.php
Bo ogólnie zasadę rozumiem jest to odpowiednio przygotowany format JSON
i domyślam się że jakbyśmy pobierali te dane z bazy, trzeba skorzystać z
LIMIT w zapytaniu tylko jak przekazać parametr dla limit to już nie
bardzo kojarzę.
Pozdrawiam
Re: LiveGrid EXT-GWT
Author: William Bonawentura
Date: Tue, 20 Nov 2012 06:37
Date: Tue, 20 Nov 2012 06:37
7 lines
1354 bytes
1354 bytes
1) Przesiądź się na Ext3.0 BeanModel to straszna proteza i wcześniej czy
później będziesz żałował :)
2) To loader wpisuje do BasePagingLoadConfig parametry offset i limit
Powinny one "pójść" do zapytania json dla serwera, więc dublowanie ich :
m.set("start", m.get("offset"));
chyba nie jest konieczne.
Re: LiveGrid EXT-GWT
Author: J-23
Date: Tue, 20 Nov 2012 14:00
Date: Tue, 20 Nov 2012 14:00
21 lines
1743 bytes
1743 bytes
W dniu 20.11.2012 07:37, William Bonawentura pisze:
> 1) Przesiądź się na Ext3.0 BeanModel to straszna proteza i wcześniej czy
> później będziesz żałował :)
To zrobie w kolejnym etapie niestety teraz musze przejsc w miare szybko
na LiveGrid
>
> 2) To loader wpisuje do BasePagingLoadConfig parametry offset i limit
> Powinny one "pójść" do zapytania json dla serwera, więc dublowanie ich :
> m.set("start", m.get("offset"));
> chyba nie jest konieczne.
Kod ktory podałem był zaczerpnięty z przykładu (sam go nie pisałem)
http://www.sencha.com/examples-2/#livegrid
Czy mogłbyś podać malutki przyklad jak to ma wyglądać bo nie bardzo nogę
to wydedukować sobie?
Pozdrawiam
Re: LiveGrid EXT-GWT
Author: J-23
Date: Tue, 20 Nov 2012 23:26
Date: Tue, 20 Nov 2012 23:26
17 lines
1748 bytes
1748 bytes
W dniu 20.11.2012 07:37, William Bonawentura pisze:
> 1) Przesiądź się na Ext3.0 BeanModel to straszna proteza i wcześniej czy
> później będziesz żałował :)
>
> 2) To loader wpisuje do BasePagingLoadConfig parametry offset i limit
> Powinny one "pójść" do zapytania json dla serwera, więc dublowanie ich :
> m.set("start", m.get("offset"));
> chyba nie jest konieczne.
Znalazłem coś takiego
http://www.sencha.com/forum/showthread.php?119486-Data-loading-into-live-grid-via-RPCProxy-does-not-work
Wypróbuje rano. Ale czy ja dobrze rozumiem że wystarczy użyć zwykłego
SELECT (bez limit) wypełniając fasolę a już potem mi to samo będzie
odczytywać konkretne porcje danych?
Pozdrawiam
Re: LiveGrid EXT-GWT
Author: William Bonawentura
Date: Wed, 21 Nov 2012 09:16
Date: Wed, 21 Nov 2012 09:16
17 lines
1814 bytes
1814 bytes
>> m.set("start", m.get("offset"));
>> chyba nie jest konieczne.
> Kod ktory podałem był zaczerpnięty z przykładu (sam go nie pisałem)
> http://www.sencha.com/examples-2/#livegrid
Podejrzyj np. firebugiem jakie zapytania są wysyłane na serwer w tym
przykładzie:
http://www.sencha.com/forum/topics-browse-remote.php?callback=transId1&sortField=lastpost&sortDir=DESC&offset=4584&limit=200&start=4584&ext=js&lightWeight=true&sort=lastpost&dir=DESC
Kopiowanie "offset" do "start" nie było konieczne - do skryptu php
przechodzą one podwójnie. Obsługa pola limit jest obowiązkowa - jeśli
odeślesz tysiąc rekordów to z "live grid" zrobi się na wolniejszym
komputerza "zwis".
Re: LiveGrid EXT-GWT
Author: J-23
Date: Wed, 21 Nov 2012 18:52
Date: Wed, 21 Nov 2012 18:52
54 lines
3213 bytes
3213 bytes
W dniu 21.11.2012 10:16, William Bonawentura pisze:
>
>>> m.set("start", m.get("offset"));
>>> chyba nie jest konieczne.
>
>
>> Kod ktory podałem był zaczerpnięty z przykładu (sam go nie pisałem)
>> http://www.sencha.com/examples-2/#livegrid
>
> Podejrzyj np. firebugiem jakie zapytania są wysyłane na serwer w tym
> przykładzie:
>
> http://www.sencha.com/forum/topics-browse-remote.php?callback=transId1&sortField=lastpost&sortDir=DESC&offset=4584&limit=200&start=4584&ext=js&lightWeight=true&sort=lastpost&dir=DESC
>
>
> Kopiowanie "offset" do "start" nie było konieczne - do skryptu php
> przechodzą one podwójnie. Obsługa pola limit jest obowiązkowa - jeśli
> odeślesz tysiąc rekordów to z "live grid" zrobi się na wolniejszym
> komputerza "zwis".
>
>
Witam,
Na początek powiem tyle że jestem bardzo wdzięczny za chęć wytłumaczenia
mi tego. Wrócę do początku i powiem co rozumiem a co jest dla mnie nie
jasne, da to jaśniejszy obraz sytuacji. Bo mam wrażenie że tłumaczysz mi
troszkę dalej niż zaszedłem :)
Rozumiem że musi być:
1. JSON o odpowiedniej strukturze
2. Przy pobieraniu danych z bazy muszę to pobierać partiami
3. Rozumiem że takie rzeczy jak "sortField", "sortDir", "limit",
"offset", "ext", "lightWeight", "lastpost", są to parametry przekazywane
do skryptu i według nich są pobierane odpowiednio dane
Nie rozumiem:
1. Jak są uzupełnianie parametry skryptu. Domyślam się ze jakoś przez
m.set("start", m.get("offset")); //faktycznie bo wytarciu tego są
pobieranie dopowiednio dane, ale jaka jest zasada tego co podstawimy pod
"m,set" skąd on wie które jak podstawić limit?
2. Załóżmy ze mam zapytanie SELECT * FROM test LIMIT 0,10
Wiemy zę zapytanie wyswietli 10 rekordów (zakładam ze już jest
odpowiedni JSON)
Jak to napisać tak by po przesunięciu suwakiem LiveGrid wczytala sie
odpowiednia ilość?
3. po stronie serwera będzie metoda getSQL(Integer Start, Integer Stop)
gdzie start i stop będzie zakresem jaki ma wyświetlić tylko jak to
odpowiednio zapisać?
Pozdrawiam
Re: LiveGrid EXT-GWT (Częściowe rozwiązanie)
Author: J-23
Date: Wed, 21 Nov 2012 23:26
Date: Wed, 21 Nov 2012 23:26
21 lines
1905 bytes
1905 bytes
W dniu 21.11.2012 19:52, J-23 pisze: Tutaj jest częściowe rozwiązanie moich problemów http://www.sencha.com/forum/showthread.php?119614-Updating-Data-in-live-grid-store-is-not-displayed-on-the-grid > > 2. Załóżmy ze mam zapytanie SELECT * FROM test LIMIT 0,10 > > Wiemy zę zapytanie wyswietli 10 rekordów (zakładam ze już jest > odpowiedni JSON) > > Jak to napisać tak by po przesunięciu suwakiem LiveGrid wczytala sie > odpowiednia ilość? > > 3. po stronie serwera będzie metoda getSQL(Integer Start, Integer Stop) > gdzie start i stop będzie zakresem jaki ma wyświetlić tylko jak to > odpowiednio zapisać? Już wiem jak ma to wyglądać po stronie serwera. Tylko jak obsłużyć LIMIT? Pozdrawiam
Re: LiveGrid EXT-GWT (Częściowe rozwiązanie)
Author: J-23
Date: Thu, 22 Nov 2012 18:27
Date: Thu, 22 Nov 2012 18:27
27 lines
2096 bytes
2096 bytes
W dniu 22.11.2012 00:26, J-23 pisze: > W dniu 21.11.2012 19:52, J-23 pisze: > > Tutaj jest częściowe rozwiązanie moich problemów > http://www.sencha.com/forum/showthread.php?119614-Updating-Data-in-live-grid-store-is-not-displayed-on-the-grid > > >> >> 2. Załóżmy ze mam zapytanie SELECT * FROM test LIMIT 0,10 >> >> Wiemy zę zapytanie wyswietli 10 rekordów (zakładam ze już jest >> odpowiedni JSON) >> >> Jak to napisać tak by po przesunięciu suwakiem LiveGrid wczytala sie >> odpowiednia ilość? >> >> 3. po stronie serwera będzie metoda getSQL(Integer Start, Integer Stop) >> gdzie start i stop będzie zakresem jaki ma wyświetlić tylko jak to >> odpowiednio zapisać? > > Już wiem jak ma to wyglądać po stronie serwera. Tylko jak obsłużyć LIMIT? > Temat zamknięty za try-biłem jak to zrobić. Bonawetura 100 krotne dzięki za pomoc Pozdrawiam
Re: LiveGrid EXT-GWT
Author: William Bonawentura
Date: Fri, 23 Nov 2012 06:43
Date: Fri, 23 Nov 2012 06:43
22 lines
2386 bytes
2386 bytes
> Nie rozumiem:
> 1. Jak są uzupełnianie parametry skryptu. Domyślam się ze jakoś przez
> m.set("start", m.get("offset")); //faktycznie bo wytarciu tego są
> pobieranie dopowiednio dane, ale jaka jest zasada tego co podstawimy pod
> ,set" skąd on wie które jak podstawić limit?
Po stronie przeglądarki pracuje u ciebie kilka komponentów:
Grid, który organizuje pracę całej kontrolki
GridView, który odpowiada za sposób prezentacji danych
Store, który przechowuje dane
Loader, który odpowiada za proces pobierania danych
Proxy, które dopasowuje proces ładowania np. z JSON, GWT-RPC itp. do Loadera
Gdy przesuniesz suwakiem GridView wysyła zdarzenie akcji użytkownika w
interfejsie. Jego obserwatorem jest Grid, który stwierdza, że z tak
przesuniętym suwakiem chce dociągnąć nowe dane. Wywołuje na loaderze metodę
load przekazując jej limit i offset. Loader buduje obiekt LoadConfig
(zawierający limit, offset, sort) i wywołuje Proxy. Proxy uruchamia np.
usługę JSON. Gdy serwer odpowie, Proxy wywoła metodę zwrotną z Loadera.
Loader da znać do Store. Store poinformuje zdarzeniem, że dane się zmieniły,
GridView odświeży widok.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads