/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.geoforge.worldwindecl.layer;
import gov.nasa.worldwind.geom.Position;
import gov.nasa.worldwind.render.Renderable;
import java.beans.PropertyChangeListener;
import java.util.List;
import java.util.Observer;
import java.util.logging.Logger;
import org.geoforge.java.util.logging.filehandler.FileHandlerLogger;
import org.geoforge.lang.handler.IGfrHandlerLifeCycleObject;
import org.geoforge.mdldatecl.GfrMdlDatIdObjTloEclSpn;
import org.geoforge.worldwind.layer.GfrRlrObjTloRndMltPntCircleAbs;
import org.geoforge.worldwindecl.render.GfrRndPointPlacemarkCircleLloSpn;
import org.geoforge.wrpbasprssynecl.GfrWrpBasSynObjNameTloEclSpn;
/**
*
* @author robert
*/
public class GfrRlrObjTloRndMltPntCircleSpn extends GfrRlrObjTloRndMltPntCircleAbs
{
// ----
// begin: instantiate logger for this class
final private static Logger _LOGGER_ = Logger.getLogger(GfrRlrObjTloRndMltPntCircleSpn.class.getName());
static
{
GfrRlrObjTloRndMltPntCircleSpn._LOGGER_.addHandler(FileHandlerLogger.s_getInstance());
}
// end: instantiate logger for this class
// ----
public GfrRlrObjTloRndMltPntCircleSpn(PropertyChangeListener lstShouldRedraw, String strId) throws Exception
{
super(lstShouldRedraw, strId);
GfrMdlDatIdObjTloEclSpn.getInstance().addObserver((Observer) this);
}
@Override
public void destroy()
{
GfrMdlDatIdObjTloEclSpn.getInstance().deleteObserver((Observer) this);
super.destroy();
}
@Override
protected void _load() throws Exception
{
List<Position> lstPos = GfrWrpBasSynObjNameTloEclSpn.getInstance().getGeometry(super._strId);
_fillIn(lstPos);
}
@Override
protected void _fillIn(List<Position> lstPos) throws Exception
{
String strNameTlo = GfrWrpBasSynObjNameTloEclSpn.getInstance().getName(super._strId);
for (Position posCur: lstPos)
{
Renderable rndCur =
new GfrRndPointPlacemarkCircleLloSpn(super._lstShouldRedraw, super._strId,
strNameTlo, posCur);
if (! ((IGfrHandlerLifeCycleObject) rndCur).init())
{
String str = "! ((IShrObj) rndCur).init()";
GfrRlrObjTloRndMltPntCircleSpn._LOGGER_.severe(str);
throw new Exception(str);
}
super._lstObject.add(rndCur);
super.addRenderable(rndCur);
}
}
}