InternalUtil.java

  1. package swingtree;

  2. import swingtree.components.JBox;

  3. import javax.swing.*;
  4. import java.awt.*;

  5. final class InternalUtil
  6. {
  7.     private InternalUtil() {}

  8.     static int _actualComponentCountFrom(Container container) {
  9.         if ( container instanceof JMenu ) {
  10.             return ((JMenu) container).getMenuComponentCount();
  11.         }
  12.         return container.getComponentCount();
  13.     }

  14.     static Component[] _actualComponentsFrom(Container container) {
  15.         if ( container instanceof JMenu ) {
  16.             return ((JMenu) container).getMenuComponents();
  17.         }
  18.         return container.getComponents();
  19.     }

  20.     static Component _actualGetComponentAt(int index, Container container) {
  21.         if ( container instanceof JMenu ) {
  22.             return ((JMenu) container).getMenuComponent(index);
  23.         }
  24.         return container.getComponent(index);
  25.     }

  26.     static void _traverseEnable(Component c, boolean isEnabled ) {
  27.         c.setEnabled( isEnabled );
  28.         if ( JPanel.class.isAssignableFrom( c.getClass() ) || JBox.class.isAssignableFrom( c.getClass() ) )
  29.             for ( Component c2 : ((JComponent)c).getComponents() )
  30.                 _traverseEnable( c2, isEnabled );
  31.         /*
  32.             Note:
  33.                 We use getClass() here, because we want to stop at subclasses of
  34.                 JBox or JPanel because they are likely user defined components and not dumb
  35.                 wrappers for other components.
  36.         */
  37.     }
  38. }