/*
* Copyright (C) 2011-2014 GeoForge Project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.geoforge.guillcogc.menuitem;
import java.awt.event.ActionListener;
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.mdldatogc.GfrMdlDatIdObjTloOgcWms;
import org.geoforge.mdldatogc.event.GfrEvtMdlIdDatAddedLloVarWmsLyrLeaf;
import org.geoforge.mdldatogc.event.GfrEvtMdlIdDatRemovedAllLloLyrsWms;
import org.geoforge.mdldatogc.event.GfrEvtMdlIdDatRemovedLloVarLyrWms;
import org.geoforge.mdldsp.event.state.singleton.GfrEvtMdlSttSngAbs;
import org.geoforge.mdl.event.GfrEvtMdlIdAbs;
import org.geoforge.wrpbasprssynogc.GfrWrpBasSynObjNameTloWms;
/**
*
* @author bantchao
*/
abstract public class GfrMimTrsAlrDisplayWmsYesWwdEarthFolderAbs extends GfrMimTrsAlrDisplayWmsYesWwdEarthAbs
{
// ----
// begin: instantiate logger for this class
final private static Logger _LOGGER_ = Logger.getLogger(GfrMimTrsAlrDisplayWmsYesWwdEarthFolderAbs.class.getName());
static
{
GfrMimTrsAlrDisplayWmsYesWwdEarthFolderAbs._LOGGER_.addHandler(FileHandlerLogger.s_getInstance());
}
// end: instantiate logger for this class
// ----
protected String _strIdTlo = null;
abstract protected void _update() throws Exception;
protected GfrMimTrsAlrDisplayWmsYesWwdEarthFolderAbs(
String strId,
String strIdTlo)
throws Exception
{
super(
"Show all", // suffix
strId);
this._strIdTlo = strIdTlo;
GfrMdlDatIdObjTloOgcWms.getInstance().addObserver((Observer) this);
}
@Override
public void destroy()
{
GfrMdlDatIdObjTloOgcWms.getInstance().deleteObserver((Observer) this);
super.destroy();
}
@Override
public void update(Observable obs, Object objEvt)
{
try
{
if (objEvt instanceof GfrEvtMdlSttSngAbs)
{
GfrEvtMdlSttSngAbs mdl = (GfrEvtMdlSttSngAbs) objEvt;
String strId = mdl.getKey();
if (! GfrWrpBasSynObjNameTloWms.getInstance().containsLayerLeafInLayerFolder(super.getId(), strId))
return;
_update();
return;
}
if (objEvt instanceof GfrEvtMdlIdDatAddedLloVarWmsLyrLeaf)
{
GfrEvtMdlIdDatAddedLloVarWmsLyrLeaf mdl = (GfrEvtMdlIdDatAddedLloVarWmsLyrLeaf) objEvt;
String strIdParent = mdl.getIdParent();
if (strIdParent.compareTo(this._strIdTlo) != 0)
return;
_update();
return;
}
if (objEvt instanceof GfrEvtMdlIdDatRemovedAllLloLyrsWms)
{
GfrEvtMdlIdAbs evt = (GfrEvtMdlIdAbs) objEvt;
String strId = evt.getId();
if (strId.compareTo(this._strIdTlo) != 0)
return;
_update();
return;
}
if (objEvt instanceof GfrEvtMdlIdDatRemovedLloVarLyrWms)
{
GfrEvtMdlIdDatRemovedLloVarLyrWms evt = (GfrEvtMdlIdDatRemovedLloVarLyrWms) objEvt;
String strIdParent = evt.getIdParent();
if (strIdParent.compareTo(this._strIdTlo) != 0)
return;
_update();
return;
}
//
}
catch(Exception exc)
{
exc.printStackTrace();
String str = exc.getMessage();
GfrMimTrsAlrDisplayWmsYesWwdEarthFolderAbs._LOGGER_.severe(str);
GfrOptionPaneAbs.s_showDialogError(null, str);
return;
}
}
}