3. Mintapélda: Még több interaktivitás.

A highlight managerek ismertetése:

A kód ebben a leckében sokkal rövidebb mint az előzőben, mivel ez csak azt célozza, hogy bemutassa hogyan működik a HighlightManager.

Tutorial3a.java
Tutorial3a.class

Valójában csak a következő új sorok érdekesek ebben a példában:

 

HighlightManager highlightManager = new HighlightManager();
theme.setHighlightManager(highlightManager);


No JVM switched on in this browser

Az applet mező:

<APPLET
CODE="Tutorial3a"
WIDTH="384"
HEIGHT="476"
archive="jars/geotools.jar,jars/support.jar,jars/collections.jar">
<PARAM NAME="shapefile" VALUE="shapes/epulet">
</APPLET>

De mi a HighlightManager?

Az oldalon bemutatott első példában a HighlightManager hozzáadása az applethez azzal a hatással jár, hogy az egér kurzor alatti elem piros színűvé változik. Bár a második példa azt mutatja be, hogyan kapcsolhat össze a HighlightManager kettő vagy több objektumot: ebben az esetben a térképhez egy feliratot kapcsoltunk az applet bal felső sarkában.

A végső cél cél, hogy a térképet más típusú objektumokhoz kapcsoljuk, mint például táblázatok vagy grafikonok, és lehetővé tegyük interakciót közöttük.

A pie chart demo, például egy térképet és egy kördiagrammot mutat be, melyeket egy közös HighlightManager köt össze.

No JVM switched on in this browser
Az applet mező ugyanaz mint korábban, de egy plusz paraméter került hozzá, az oszlop neve melynek tartalma megjelenik a felirat mezőben:

A kód:

Tutorial3b.java
Tutorial3b.class

Csak 3 számunkra érdekes plusz sor van ebben a példában:

String labelCol = getParameter("labelCol");
label = new GeoLabel(loader.readData(labelCol));
...
highlightManager.addHighlightChangedListener(label);

Először egy GeoLabel-t készítünk a shape .dbf fájl egy oszlopának felhasználásával.
Másodszor a cimkét hozzáadjuk a HighlightManager-t figyelők (listener) listájához, melyek értesítést kapnak ha a kiemelt elem megváltozik.

A GeoLabel implementálja aHighlightChangedListener interfészt, mely jelenleg nagyon egyszerű, csak egy metódust spacifikál:

void highlightChanged(HighlightChangedEvent hce);

Minden esetben amikor egy új elembe lép az egér kurzor a highlightChanged meghívásra kerül és a hce objektum használható az aktuális elem azonosítójának (ID) kitalálásához.

hce.getID();

Előző rész