+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<ComponentPair> _componentList = new ArrayList<ComponentPair>(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);
+ }
+ }
+ }
+}