InternalUtil.java
package swingtree;
import swingtree.components.JBox;
import javax.swing.*;
import java.awt.*;
final class InternalUtil
{
private InternalUtil() {}
static int _actualComponentCountFrom(Container container) {
if ( container instanceof JMenu ) {
return ((JMenu) container).getMenuComponentCount();
}
return container.getComponentCount();
}
static Component[] _actualComponentsFrom(Container container) {
if ( container instanceof JMenu ) {
return ((JMenu) container).getMenuComponents();
}
return container.getComponents();
}
static Component _actualGetComponentAt(int index, Container container) {
if ( container instanceof JMenu ) {
return ((JMenu) container).getMenuComponent(index);
}
return container.getComponent(index);
}
static void _traverseEnable(Component c, boolean isEnabled ) {
c.setEnabled( isEnabled );
if ( JPanel.class.isAssignableFrom( c.getClass() ) || JBox.class.isAssignableFrom( c.getClass() ) )
for ( Component c2 : ((JComponent)c).getComponents() )
_traverseEnable( c2, isEnabled );
/*
Note:
We use getClass() here, because we want to stop at subclasses of
JBox or JPanel because they are likely user defined components and not dumb
wrappers for other components.
*/
}
}