/*
* 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 3 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
* and openSpaceAny the template in the editor.
*/
package org.geoforge.guillc.tree;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import java.util.logging.Logger;
import javax.swing.event.TreeExpansionListener;
import javax.swing.event.TreeModelListener;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultTreeModel;
import org.geoforge.guillc.panel.GfrPnlStatusBarSec;
import org.geoforge.guillc.treenode.GfrNodCtrFixFolderRootAbs;
import org.geoforge.guillc.treenode.GfrNodCtrFixFolderRootChkSecTopTlo;
import org.geoforge.guillc.treenode.GfrNodCtrFixFolderSetFixPrjAbs;
import org.geoforge.java.util.logging.filehandler.FileHandlerLogger;
/**
*
* @author robert
*/
abstract public class GfrTreCtrTopSpcTogChkPrjSecMloFixAbs extends GfrTreCtrTopSpcTogChkPrjSecAbs
{
// ----
// begin: instantiate logger for this class
final private static Logger _LOGGER_ = Logger.getLogger(GfrTreCtrTopSpcTogChkPrjSecMloFixAbs.class.getName());
static
{
GfrTreCtrTopSpcTogChkPrjSecMloFixAbs._LOGGER_.addHandler(FileHandlerLogger.s_getInstance());
}
// end: instantiate logger for this class
// ----
transient protected GfrNodCtrFixFolderSetFixPrjAbs _nodTopHiddenTlo = null;
protected String _strIdTlo = null;
protected GfrTreCtrTopSpcTogChkPrjSecMloFixAbs(
MouseListener mlrParentMvc,
TreeSelectionListener lstTreeSelectionToolbar,
TreeExpansionListener lstTreeExpansionToolbar,
TreeModelListener lstTreeModelToolbar,
GfrPnlStatusBarSec pnlStatusBar,
String strIdViewer,
String strIdTlo)
{
super(mlrParentMvc,
(ActionListener) null, // no need to catch events of type checkBoxMenuItems - alrParentMvc,
lstTreeSelectionToolbar,
lstTreeExpansionToolbar,
lstTreeModelToolbar,
new GfrNodCtrFixFolderRootChkSecTopTlo(),
pnlStatusBar,
strIdViewer);
this._strIdTlo = strIdTlo;
}
@Override
public void releaseTransient() throws Exception
{
super.releaseTransient();
if (this._nodTopHiddenTlo != null)
{
Object objRoot = super.getModel().getRoot();
GfrNodCtrFixFolderRootAbs nodRoot = (GfrNodCtrFixFolderRootAbs) objRoot;
nodRoot.remove(this._nodTopHiddenTlo);
// TODO: iterate through children, remove
this._nodTopHiddenTlo.releaseTransient();
this._nodTopHiddenTlo.destroy();
this._nodTopHiddenTlo = null;
}
}
@Override
public void openSpaceApplicationProject(ActionListener alrControllerSpcPrj, ActionListener alrControllerPrs) throws Exception
{
super.openSpaceApplicationProject(alrControllerSpcPrj, alrControllerPrs);
Object objRoot = super.getModel().getRoot();
GfrNodCtrFixFolderRootAbs nodRoot = (GfrNodCtrFixFolderRootAbs) objRoot;
nodRoot.setTree(this);
DefaultTreeModel dtm = (DefaultTreeModel) super.getModel();
dtm.insertNodeInto(this._nodTopHiddenTlo, nodRoot, 0);
dtm.nodeStructureChanged(nodRoot);
if (! this._nodTopHiddenTlo.init())
{
String strError = "! this._nodTopHiddenTlo.init()";
GfrTreCtrTopSpcTogChkPrjSecMloFixAbs._LOGGER_.severe(strError);
throw new Exception(strError);
}
}
@Override
public void closeSpace() throws Exception
{
super.closeSpace();
if (this._nodTopHiddenTlo != null)
{
// TODO: iterate through children, remove
this._nodTopHiddenTlo.destroy();
this._nodTopHiddenTlo = null;
}
}
@Override
public void destroy()
{
super.destroy();
// TODO: remove children from root
if (this._nodTopHiddenTlo != null)
{
// TODO: iterate through children, remove
this._nodTopHiddenTlo.destroy();
this._nodTopHiddenTlo = null;
}
}
@Override
public void folderAllCollapse()
{
if (! super._blnIsOpen)
return;
super.folderAllCollapse(this._nodTopHiddenTlo);
}
@Override
public void folderAllExpand()
{
if (! super._blnIsOpen)
return;
super.folderAllExpand(this._nodTopHiddenTlo);
}
@Override
public boolean isAllowedFolderAllCollapse() throws Exception
{
if (! super._blnIsOpen)
return false;
if (super.isAllowedFolderAllCollapse(this._nodTopHiddenTlo))
return true;
return false;
}
@Override
public boolean isAllowedFolderAllExpand() throws Exception
{
if (! super._blnIsOpen)
return false;
if (super.isAllowedFolderAllExpand(this._nodTopHiddenTlo))
return true;
return false;
}
@Override
public void childrenAllCheck()
{
if (! super._blnIsOpen)
return;
this._nodTopHiddenTlo.childrenAllCheck();
}
@Override
public void childrenAllUncheck()
{
if (! super._blnIsOpen)
return;
this._nodTopHiddenTlo.childrenAllUncheck();
}
}