/* * $Id: DisablePanel.java,v 1.1 2010-11-23 15:33:34 illetsch Exp $ * © 3kraft GmbH & Co KG 2009 */ package com.dreikraft.swing; import java.awt.Component; import java.util.ArrayList; import java.util.List; import javax.swing.JComponent; import javax.swing.JPanel; /** * * @author jan_solo * @author $Author * @version $Revision: 1.1 $ */ public class DisablePanel extends JPanel { private List<JComponent> enabledComponents = new ArrayList<JComponent>(); @Override public void setEnabled(boolean enabled) { super.setEnabled(enabled); if (enabled) { for (JComponent component : enabledComponents) { component.setEnabled(enabled); } enabledComponents.clear(); } else { for (Component component : getComponents()) { if (JComponent.class.isAssignableFrom(component.getClass())) { final JComponent jComponent = (JComponent) component; if (jComponent.isEnabled()) { enabledComponents.add(jComponent); jComponent.setEnabled(enabled); } } } } } }