AMapPartBase

Abstraktní třida pro všechny map party, tedy malé ovladací prvky nacházející se na mapě.  Řeší za nás logiku vytvoření a napozicování obalového divu, ale i jeho vložení do mapy.

Příklad ukazuje, že potomek třídy AMapPartBase musí implementovat alespoň metodu AMapPartBase.mapPartInit, a volitelně metodu AMapPartBase.getDefaultPosition.

O příkladu

Následuje příklad úplně jednoduchého map partu.  HTML je vytvořeno dynamicky, jedno jestli pomocí metody wrapper.innerHTML, nebo wrapper.appendChild.

HTML kód musí být generován dynamicky, protože jen tak je možné zajistit elegantní distribuci hotových komponent, jednoduchým vložením odkazu na komponentu.js do HTML head sekce stránky..

Komplexnější prvky

Pro rychlé vytvoření vlastního map partu existuje také třída AMapPartDraggable, potomek třídy AMapPartBase.  Jak název napovídá, tato komplexnější třída poskytne prázdný dragovatelný map part, do kterého stačí přidat formulářová políčka, tlačítka a vytvoření vlastního partu je tak bleskurychlé.

Příklad

var AZoomInOutPart = AMapPartBase.extend({

options: {
duration : 1000,
transition: Fx.Transitions.Quad.easeInOut
},

mapPartInit: function(map, wrapper){
this.map = map;
this.wrapper = wrapper;
this.createButtons();
},

createButtons: function() {
this.btns = {};
this.btns.zoomInOut = new Element("div")
.setStyles('width:96px; height:96px; background-image:url(../../design/examples/zoomInOut.png)')
.injectInside(this.wrapper)
.fixPng();
this.btns.zoomIn = new Element("div")
.setStyles('position: absolute; left: 20px; top: 26px; width:29px; height:28px; cursor:pointer;')
.addEvent('mouseover', this.doZoom.pass(-1, this))
.injectInside(this.btns.zoomInOut);
this.btns.zoomOut = new Element("div")
.setStyles('position: absolute; left: 62px; top: 30px; width:20px; height:20px; cursor:pointer;')
.addEvent('mouseover', this.doZoom.pass(1, this))
.injectInside(this.btns.zoomInOut);
},

doZoom: function(direction) {
var idx = this.map.getCurrentScaleIdx();
this.map.zoomTo(idx + direction, null, null, this.options);
},

// pčepsaná metoda, vrací novou výchozí pozici web partu
getDefaultPosition: function(){
return new APosition(ACorner.LEFT_BOTTOM, new ASize(7,0));
}
});
Summary
Abstraktní třida pro všechny map party, tedy malé ovladací prvky nacházející se na mapě.
Metoda, kterou volá AMap.addMapPart ihned po přidání map partu do mapy.
Abstraktní metoda, kterou musí potomek implementovat.
Vrací instanci mapy, do které byl part vložen.
Vrací DIV element, který slouží jako kontejner pro každý map part.
Vrací výchozí pozici APosition map partu.

Functions

internalInit

internalInit: function(ownerMap,
aPosition)

Metoda, kterou volá AMap.addMapPart ihned po přidání map partu do mapy.  Jejím úkolem je vytvoření, napozicování a vložení prázdného divu do mapy.  Vytvořený element následně vystupuje pod jménem wrapper v metodách mapPartInit.

mapPartInit

mapPartInit: function(map,
wrapper)

Abstraktní metoda, kterou musí potomek implementovat.  První předaný argument umožní prvku kontrolovat mapu, druhý předaný argument je prázdný DIV element, vytvořený, napozicovaný a vložený do mapy.

Arguments

mapinstance AMap do které byl map part vložen
wrapperprázdný DIV element, vytvořený, napozicovaný a vložený do mapy

getMap

getMap: function()

Vrací instanci mapy, do které byl part vložen.

Returns

mapinstance AMap do které byl map part vložen

getWrapper

getWrapper: function()

Vrací DIV element, který slouží jako kontejner pro každý map part.  Je pozicován, lze na něm odchytávat události.

Returns

DIV element, který slouží jako kontejner pro každý map part.

getDefaultPosition

getDefaultPosition: function()

Vrací výchozí pozici APosition map partu.  Metoda může být přepsána v potomku, chci-li aby jeho výchozí pozice byla jiná.

getDefaultPosition: function(){
return new APosition(ACorner.LEFT_TOP, new ASize(7,7));
}

Returns

Výchozí pozici APosition map partu.

internalInit: function(ownerMap,
aPosition)
Metoda, kterou volá AMap.addMapPart ihned po přidání map partu do mapy.
addMapPart: function(aMapPart,
aPosition)
Přidá do mapy potomka AMapPartBase.
mapPartInit: function(map,
wrapper)
Abstraktní metoda, kterou musí potomek implementovat.
getMap: function()
Vrací instanci mapy, do které byl part vložen.
getWrapper: function()
Vrací DIV element, který slouží jako kontejner pro každý map part.
getDefaultPosition: function()
Vrací výchozí pozici APosition map partu.
Definuje pozici.
Tato abstraktní třída je potomkem AMapPartBase a slouží jako předek vlastním map partům.
Abstraktní třida pro všechny map party, tedy malé ovladací prvky nacházející se na mapě.
Třída s jejíž pomocí lze udělat z elementu DIV mapu.