Package org.geoforge.guillcogcecl.treenode

Source Code of org.geoforge.guillcogcecl.treenode.GfrNodCtrFixFolderTopPrjLblSegsWiseYesRun

/*
*  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.guillcogcecl.treenode;

import java.awt.event.ActionListener;
import java.util.Observable;
import java.util.Observer;
import java.util.logging.Logger;
import javax.swing.tree.DefaultTreeModel;
import org.geoforge.guillc.optionpane.GfrOptionPaneAbs;
import org.geoforge.guillc.tree.GfrTreAbs;
import org.geoforge.guillc.treenode.GfrNodAbs;
import org.geoforge.guillc.treenode.GfrNodCtrAbs;
import org.geoforge.guillc.treenode.GfrNodCtrMovAbs;
import org.geoforge.guillcogcecl.popupmenu.GfrPmuCtlCtrFolderTopPrjLblRunEclSegsWiseYes;
import org.geoforge.java.util.logging.filehandler.FileHandlerLogger;
import org.geoforge.mdldat.event.GfrEvtMdlIdDatRenamedTlo;
import org.geoforge.mdldatecl.GfrMdlDatIdObjTloEclSegWiseYes;
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.GfrWrpBasTopSynEclSegsWiseYes;

/**
*
* @author Amadeus.Sowerby
*
* email: Amadeus.Sowerby_AT_gmail.com ... please remove "_AT_" from the above
* string to get the right email address
*/
public class GfrNodCtrFixFolderTopPrjLblSegsWiseYesRun extends GfrNodCtrFixFolderTopPrjLblSegsWiseYesAbs
{
   // ----
   // begin: instantiate logger for this class

   final private static Logger _LOGGER_ = Logger.getLogger(GfrNodCtrFixFolderTopPrjLblSegsWiseYesRun.class.getName());

   static
   {
      GfrNodCtrFixFolderTopPrjLblSegsWiseYesRun._LOGGER_.addHandler(FileHandlerLogger.s_getInstance());
   }
   // end: instantiate logger for this class
   // ----
 

   public GfrNodCtrFixFolderTopPrjLblSegsWiseYesRun(
           ActionListener alrControllerSpcPrj,
           ActionListener alrControllerPrs,
           GfrTreAbs tre,
           ActionListener alrParentPanelMvc)
           throws Exception
   {
      super(alrControllerSpcPrj,
              alrControllerPrs,
              tre,
              alrParentPanelMvc);

      super._pop = new GfrPmuCtlCtrFolderTopPrjLblRunEclSegsWiseYes(
              alrControllerSpcPrj, tre);
     
      GfrMdlSttSngSelTlo.getInstance().addObserver((Observer) this);
      GfrMdlDatIdObjTloEclSegWiseYes.getInstance().addObserver((Observer) this); // !!!
   }
  
   @Override
   public void addAllObjects() throws Exception
   {
      String[] strsUniqueId =
              GfrWrpBasTopSynEclSegsWiseYes.getInstance().getSelectedIdsTlo();

      if (strsUniqueId == null || strsUniqueId.length < 1)
         return;

      for (int i = 0; i < strsUniqueId.length; i++)
      {
         GfrNodAbs nod = new GfrNodCtrMovFolderLblTloPrjImgsTloSegWiseYesRun(
                 super._alrControllerSpace,
                 super._alrControllerPerspective,
                 strsUniqueId[i],
                 super._tree,
                 super._alrParentPanelMvc_);

         super._addObjectVariableNode(nod);
      }
   }
  
   @Override
   public Object addObjectVariable(String strId) throws Exception
   {
      if (! GfrWrpBasTopSynEclSegsWiseYes.getInstance().containsTlo(strId))
         return null;
     
      if (! GfrWrpObjSttSngSelTlo.getInstance().isEnabled(strId))
         return null;
     
      GfrNodAbs nod = new GfrNodCtrMovFolderLblTloPrjImgsTloSegWiseYesRun(
              super._alrControllerSpace,
              super._alrControllerPerspective,
              strId,
              super._tree,
              super._alrParentPanelMvc_);


      super._addObjectVariableNode(nod);
     
      return nod;
   }
  
   @Override
   public void loadTransient() throws Exception
   {
      super.loadTransient();
   }
  
   @Override
   public void destroy()
   {
      GfrMdlSttSngSelTlo.getInstance().deleteObserver((Observer) this);
      GfrMdlDatIdObjTloEclSegWiseYes.getInstance().deleteObserver((Observer) this); // !!!
     
      super.destroy();
   }
  
   @Override
   public void releaseTransient() throws Exception
   {     
      super.releaseTransient();
   }
  
   @Override
   public void update(Observable obs, Object objEvt)
   {
      if (objEvt instanceof GfrEvtMdlIdDatRenamedTlo)
         return;
     
      try
     
         if (objEvt instanceof GfrEvtMdlSttSngSelTlo)
         {
            GfrEvtMdlSttSngSelTlo evt = (GfrEvtMdlSttSngSelTlo) objEvt;
            String strId = evt.getKey();
            _updateChildSelected_(strId, evt.getValue());

            return;
         }
      }
     
      catch(Exception exc)
      {
         exc.printStackTrace();
         String str = exc.getMessage();
         GfrNodCtrFixFolderTopPrjLblSegsWiseYesRun._LOGGER_.severe(str);
         GfrOptionPaneAbs.s_showDialogError(null, str);
         return;
      }

      super.update(obs, objEvt);
   }
  
   // ??? maybe private usage ???
   public void deleteChild(GfrNodCtrAbs nodChild) throws Exception
    {
        DefaultTreeModel dtm = (DefaultTreeModel) super._tree.getModel();
        dtm.removeNodeFromParent(nodChild);
       
        nodChild.destroy();
        nodChild = null;
    }
  
   private void _updateChildSelected_(String strId, boolean bln) throws Exception
    {
       if (bln)
       {
          addObjectVariable(strId);
          return;
       }
      
       _updateChildRemoved_(strId);  
    }
  
   private void _updateChildRemoved_(String strId) throws Exception
    {
        for (int i=0; i<super.getChildCount(); i++)
        {
            GfrNodCtrMovAbs nodCur = (GfrNodCtrMovAbs) super.getChildAt(i);
            String strIdCur = nodCur.getId();
           
            if (strIdCur.compareTo(strId) != 0)
                continue;
           
            this.deleteChild(nodCur);
            return;
        }
       
    }
}
TOP

Related Classes of org.geoforge.guillcogcecl.treenode.GfrNodCtrFixFolderTopPrjLblSegsWiseYesRun

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.