„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., 08: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ő.