06 Warstwowy dostep do danych Nieznany

background image

copyright BNS MEDIA

www.devcastzone.com

Warstwowy dostęp do danych

Zaawansowane wykorzystanie biblioteki

EXT GWT w aplikacjach opartych o Google

Web Toolkit

background image

copyright BNS MEDIA

www.devcastzone.com

Treść modułu

1. Warstwy dostępowe
2. Format modelu
3. Proxy
4. DataReader
5. Loader
6. Store

Zaawansowane wykorzystanie biblioteki EXT GWT

2

background image

copyright BNS MEDIA

www.devcastzone.com

Warstwy dostępowe

• Kontrolki takie jak ComboBox, ListView, Grid, czy Tree wymagają dostępu

do danych.

• Dane te mogą:

o

pochodzid z różnych źródeł,

o

byd przechowywane w pamięci podręcznej

o

grupowane,

o

Dzielone na strony

• GXT udostępnia szereg klas pozwalające na transparentny i warstwowy

dostęp do danych

• Wyróżnia się następujące warstwy:

o

warstwa danych

o

Proxy z opcjonalną DataReader

o

Loader

o

Store

o

warstwa kontrolki (widgetu)

Zaawansowane wykorzystanie biblioteki EXT GWT

3

background image

copyright BNS MEDIA

www.devcastzone.com

Warstwy model dostępu do danych

Zaawansowane wykorzystanie biblioteki EXT GWT

4

Widgety typu Tree

Widgety typu List

Warstwa Store

Warstwa Proxy

ComboBox

ListView

Grid

TreePanel

TreeGrid

ListStore

GroupingStore

TreeStore

Warstwa Loader

BaseListLoader

BasePagingListLoader

BaseTreeLoader

BaseRemoteSortTreeLoader

MemoryProxy

PagingModelMemoryProxy

RpcProxy

HttpProxy

ScriptTagProxy

DataReader

Dane

ModelData

nie ModelData

background image

copyright BNS MEDIA

www.devcastzone.com

Format modelu danych

• Aby obiekty reprezentujące wiersze danych mogły

byd zaczytane przez kontrolki GXT, muszą
implementowad interfejs ModelData

• Dopuszczane są również i inne typy, ale wymaga to

zaimplementowania dodatkowego konwertera -
DataReader .

Zaawansowane wykorzystanie biblioteki EXT GWT

5

background image

copyright BNS MEDIA

www.devcastzone.com

Warstwa Proxy

• Warstwa Proxy definiuje interfejs dla obiektów, które

mogą pobrad dane

• Ujednolica metody oraz źródła pobieranych danych
• Rodzina klasy: DataProxy

(

com.extjs.gxt.ui.client.data.DataProxy

)

• Najpopularniejsze implementacje:

o

MemoryProxy
(

com.extjs.gxt.ui.client.data.MemoryProxy

) –

pozwala na przekazanie załadowanych danych do
wyświetlenia przez konstruktor,

Zaawansowane wykorzystanie biblioteki EXT GWT

6

background image

copyright BNS MEDIA

www.devcastzone.com

Warstwa Proxy

PagingModelMemoryProxy (

com.extjs.gxt.ui.

client.data.PagingModelMemoryProxy

) – pozwala na

wczytanie

załadowanych danych z uwzględnieniem paginacji,

RpcProxy (

com.extjs.gxt.ui.client.data.RpcProxy

) –

implementacja pozwalająca na wczytanie danych poprzez
funkcję zwrotną również i GWT-RPC,

HttpProxy (

com.extjs.gxt.ui.client.data.HttpProxy

)

– implementacja pozwalająca na pobieranie danych
wykorzystując RequestBuildera,

ScriptTagProxy (

com.extjs.gxt.ui.client.data.

ScriptTagProxy

) – proxy pozwalające na odczyt danych

znajdujących się w innej domenie (cross-site requests),

Zaawansowane wykorzystanie biblioteki EXT GWT

7

background image

copyright BNS MEDIA

www.devcastzone.com

Warstwa Proxy

DataReader pozwala na konwersję surowych danych

do klas modelu ModelData i na odwrót

• Stosuje się jedynie w przypadku gdy do części

klienckiej zostały zaczytane obiekty niebędące
instancją klasy ModelData

• Rodzina klasy: DataReader

(

com.extjs.gxt.ui.client.data.DataReader

)

Zaawansowane wykorzystanie biblioteki EXT GWT

8

background image

copyright BNS MEDIA

www.devcastzone.com

DataReader - implementacje

• Najpopularniejsze implementacje:

o

BeanModelReader (

com.extjs.gxt.ui.client.data.BeanModelReader

)

konwertuje automatycznie obiekty

• oznaczone adnotacją BeanModelMarker
• implementujących BeanModelTag

o

JsonLoadResultReader

(

com.extjs.gxt.ui.client.data.JsonLoadResultReader

)

o

JsonPagingLoadResultReader

(

com.extjs.gxt.ui.client.data.JsonPagingLoadResultReader

)

o

XmlLoadResultReader

(

com.extjs.gxt.ui.client.data.XmlLoadResultReader

)

o

XmlPagingLoadResultReader

(

com.extjs.gxt.ui.client.data.XmlPagingLoadResultReader

)

o

TreeBeanModelReader

(

com.extjs.gxt.ui.client.data.TreeBeanModelReader

)

o

TreeModelReader (

com.extjs.gxt.ui.client.data.TreeModelReader

)

Zaawansowane wykorzystanie biblioteki EXT GWT

9

background image

copyright BNS MEDIA

www.devcastzone.com

Loader

Loader pozwala na wczytanie określnego zakresu

danych uwzględniając:

o

Dzielenie na strony - paginację

o

Sortowanie

o

Filtry

• Rodzina klasy: Loader

(

com.extjs.gxt.ui.client.data.Loader

)

Zaawansowane wykorzystanie biblioteki EXT GWT

10

background image

copyright BNS MEDIA

www.devcastzone.com

Loader

• Najpopularniejsze implementacje:

o

BaseListLoader (

com.extjs.gxt.ui.client.data.BaseListLoader

) –

domyślna implementacja pozwalająca na ładowanie listy
danych w całości,

o

BasePagingLoader (

com.extjs.gxt.ui.client.data.BasePagingLoader

) –

pozwala na wczytywanie zakresu danych od określonej
pozycji o określonej ilości elementów

o

BaseTreeLoader (

com.extjs.gxt.ui.client.data.BaseTreeLoader

)

o

BaseRemoteSortTreeLoader
(

com.extjs.gxt.ui.client.data.BaseRemoteSortTreeLoader

)

Zaawansowane wykorzystanie biblioteki EXT GWT

11

background image

copyright BNS MEDIA

www.devcastzone.com

Loader – dzielenie na strony

• Loader odpowiedzialny jest za dzielenie na strony -

paginację

• Paginacja pozwala na wczytanie określonego zakresu

danych:

o

Od jakiego miejsca - offset

o

Ile wierszy – limit

• Kontrolki automatycznie obsługują paginację o ile

zwrócony jest odpowiedni wynik - LoadResult

• Aby zwracane dane zostały wyświetlone bezpośrednio w

widgecie, proxy do którego się odnosi loader powinno

przyjmowad jako parametr LoadConfig a zwracad

ListLoadResult. Jeżeli tak się nie dzieje musi zostad

dołączony odpowiedni DataReader,

Zaawansowane wykorzystanie biblioteki EXT GWT

12

background image

copyright BNS MEDIA

www.devcastzone.com

Loader

LoadConfig (

com.extjs.gxt.ui.client.data.

LoadConfig

) jest to interfejs modelu danych, który

służy do przekazywania parametrów przez kontrolki

Zaawansowane wykorzystanie biblioteki EXT GWT

13

• String sortField
• String sortDir

BaseListLoadConfig

• Modeldata parent

BaseRemoteSortTreeLoadConfig

• String groupBy

BasedGroupingLoadConfig

• int limit
• int offset

BasePagingLoadConfig

• List<filterConfig>

filters

BaseFilterPagingLoadConfig

• Określa parametry,

które definiują w jaki
sposób dane mają zostad
pobrane przez system
dostępu do danych (DAO)

background image

copyright BNS MEDIA

www.devcastzone.com

Loader - paginacja

ListLoadResult (

com.extjs.gxt.ui.client.

data.ListLoadResult

) stanowi interfejs modelu

danych, który jest wczytywany przez kontrolki.

Zaawansowane wykorzystanie biblioteki EXT GWT

14

• Zawiera:

o

listę obiektów do
wyświetlenia

o

informacje o zastosowanych
ograniczeniach na zwróconym
zbiorze danych

•List<ModelData> listData

ListLoadResult

•int offset
•int totalLength

BasePagingLoadResult

background image

copyright BNS MEDIA

www.devcastzone.com

Loader - paginacja

Zaawansowane wykorzystanie biblioteki EXT GWT

15

WIDGET

Serwer

Baza

Danych

LoadConfig

LoadResult

offset, limit, sortField,

sortDir, groupBy,

fieldFilters

List<ModelData>

offset, limit

Parametry

do

załadowania

Parametry

zastosowane

do zestawu

zwracanych

danych

background image

copyright BNS MEDIA

www.devcastzone.com

Warstwa Store

Store pozwala na przechowywanie odczytanych

obiektów w pamięci podręcznej (cache) klienta

• Dane te mogą byd przechowywane w sposób:

o

płaski (dla ComboBox, List i Grid)

o

zgrupowany (Grid, Tree).

• Rodzina klas Store (

com.extjs.gxt.ui.client.

store.Store

)

Zaawansowane wykorzystanie biblioteki EXT GWT

16

background image

copyright BNS MEDIA

www.devcastzone.com

Store

• Najpopularniejsze implementacje:

o

ListStore (

com.extjs.gxt.ui.client.store.

ListStore

) – podstawowa implementacja pamięci

podręcznej

o

GroupingStore (

com.extjs.gxt.ui.client.store.

GroupingStore

) – klasa pozwalająca pogrupowad wybrane

obiekty po jednym wybranym polu klasy modelu

o

TreeStore (

com.extjs.gxt.ui.client.store.

TreeStore

) – pamięd podręczna dla hierarchicznych

danych. Relacja rodzic-dziecko obsługiwana jest wewnątrz
implementacji Store

Zaawansowane wykorzystanie biblioteki EXT GWT

17

background image

copyright BNS MEDIA

www.devcastzone.com

Warstwowy dostęp do danych - przykład

Zaawansowane wykorzystanie biblioteki EXT GWT

18

final

FeedModelRpcAsync service = GWT.create(FeedModelRpc.

class

);

RpcProxy<BaseListLoadResult<FeedModel>> proxy =

new

RpcProxy<BaseListLoadResult<FeedModel>>() {

@Override

protected

void

load(Object loadConfig,

final

AsyncCallback<BaseListLoadResult<FeedModel>> callback) {
service.getAllFeeds(

new

AsyncCallback<ArrayList<FeedModel>>() {


@Override

public

void

onFailure(Throwable caught) {

callback.onFailure(caught);
}

@Override

public

void

onSuccess(ArrayList<FeedModel> result) {

callback.onSuccess(

new

BaseListLoadResult<FeedModel>(result));

}
});
}
};
BaseListLoader<BaseListLoadResult<FeedModel>> loader =

new

BaseListLoader<BaseListLoadResult<FeedModel>>(proxy);
ListStore<FeedModel> store =

new

ListStore<FeedModel>(loader);


Wyszukiwarka

Podobne podstrony:
@PSI W14a Platforma NET Kolekcje dostęp do danych
Dane medyczne a dostęp do danych osobowych, Studia, Ochrona własności intelektualnej
projektowanie dostepu do bazy d Nieznany
3 Warstwa dostepu do sieci Ethernet
BEZPIECZEŃSTWO DOSTĘPU DO DANYCH MS SQL SERVER POSTGRESQL, 9 semestr, SQL, RÓŻNE
12 Zabezpieczanie dostepu do da Nieznany (2)
14 Zdalny dostep do danych
metody dostepu do danych
12 Zabezpieczanie dostępu do danych
dostep do informacji publicznej Nieznany (2)
dostep do informacji publicznej Nieznany
problematyka masoowego dostepu do baz danych mity i fakty mqsixoztwl26gv7afh6a6hsnoalkzz6a5q7na7a M
03 05 warunki i zakres dostępu do wojewódzkiej nazy danych
nieformalne bariery dostepu do Nieznany
06-05 PAM- Dostęp do żywego światła w świetlnych miastach w wyższych wymiarach, CAŁE MNÓSTWO TEKSTU
dostep do informacji publicznej Nieznany (2)
dostep do informacji publicznej Nieznany
problematyka masoowego dostepu do baz danych mity i fakty mqsixoztwl26gv7afh6a6hsnoalkzz6a5q7na7a M

więcej podobnych podstron