Adrian P.

Adrian P. pamiętaj o tym, kto
chce latać musi
skoczyć

Temat: GWT - czy są jakieś polskie książki

Cześć,

chciałbym nauczyć się korzystać z GWT + eclipse jednak nigdy wcześniej nie korzystałem z tego i chciałbym poznać jakieś podstawy, znalazłem jedynie jedną książkę "GWT w praktyce", czy znacie może coś jeszcze?

Pozdrawiam
Adrian Pionka
Marek Sybilak

Marek Sybilak raportzaukcji.pl

Temat: GWT - czy są jakieś polskie książki

Do GWT nie ma za bardzo książek. Te co są, trochę się zdezaktualizowały. Najlepsza jest jednak chyba "GWT in Practice", mimo, że dotyczy, o ile pamiętam, wersji 1.5 i od tego czasu zaszło trochę zmian.
Niezła jest też "Pro Web 2.0 Application Development with GWT". Pozostałe książki przepisują dokumentację.
Nie zanosi się, żeby w najbliższym czasie coś się zmieniło, bo na Amazonie książka dotycząca GWT 2.0 pojawi się dopiero w sierpniu: http://www.amazon.co.uk/gp/search/ref=sr_nr_i_0?rh=i:s...

konto usunięte

Temat: GWT - czy są jakieś polskie książki

Cześć,

Ja skorzystałem z oficjalnego tutoriala http://code.google.com/intl/pl/webtoolkit/gettingstart.... Jest on dość przyjaźnie napisany, a jeśli czegoś w nim nie ma, to na pewno można znaleźć w oficjalnej grupie dyskusyjnej. Można też zadać pytanie tutaj, ja chętnie pomogę. Proponuję zacząć od zainstalowania plugina do Eclipse, wówczas nie będzie trzeba się "cackać" z konfigurowaniem różnych rzeczy, których nota bene nie ma za dużo. Ogólnie bym powiedział, że jest to bardzo przyjazna i intuicyjna technologia, trochę podobna do SWT.

Mój znajomy podrzucił mi wspomnianą książkę "GWT in Practice", ale nie polecam jej, bo jest mocno zdezaktualizowana i napisana jakoś topornie i rozwlekle. Ciężko za nią podążać, bo trzeba by ściągać starsze wersje GWT, pluginów do Eclipse. Tutorial od Google jest konkretny i moim zdaniem wystarczający. Poza tym GWT 2.0 jest o niebo lepsze od GWT 1.x. Dodam jeszcze, że w pewnym stopniu wersja 2.0 jest niekompatybilna wstecz, więc nauczenie się czegoś z 1.5 nie gwarantuje, że w najnowszej wersji będzie to działać.

pozdrawiam
Maciek
Adrian P.

Adrian P. pamiętaj o tym, kto
chce latać musi
skoczyć

Temat: GWT - czy są jakieś polskie książki

Nie będę zakładał nowego tematu także tutaj będę zadawał swoje pytania.
Otóż mam taki temat pracy inżynierskiej:
Internetowy System Rezerwacji w technologii GWT
Serwis internetowy wykonany w oparciu o technologię GWT (Google Web Toolkit).
Student powinien zaprojektować serwis WWW umożliwiający rezerwację samochodu, pokoju hotelowego, biletu do kina itp., oraz za pomocą pobranych z internetu narzędzi (Java, Eclipse, lub inne zintegrowane środowisko programistyczne, platforma GWT) wykonać działającą aplikację.

Obecnie pracuję nad planem pracy i nie wiem czy dobrze myślę...
Ja bym to widział tak:
1. wstęp teoretyczny:
- oprogramowanie (tomcat, eclipse, gwt)
- standardy internetowe (mvc, css, xml i itp)
- bezpieczeństwo aplikacji
2. zawartość gwt
- RPC
- użyte widgety
3. wnioski
4. bibliografia

to jest taki wstępny plan, jednak prosiłbym o jakąś pomoc :)
Nigdy nie używałem GWT i jest to dla mnie pewnego rodzaju wyzwanie. Zastanawiam się nad samą budową aplikacji: wiadomo jakieś menu podręczne, panel administratora, jak rezerwacja to coś w stylu "koszyka", jakaś baza danych (tutaj pojawia się pytanie jak zintegrować GWT z np MySQL'em?)
Czy mógłbym prosić o jakieś wskazówki, tutoriale jak coś takiego zacząć robić? :)
Piotr T.

Piotr T. programista GIS,
analityk GIS,
(www.cgis.pl)

Temat: GWT - czy są jakieś polskie książki

GWT praktycznie nie ma nic wspólnego z obsługa MySQL czy inną bazą danych. Do baz danych odwołujesz się tak jak ze standardowej Javy czyli JDBC, Hibernate czy inne JPI - wystarczy tylko wpisać w/w słowa kluczowe do przeglądarki i otrzymasz wszystkie niezbędne informacje. Przy okazji jak nie musisz to zostaw MySQL w spokoju i użyj PostgreSQL. W książce, o której sam wspominałeś na początku (i kodach źródłowych do niej) znajdziesz praktycznie większość informacji.

Możesz też przemyśleć użycie niestandardowych widgetow typu:
Ext GWT
SmartClient
QxWT (mało popularny ale bardzo obiecujący)

konto usunięte

Temat: GWT - czy są jakieś polskie książki

Adrian P.:
to jest taki wstępny plan, jednak prosiłbym o jakąś pomoc :)
Nigdy nie używałem GWT i jest to dla mnie pewnego rodzaju wyzwanie. Zastanawiam się nad samą budową aplikacji: wiadomo jakieś menu podręczne, panel administratora, jak rezerwacja to coś w stylu "koszyka", jakaś baza danych (tutaj pojawia się pytanie jak zintegrować GWT z np MySQL'em?)
Czy mógłbym prosić o jakieś wskazówki, tutoriale jak coś takiego zacząć robić? :)

Cześć

Na wstępie chce powiedzieć, że temat jaki dostałeś na inżynierkę bardzo mnie ucieszył, bo to znaczy, że nie wszystkie polskie uczelnie są tak oderwane od potrzeb rynku jak mi się wydawało.

Ad rem

Plan pracy wydaje się sensowny i ja bym go nie zmieniał.

GWT komunikuje się z serwerem przez servlet (rozszerza klasę RemoteServiceServlet). W dodatku jest to tak rozwiązane, że nie trzeba wiedzieć co to jest servlet, ale moim zdaniem warto zapoznać się z tematem (warto obejrzeć kilka przykładów).

W logice servletu możesz odwołać się do bazy przez JDBC (czysty SQL), Hibernate lub JPA. Jeśli znasz JDBC, to warto wejść na poziom wyżej czyli Hibernate. Wówczas to jakiej bazy użyjesz nie ma znaczenia. MySQL moim zdaniem ma najwięcej tutoriali, wygodnych narzędzi phpMyAdmin, można go zainstalować bez większej wiedzy np. w ramach serwera WAMP.

Sugerowałbym następujące kroki:
1. Instalcja Eclipse z pluginem GWT
2. Stwórz aplikację "New Web Application Project"
3. Zobacz jak w nowopowstałym projekcie wygląda komunikacja z serwerem.
4. Postaw bazę
5. Stworzyć prostą tabelą
6. Zmienić servlet tak, żeby się połączył z bazą i pobrał z niej dane.
7. Zobaczysz ile to mniej więcej czasu zabiera, wtedy zaprojektujesz sobie Twoją pracę inżynierską w taki sposób, żeby zakres nie był za duży... itd.

Tutoriali o tym jak łączyć się z bazą w javie jest mnóstwo, no i na forach na 100% znajdziesz pomoc w tym zakresie.

Na koniec jeszcze parę luźnych hasełek, które mogą Ci się przydać do pracy: Wzorzec Observer (powszechny w GWT), MVC.

Polecam też stronkę http://www.java2s.com/Code/Java/GWT/CatalogGWT.htm

W moich projektach łączę GWT i JBoss SEAM. Ta kombinacja może być zbyt skomplikowana jak dla początkującego, ale jakbyś poszedł tą drogą, to chętnie pomogę. Przy pomocy GWT+GXT stworzyłem serwis do tworzenia ankiet internetowych i formularzy online. Zaparaszam.
Jakub Grabowski

Jakub Grabowski Tworzenie aplikacji,
integracja SOA,
outsourcing,
szkolen...

Temat: GWT - czy są jakieś polskie książki

Maciej Rygielski:

GWT komunikuje się z serwerem przez servlet (rozszerza klasę RemoteServiceServlet). W dodatku jest to tak rozwiązane, że nie trzeba wiedzieć co to jest servlet, ale moim zdaniem warto zapoznać się z tematem (warto obejrzeć kilka przykładów).
A ja po spróbowaniu podejścia Dispatch + EventBus i wykorzystaniu wzorca MVP już nigdy nie wrócę do RemoteServiceServletów. Co prawda bariera wejścia w projekt pisany z wykorzystaniem gwt-presenter, gwt-dispatch i GIN jest duża, ale ostatecznie się to opłaca. Poczytać można na: http://borglin.net/gwt-project/?page_id=10. Dodatkowo fajne prezentacje są na Google I/O.

konto usunięte

Temat: GWT - czy są jakieś polskie książki

Jakub Grabowski:
A ja po spróbowaniu podejścia Dispatch + EventBus i wykorzystaniu wzorca MVP już nigdy nie wrócę do RemoteServiceServletów. Co prawda bariera wejścia w projekt pisany z wykorzystaniem gwt-presenter, gwt-dispatch i GIN jest duża, ale ostatecznie się to opłaca. Poczytać można na: http://borglin.net/gwt-project/?page_id=10. Dodatkowo fajne prezentacje są na Google I/O.

Muszę powiedzieć, że jestem wdzięczny Tobie za tego posta.

Dzisiaj wreszcie znalazłem trochę czasu i przejrzałem sobie prezentacje z Google I/O (naprawdę fajnie zrobione). Zapoznałem się z Guice, GINem, MVP + EventBus i muszę przyznać, że to rzeczywiście bardzo przydatne rzeczy. Na pewno użyję w następnym większym projekcie.Maciej Rygielski edytował(a) ten post dnia 07.05.10 o godzinie 22:05
Adrian P.

Adrian P. pamiętaj o tym, kto
chce latać musi
skoczyć

Temat: GWT - czy są jakieś polskie książki

Rozpoczynam swoją pracę z Eclipse, GWT, Ext JS.
I już stanąłem, tzn. pewnie dlatego że nie miałem styczności z Java...
Stworzyłem sobie takie coś:

Obrazek


Mniej więcej to jest takie coś:
Test.html:
<div id="container">
<div id="logo"><img src="images/logo.jpg"></div>
<div id="ads"></div>
<div id="menu"></div>
<div id="page"></div>
<div id="footer">Internetowy System Rezerwacji (c) 2010</div>
</div>


Test.java:
		final Button but1 = new Button("Home"); 
but1.addStyleName("menu");
RootPanel.get("menu").add(but1);


Stworzyłem sobie osobną klasę Kontakt.java w której jest kod do wyświetlania formularza kontaktowego.
Jak zrobić aby po kliknięciu w button but1 zawartość "page" zmieniła się na ten formularz z Kontakt.java?

Tutaj mogę pytać czy może grupa Java?
A może zamiast pytać to przydałaby mi się jakaś książka dzięki której mógłbym zdobyć podstawy javy tak bym mógł stworzyć ISR?
Adrian P.

Adrian P. pamiętaj o tym, kto
chce latać musi
skoczyć

Temat: GWT - czy są jakieś polskie książki

Nie chcę zakładać nowego wątku dlatego tutaj zadam pytanie.
Otóż interesuje mnie jak połączyć się z bazą danych (MySQL) w celu pobrania/edytuwania/usunięcia/dodania danych?

Wzorowałem się na tym:
http://prac.us.edu.pl/~dendzik/java/jdbc/jdbc-stdal.html

ale dostaję takie błędy:
15:35:40.569 [ERROR] [isr] Line 102: The method forName(String) is undefined for the type Class
15:35:40.597 [ERROR] [isr] Line 112: No source code is available for type java.sql.Connection; did you forget to inherit a required module?
15:35:40.597 [ERROR] [isr] Line 112: No source code is available for type java.sql.DriverManager; did you forget to inherit a required module?
15:35:40.597 [ERROR] [isr] Line 115: No source code is available for type java.sql.Statement; did you forget to inherit a required module?
15:35:40.597 [ERROR] [isr] Line 116: No source code is available for type java.sql.ResultSet; did you forget to inherit a required module?
15:35:40.597 [ERROR] [isr] Line 117: No source code is available for type java.sql.SQLException; did you forget to inherit a required module?

Co robię nie tak??
Maciej Nowicki

Maciej Nowicki Java Developer

Temat: GWT - czy są jakieś polskie książki

Adrian P.:
Nie chcę zakładać nowego wątku dlatego tutaj zadam pytanie.
Otóż interesuje mnie jak połączyć się z bazą danych (MySQL) w celu pobrania/edytuwania/usunięcia/dodania danych?

(...)
15:35:40.597 [ERROR] [isr] Line 117: No source code is available for type java.sql.SQLException; did you forget to inherit a required module?

Co robię nie tak??

Po komunikacie błędu podejrzewam, że próbujesz załadować sterownik w kodzie klienta, czyli tym który jest tłumaczony na javascript. Z oczywistych względów GWT nie potrafi tego skompilować.

Wszelka interakcja z bazą danych musi być wykonywana po stronie serwera. Dane z i do klienta muszą zaś trafiać za pośrednictwem serwisów.
Adrian P.

Adrian P. pamiętaj o tym, kto
chce latać musi
skoczyć

Temat: GWT - czy są jakieś polskie książki

Fakt robiłem to w Client a nie serwer, ale jak wywołać to w Client? Macie jakiś przykład użycia GWT + MySQL? Tak abym zobaczył jak to działa?
Adrian P.

Adrian P. pamiętaj o tym, kto
chce latać musi
skoczyć

Temat: GWT - czy są jakieś polskie książki

Mam kolejny błąd:
http://www-lehre.inf.uos.de/~btenberg/tenbergen.org/mi... - wzoruję się na tym...
Gdy tworzę MySQLConnection.java a w zasadzie kopiuję jego zawartość to mam pewne błędy:
- public class MySQLConnection extends RemoteServiceServlet implements DBConnection {

Multiple markers at this line
- DBConnection cannot be resolved to a type
- The serializable class MySQLConnection does not declare a static final serialVersionUID field of
type long
- User user;
Duplicate local variable user

- return user;
Type mismatch: cannot convert from User to int


Mam też błąd w LoginScreen z logowaniem - gdy klikam w OK aby zalogować się nic nie dzieje się...

Co robię nie tak?

Dziękuję i pozdrawiam
Maciej Nowicki

Maciej Nowicki Java Developer

Temat: GWT - czy są jakieś polskie książki

Twoje błędy akurat są łatwe do wyśledzenia:

- nie zaimportowałeś klasy DBConnection lub klasa ta nie jest na classpath
- gdzieś dwa razy zdefiniowałeś zmienną user
- zwracasz obiekt typu User, kiedy metoda powinna zwracać int

Niestety, jeżeli te komunikaty nie były dla Ciebie oczywiste, radziłbym jeszcze raz przećwiczyć i dobrze zrozumieć podstawy Javy (zwykłe aplikacje konsolowe, nie GWT) zanim pójdziesz dalej.

Wracając do sedna - Twój problem z GWT ma mało wspólnego. Po prostu musisz nawiązać połączenie gdzieś po stronie serwera i przekazywać dane z/do bazy do jakiegoś serwisu.

Zrób to w kilku etapach (olewając w tym momencie ładną architekturę trójwarstwową):

1. Stwórz jakiś serwis RPC (to powinieneś umieć), gdzie będziesz miał dwie metody - jedną pobierającą, drugą zapisującą jakieś dane.

2. Sprawdź, czy potrafisz przekazywać dane pomiędzy klientem a serwerem, na razie bez pobierania/zapisu do bazy danych. Niech serwer zawsze zwraca jakiś obiekt, którego wartość wypiszesz na ekranie w kodzie klienta, zaś kod klienta niech zwraca dane, które możesz sobie wypisać na konsolę po stronie serwera. Działa? Można iść dalej.

3. W metodach tego serwisu dodaj wczytywanie danych z bazy (np. tak jak w pierwszym przykładzie który podałeś - prac.us.edu.pl/~dendzik/java/jdbc/jdbc-stdal.html). Zwracaj dane wczytane z bazy zamiast tego obiektu który metoda zwracała wcześniej. Pamiętaj, aby jar ze sterownikiem mysql znalazł się na classpath.

4. Działa? Idź dalej. Napisz drugą metodę, zapisującą dane do bazy.

5. Działa? Osiągnąłeś cel, zapisujesz i odczytujesz obiekty z bazy. Teraz poczytaj sobie o wzorcu DAO i przebuduj aplikację, aby architektura była ładniejsza.
Adrian P.

Adrian P. pamiętaj o tym, kto
chce latać musi
skoczyć

Temat: GWT - czy są jakieś polskie książki

No właśnie staję na 2 pkt... nie mam pojęcia jak to zrobić... potrzebuję jakiegoś tutoriala...
Adrian P.

Adrian P. pamiętaj o tym, kto
chce latać musi
skoczyć

Temat: GWT - czy są jakieś polskie książki

Zrobiłem sobie logowanie wg. tego:
http://checkappointments.com/gwt/build-a-login-applica...

Mam jednak pytanie.
Otóż tam jest coś takiego jak LoginScreen.java i HomeScreen.java

W HomeScreen.java dodałem button:

Button logout = new Button("Logout");
vp.add(logout);
logout.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
Window.alert("Wylogowano");
// MyServiceImpl.logout() - to nie działa, nakazuje dodać do void logout() static...
}
});

po kliknięciu wyświetla komunikat "Wylogowano".
Chciałbym jednak wykonać akcję z MyServiceImpl - logout() - jak to zrobić?

Chciałbym też sprawdzać w LoginScreen czy jestem zalogowany czy nie
if (getService().isSessionAlive(null)) {
Window.alert("aa");
}

nie działa...

Proszę o pomoc...
Dziękuję i pozdrawiamAdrian P. edytował(a) ten post dnia 23.08.10 o godzinie 19:01
Adrian P.

Adrian P. pamiętaj o tym, kto
chce latać musi
skoczyć

Temat: GWT - czy są jakieś polskie książki

Witam,

moje zmagania z GWT idą do przodu ;) no ale znów pojawił się problem.
Otóż mam problem z logowaniem tzn. zrobiłem sobie formularz z loginem i hasłem po kliknięciu w button dane są przesyłane i porównywane z danymi w bazie, jeśli login i hasło zgadza się to dostaję komunikat że zostałem zalogowany jeśli nie to informacja że błędne dane. Mój problem polega na tym że po zalogowaniu i odświeżeniu strony jestem wylogowany i mam formularz logowania. Czy wiecie jak zrobić aby ładnie działał mi formularz?

Przeanalizowałem:
http://code.google.com/intl/pl/webtoolkit/doc/latest/t...

Z tego co zauważyłem odpowiedzialne za logowanie są (biblioteki SDK):
import com.google.appengine.api.users.User;
import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;

Tworzy to okno logowania do którego podaje się tylko adres e-mail. Po odświeżeniu strony w przeglądarce jeśli wcześniej zalogowaliśmy się to dalej jesteśmy zalogowani.
Czy można jakoś przerobić to okno logowania tak aby można było podać i login i hasło i po odświeżeniu strony będę zalogowany ;)

Czy mógłbym prosić o jakieś wskazówki?

Dziękuję i pozdrawiam
Adrian P.

Adrian P. pamiętaj o tym, kto
chce latać musi
skoczyć

Temat: GWT - czy są jakieś polskie książki

Mam pytanie.
Otóż obecnie w pliku html dałem coś takiego:

<div id="page">
<div id="top"></div>
<div id="center">
<div id="left"><div id="logowanie"></div></div>
<div id="right"></div>
</div>
<div id="footer"></div>
</div>

czy można to stworzyć jakoś za pomocą HTMLPanel lub SimplePanel tak aby potem działało RootPanel.get("logowanie").clear(); i potem RootPanel.get("logowanie").add(...);Adrian P. edytował(a) ten post dnia 11.09.10 o godzinie 11:38
Adrian P.

Adrian P. pamiętaj o tym, kto
chce latać musi
skoczyć

Temat: GWT - czy są jakieś polskie książki

Mam kolejny problem ;)
w kodzie potrzebuję skorzystać z kalendarza do Adi.gwt.xml dodaję:
<inherits name='java.util.Calendar'/>
ale mam jeszcze jeden problem:
12:43:20.030 [ERROR] [adi] Unable to find 'adi.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?

jak to naprawić?
Adrian P.

Adrian P. pamiętaj o tym, kto
chce latać musi
skoczyć

Temat: GWT - czy są jakieś polskie książki

Cześć,

mam znów problem ;/
http://www.17od.com/2008/07/24/how-to-create-a-remote-... - na tym wzorowałem się.

Properties -> Java Build Path -> Libraries -> Add External JARs... - dodałem gwtext.jar

W Adi.gwt.xml dodałem: <inherits name='com.gwtext.GwtExt'/>

W Adi.html dodałem:
<link rel="stylesheet" type="text/css" href="ext-3.2.1/resources/css/ext-all.css"/>
<link rel="stylesheet" type="text/css" href="ext-3.2.1/resources/css/xtheme-aero.css" />
<script type="text/javascript" src="ext-3.2.1/adapter/yui/yui-utilities.js"></script>
<script type="text/javascript" src="ext-3.2.1/adapter/yui/ext-yui-adapter.js"></script>
<script type="text/javascript" src="ext-3.2.1/ext-all.js"></script>

Do katalogu war importowałem ext-3.2.1

I jak odpalam to mam taki błąd:
12:23:58.276 [ERROR] [adi] Unable to load module entry point class com.adi.client.Adi (see associated exception for details)
com.google.gwt.core.client.JavaScriptException: (TypeError): $wnd.Ext.Component is not a constructor
fileName: http://127.0.0.1:8888
lineNumber: 435
stack: ()@http://127.0.0.1:8888:435
connect("http://127.0.0.1:8888/Adi.html?gwt.codesvr=127.0.0.1:9997#home","y3*SxT\"}vi%raN6$","127.0.0.1:9997","adi","2.0")@:0
((void 0),"adi","http://127.0.0.1:8888/adi/")@http://127.0.0.1:8888/adi/hosted.html?adi:264
z()@http://127.0.0.1:8888/adi/adi.nocache.js:2
(-3)@http://127.0.0.1:8888/adi/adi.nocache.js:8
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:195)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:120)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:507)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:284)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107)
at com.gwtext.client.widgets.Component.init(Component.java)
at com.gwtext.client.widgets.Component.<clinit>(Component.java:113)
at com.adi.client.Adi.onModuleLoad(Adi.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:369)
at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:185)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:380)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:222)
at java.lang.Thread.run(Unknown Source)

Następna dyskusja:

GWT 1.5 RC1




Wyślij zaproszenie do