]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - src/tim/prune/load/ComponentHider.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / src / tim / prune / load / ComponentHider.java
diff --git a/src/tim/prune/load/ComponentHider.java b/src/tim/prune/load/ComponentHider.java
new file mode 100644 (file)
index 0000000..45eeccd
--- /dev/null
@@ -0,0 +1,59 @@
+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);
+                       }
+               }
+       }
+}