package tim.prune.load; import java.awt.Component; import java.util.ArrayList; import tim.prune.data.Field; /** * Class to hold a list of Components and fields, * and then enable or disable them (setEnabled) according * to whether those fields are available or not */ public class ComponentHider { /** * Inner class to hold each Component and its Field */ static class ComponentPair { public Component _component = null; public Field _field = null; /** Constructor */ public ComponentPair(Component inComponent, Field inField) { _component = inComponent; _field = inField; } } /** list itself */ private ArrayList _componentList = new ArrayList(20); /** * Add a new component to be controlled * @param inComponent component to enable/disable * @param inField associated field */ public void addComponent(Component inComponent, Field inField) { if (inComponent != null && inField != null) { _componentList.add(new ComponentPair(inComponent, inField)); } } /** * Enable or disable the components for the given field * @param inField field * @param inEnabled true for enabled, false for disabled */ public void enableComponents(Field inField, boolean inEnabled) { for (ComponentPair pair : _componentList) { if (pair != null && pair._field == inField) { pair._component.setEnabled(inEnabled); } } } }