]> gitweb.fperrin.net Git - GpsPrune.git/blob - tim/prune/load/ComponentHider.java
Version 19.2, December 2018
[GpsPrune.git] / tim / prune / load / ComponentHider.java
1 package tim.prune.load;
2
3 import java.awt.Component;
4 import java.util.ArrayList;
5
6 import tim.prune.data.Field;
7
8 /**
9  * Class to hold a list of Components and fields,
10  * and then enable or disable them (setEnabled) according
11  * to whether those fields are available or not
12  */
13 public class ComponentHider
14 {
15         /**
16          * Inner class to hold each Component and its Field
17          */
18         static class ComponentPair
19         {
20                 public Component _component = null;
21                 public Field     _field     = null;
22                 /** Constructor */
23                 public ComponentPair(Component inComponent, Field inField)
24                 {
25                         _component = inComponent;
26                         _field     = inField;
27                 }
28         }
29
30         /** list itself */
31         private ArrayList<ComponentPair> _componentList = new ArrayList<ComponentPair>(20);
32
33         /**
34          * Add a new component to be controlled
35          * @param inComponent component to enable/disable
36          * @param inField associated field
37          */
38         public void addComponent(Component inComponent, Field inField)
39         {
40                 if (inComponent != null && inField != null) {
41                         _componentList.add(new ComponentPair(inComponent, inField));
42                 }
43         }
44
45         /**
46          * Enable or disable the components for the given field
47          * @param inField field
48          * @param inEnabled true for enabled, false for disabled
49          */
50         public void enableComponents(Field inField, boolean inEnabled)
51         {
52                 for (ComponentPair pair : _componentList)
53                 {
54                         if (pair != null && pair._field == inField) {
55                                 pair._component.setEnabled(inEnabled);
56                         }
57                 }
58         }
59 }