Package org.geoforge.guillc.jdesktop.swingx.jxtaskpanecontainer

Source Code of org.geoforge.guillc.jdesktop.swingx.jxtaskpanecontainer.GfrTpc

/*
* 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
*  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
package org.geoforge.guillc.jdesktop.swingx.jxtaskpanecontainer;

import java.awt.Component;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.logging.Logger;
import javax.swing.BorderFactory;
import org.geoforge.java.awt.color.GfrColor;
import org.geoforge.guillc.jdesktop.swingx.jxtaskpane.GfrTpe;
import org.geoforge.lang.handler.IGfrHandlerLifeCycleObject;
import org.jdesktop.swingx.JXTaskPaneContainer;
import org.geoforge.guillc.jdesktop.swingx.painter.GfrPainter;
import org.geoforge.guillc.jdesktop.swingx.plaf.basic.OurBasicTaskPaneContainerUI;
import org.geoforge.guillc.optionpane.GfrOptionPaneAbs;
import org.geoforge.java.util.logging.filehandler.FileHandlerLogger;
import org.jdesktop.swingx.JXCollapsiblePane;
import org.jdesktop.swingx.JXTaskPane;

/**
*
* @author robert
*/
public class GfrTpc extends JXTaskPaneContainer implements
        IGfrHandlerLifeCycleObject,
        PropertyChangeListener
{
   // ----
    // begin: instantiate logger for this class
    final private static Logger _LOGGER_ = Logger.getLogger(GfrTpc.class.getName());

    static
    {
        GfrTpc._LOGGER_.addHandler(FileHandlerLogger.s_getInstance());
    }

    // end: instantiate logger for this class
    // ----
  
  
   public GfrTpc()
   {
      super();
     
      super.setBorder(BorderFactory.createMatteBorder(
                5, 4, 0, 4,
                GfrColor.GRAY_4));
     
      //--usefull for corners
      super.setBackground(GfrColor.GRAY_4);
      super.setBackgroundPainter(GfrPainter.get(GfrColor.GRAY_4));
     
      super.setUI(new OurBasicTaskPaneContainerUI(5));
         
   }
  
   public Component add(String strWhat, Component cmp, int intIndex)
   {
      GfrTpe tpe = new GfrTpe((PropertyChangeListener) this, strWhat);
     
      if (! tpe.init())
      {
         String str = "! tpe.init()";
         GfrTpc._LOGGER_.severe(str);
         GfrOptionPaneAbs.s_showDialogError(null, str);
         System.exit(1);
      }
     
     
      tpe.add(cmp);
     
      super.add(tpe, intIndex);
     
      return tpe;
   }
  
   /*
    * quick fix
    */
   @Override
   public Component add(String strWhat, Component cmp)
   {
      GfrTpe tpe = new GfrTpe((PropertyChangeListener) this, strWhat);
     
      if (! tpe.init())
      {
         String str = "! tpe.init()";
         GfrTpc._LOGGER_.severe(str);
         GfrOptionPaneAbs.s_showDialogError(null, str);
         System.exit(1);
      }
     
     
      tpe.add(cmp);
     
      super.add(tpe);
     
      return tpe;
   }

   @Override
   public boolean init()
   {
      return true;
   }

   @Override
   public void destroy()
   {
   }
  
   private void _propertyChangeTaskpane_(PropertyChangeEvent evt)
   {
      if (evt.getPropertyName().compareTo(JXTaskPane.STR_KEY_PROP_COLLAPSED) != 0)
         return;
     
      Boolean booNewValue = (Boolean) evt.getNewValue();
      boolean blnNewValue = booNewValue.booleanValue();
     
      if (blnNewValue) // collapsed
         return;
     
      // troubleshootings, by-passing
      if (true) return;
     
      final JXTaskPane tpeSource = (JXTaskPane) evt.getSource();
     
      javax.swing.SwingUtilities.invokeLater(new Runnable()
      {
            @Override
            public void run()
            {
               _collapseAny_(tpeSource);
            }
      });
   }
  
   private void _propertyChangeCollapsiblepane_(PropertyChangeEvent evt)
   {
      throw new UnsupportedOperationException("Not yet implemented");
   }

   @Override
   public void propertyChange(PropertyChangeEvent evt)
   {
      if (true) // tempo
      {
         return;
      }
     
     
      if (evt.getSource() instanceof JXTaskPane)
         _propertyChangeTaskpane_(evt);
      else if (evt.getSource() instanceof JXCollapsiblePane)
         _propertyChangeCollapsiblepane_(evt);
      else
         throw new UnsupportedOperationException("Dev coding error");
        
     
     
     
      /*
      String strPropertyName = evt.getPropertyName();
     
      if (strPropertyName.compareTo(JXCollapsiblePane.ANIMATION_STATE_KEY) != 0)
         return;
     
      String strNewValue = (String) evt.getNewValue();
     
      if (strNewValue.compareTo(JXCollapsiblePane.STR_VALUE_NEW_PROP_EXPANDED) != 0)
         return;
     
      Object objSource = evt.getSource();
     
      if (! (objSource instanceof JXCollapsiblePane))
         return;
     
      final JXTaskPane tpeSource = (JXTaskPane) ((Component) objSource).getParent();
     
      javax.swing.SwingUtilities.invokeLater(new Runnable()
      {
            @Override
            public void run()
            {
               _collapseAny_(tpeSource);
            }
      });
     
     
      */
     
     
      /*for (int i=0; i<super.getComponentCount(); i++)
      {
         Component cmpCur = super.getComponent(i);
        
         if (! (cmpCur instanceof JXTaskPane))
            continue;
        
         if (cmpCur == (Component) tpeSource)
            continue;
        
         JXTaskPane tpeCur = (JXTaskPane) cmpCur;
        
         if (tpeCur.isCollapsed())
            return;
        
         _collapseChild_(tpeCur);
      }*/
   }
  
   private void _collapseAny_(JXTaskPane tpeExpanded)
   {
      for (int i=0; i<super.getComponentCount(); i++)
      {
         Component cmpCur = super.getComponent(i);
        
         if (! (cmpCur instanceof JXTaskPane))
            continue;
        
         if (cmpCur == (Component) tpeExpanded)
            continue;
        
         JXTaskPane tpeCur = (JXTaskPane) cmpCur;
        
         if (tpeCur.isCollapsed())
            return;
        
         System.out.println(">> collapsing: " + tpeCur.getTitle());
         tpeCur.setCollapsed(true);
      }
   }
  
   // tbrl: not always working !!!!!!!!!!!!!
   private synchronized void _collapseChild_(
           //final
           JXTaskPane tpe)
   {
      System.out.println(">> collapsing: " + tpe.getTitle());
     
      /*javax.swing.SwingUtilities.invokeLater(new Runnable()
      {
            @Override
            public void run()
            {*/
               tpe.setCollapsed(true);
            /*}
      });*/
   }
}
TOP

Related Classes of org.geoforge.guillc.jdesktop.swingx.jxtaskpanecontainer.GfrTpc

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.