/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.geoforge.guillcogcecl.menuitem;
import gov.nasa.worldwind.geom.Position;
import java.awt.event.ActionEvent;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
import java.util.logging.Logger;
import org.geoforge.guillc.optionpane.GfrOptionPaneAbs;
import org.geoforge.java.util.logging.filehandler.FileHandlerLogger;
import org.geoforge.mdldsp.action.control.GfrMdlDspActCtrMainSel;
import org.geoforge.mdldsp.event.state.singleton.selecttlo.GfrEvtMdlSttSngSelTlo;
import org.geoforge.mdldsp.state.singleton.selecttlo.GfrMdlSttSngSelTlo;
import org.geoforge.wrpbasprsdsp.state.singleton.selecttlo.GfrWrpObjSttSngSelTlo;
import org.geoforge.wrpbasprssynecl.GfrWrpBasSynObjNameTloEclSpn;
/**
*
* @author robert
*/
public class GfrMimTrsAlrIdZoomToObjectTloAlwaysNoLstPosSpnSel extends GfrMimTrsAlrIdZoomToObjectTloAlwaysNoLstPosSpnAbs
{
// ----
// begin: instantiate logger for this class
final private static Logger _LOGGER_ = Logger.getLogger(GfrMimTrsAlrIdZoomToObjectTloAlwaysNoLstPosSpnSel.class.getName());
static
{
GfrMimTrsAlrIdZoomToObjectTloAlwaysNoLstPosSpnSel._LOGGER_.addHandler(FileHandlerLogger.s_getInstance());
}
// end: instantiate logger for this class
// ----
public GfrMimTrsAlrIdZoomToObjectTloAlwaysNoLstPosSpnSel(String strId)
throws Exception
{
super(strId);
GfrMdlSttSngSelTlo.getInstance().addObserver((Observer) this);
}
@Override
public void update(Observable obs, Object objEvt)
{
if (!(obs instanceof GfrMdlSttSngSelTlo))
{
super.update(obs, objEvt);
return;
}
try
{
// ----
// GfrMdlDspTopS2ds
if (objEvt instanceof GfrEvtMdlSttSngSelTlo)
{
GfrEvtMdlSttSngSelTlo objId = (GfrEvtMdlSttSngSelTlo) objEvt;
String strIdSource = objId.getKey();
if (strIdSource.compareTo(super.getId()) != 0)
return;
List<Position> lstPos = GfrWrpBasSynObjNameTloEclSpn.getInstance().getGeometry(super.getId());
if (lstPos==null || lstPos.isEmpty())
{
super.setEnabled(false);
return;
}
boolean bln = objId.getValue();
if (bln && super.isEnabled())
return;
if (!bln && !super.isEnabled())
return;
super.setEnabled(bln);
return;
}
}
catch (Exception exc)
{
exc.printStackTrace();
String str = exc.getMessage();
GfrMimTrsAlrIdZoomToObjectTloAlwaysNoLstPosSpnSel._LOGGER_.severe(str);
GfrOptionPaneAbs.s_showDialogError(null, str);
return;
}
}
@Override
public void destroy()
{
GfrMdlSttSngSelTlo.getInstance().deleteObserver((Observer) this);
super.destroy();
}
@Override
protected void _load() throws Exception
{
super._load();
if (! super.isEnabled())
return;
boolean bln = GfrWrpObjSttSngSelTlo.getInstance().isEnabled(super.getId());
if (! bln)
super.setEnabled(false);
}
/*
@Override
protected void _updateAddedObject() throws Exception
{
super._updateAddedObject();
if (! GfrWrpObjSttSngSelTlo.getInstance().isEnabled(super.getId()))
super.setEnabled(false);
}
@Override
protected void _updateRemovedObject() throws Exception
{
super._updateRemovedObject();
if (! super.isEnabled())
return;
if (! GfrWrpObjSttSngSelTlo.getInstance().isEnabled(super.getId()))
super.setEnabled(false);
}*/
@Override
public void actionPerformed(ActionEvent e)
{
GfrMdlDspActCtrMainSel.s_getInstance().zoomToObject(super.getId());
}
}