„Geomajas” változatai közötti eltérés

Innen: GIS Wiki
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ő.