X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=src%2Ftim%2Fprune%2Fload%2FComponentHider.java;fp=src%2Ftim%2Fprune%2Fload%2FComponentHider.java;h=45eeccdc685626a54059900fbc9dac07ae9086fd;hp=0000000000000000000000000000000000000000;hb=ce6f2161b8596f7018d6a76bff79bc9e571f35fd;hpb=2d8cb72e84d5cc1089ce77baf1e34ea3ea2f8465 diff --git a/src/tim/prune/load/ComponentHider.java b/src/tim/prune/load/ComponentHider.java new file mode 100644 index 0000000..45eeccd --- /dev/null +++ b/src/tim/prune/load/ComponentHider.java @@ -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 _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); + } + } + } +}