„Geomajas” változatai közötti eltérés
14. sor: | 14. sor: | ||
Ezután látogassunk el a http://localhost:8080/-ra, ahol megtekinthető az eredmény. | Ezután látogassunk el a http://localhost:8080/-ra, ahol megtekinthető az eredmény. | ||
+ | |||
+ | ==A projekt szerkezete== | ||
+ | A GWT-s projekt általában egy gyökér könyvtárbeli szerver és kliens oldali csomagból áll. A kliens oldali belépési pont az Application.java fájl, ami a következő helyen található: ..\geomajas-gwt2-quickstart-application-master\src\main\java\org\geomajas\quickstart\gwt2\client. | ||
+ | |||
+ | Ez megvalósítja a com.google.gwt.core.client.EntryPoint interfészt, így implementálni kell az onModuleLoad metódust. A kód egyszerű, Létrejön egy ApplicationLayout, majd hozzáadódik a megjelenítéshez. | ||
+ | |||
+ | <code> | ||
+ | |||
+ | import com.google.gwt.core.client.EntryPoint; | ||
+ | import com.google.gwt.user.client.ui.RootLayoutPanel; | ||
+ | |||
+ | /** | ||
+ | * Application entry point. | ||
+ | */ | ||
+ | public class Application implements EntryPoint { | ||
+ | |||
+ | @Override | ||
+ | public void onModuleLoad() { | ||
+ | ApplicationLayout layout = new ApplicationLayout(); | ||
+ | RootLayoutPanel.get().add(layout); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Az ApplicationLayout geomajas specifikus layout, a következő módon keletkezik: | ||
+ | |||
+ | <code> | ||
+ | public ApplicationLayout() { | ||
+ | initWidget(UIBINDER.createAndBindUi(this)); | ||
+ | ApplicationResource.INSTANCE.css().ensureInjected(); | ||
+ | |||
+ | mapPresenter = GeomajasImpl.getInstance().createMapPresenter(); | ||
+ | mapPresenter.getEventBus().addMapInitializationHandler(new MyMapInitializationHandler()); | ||
+ | |||
+ | GeomajasServerExtension.getInstance().initializeMap(mapPresenter, "app", "mapMain"); | ||
+ | |||
+ | mapLayoutPanel = new MapLayoutPanel(); | ||
+ | mapLayoutPanel.setPresenter(mapPresenter); | ||
+ | mapPanel.add(mapLayoutPanel); | ||
+ | |||
+ | appService = ApplicationService.getInstance(); | ||
+ | appService.setMapPresenter(mapPresenter); | ||
+ | appService.setMapLayoutPanel(mapLayoutPanel); | ||
+ | |||
+ | appService.getMapPresenter().getEventBus().addHandler(FeatureMouseOverHandler.TYPE, new MyFeatureMouseOverHandler()); | ||
+ | |||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Miután betöltődik a kontextusthoz szükséges GWT-s modulok, létrejön egy MapPresenter, majd hozzá egy default inicializáló. Ezután a szerverkódból inicializáljuk ezt. Ezt követi a Layout beállítása, hozzáadása a megjelenítéshez, valamint egy ApplicationService létrehozása, amely kiszolgálja a létrehozott Layert. Ezután hozzáadásra kerül egy egyedi eseménykezelő. |
A lap 2017. március 29., 09:49-kori változata
Áttekintés
A Geomajas (http://www.geomajas.org/) egy Java nyelven íródott Open Source Web Mapping Framework. Mind szerver, mind kliensoldali komponenseket kínál. Szerveroldalon Java, Javascript, míg kliensoldalon GWT és Javascript nyelven megvalósításokat tesz elérhetővé.
Előkészületek
A mintaprogramok fordításához és futtatásához Maven-t használ (https://maven.apache.org/). Ahhoz, hogy futtatni és fordítani tudjuk a github-os projekteket, a Maven telepítési könyvtárában a settings.xml-ben (HOME/.m2/settings.xml) fel kell venni néhány dependency-t, ez az xml a github-os gwt kliensnél megtalálható. (https://github.com/geomajas/geomajas-project-client-gwt2)
Kezdésként a GWT-s standalone applicationt indítsuk el. (https://github.com/geomajas/geomajas-gwt2-quickstart-application) Fordítsuk le a Mavennel a projektet, majd futtassuk.
mvn install
mvn jetty: run
Ezután látogassunk el a http://localhost:8080/-ra, ahol megtekinthető az eredmény.
A projekt szerkezete
A GWT-s projekt általában egy gyökér könyvtárbeli szerver és kliens oldali csomagból áll. A kliens oldali belépési pont az Application.java fájl, ami a következő helyen található: ..\geomajas-gwt2-quickstart-application-master\src\main\java\org\geomajas\quickstart\gwt2\client.
Ez megvalósítja a com.google.gwt.core.client.EntryPoint interfészt, így implementálni kell az onModuleLoad metódust. A kód egyszerű, Létrejön egy ApplicationLayout, majd hozzáadódik a megjelenítéshez.
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootLayoutPanel;
/**
* Application entry point.
*/
public class Application implements EntryPoint {
@Override
public void onModuleLoad() {
ApplicationLayout layout = new ApplicationLayout();
RootLayoutPanel.get().add(layout);
}
}
Az ApplicationLayout geomajas specifikus layout, a következő módon keletkezik:
public ApplicationLayout() {
initWidget(UIBINDER.createAndBindUi(this));
ApplicationResource.INSTANCE.css().ensureInjected();
mapPresenter = GeomajasImpl.getInstance().createMapPresenter();
mapPresenter.getEventBus().addMapInitializationHandler(new MyMapInitializationHandler());
GeomajasServerExtension.getInstance().initializeMap(mapPresenter, "app", "mapMain");
mapLayoutPanel = new MapLayoutPanel();
mapLayoutPanel.setPresenter(mapPresenter);
mapPanel.add(mapLayoutPanel);
appService = ApplicationService.getInstance();
appService.setMapPresenter(mapPresenter);
appService.setMapLayoutPanel(mapLayoutPanel);
appService.getMapPresenter().getEventBus().addHandler(FeatureMouseOverHandler.TYPE, new MyFeatureMouseOverHandler());
}
Miután betöltődik a kontextusthoz szükséges GWT-s modulok, létrejön egy MapPresenter, majd hozzá egy default inicializáló. Ezután a szerverkódból inicializáljuk ezt. Ezt követi a Layout beállítása, hozzáadása a megjelenítéshez, valamint egy ApplicationService létrehozása, amely kiszolgálja a létrehozott Layert. Ezután hozzáadásra kerül egy egyedi eseménykezelő.