diff --git a/Zutil.jar b/Zutil.jar index e60539b..4525eff 100755 Binary files a/Zutil.jar and b/Zutil.jar differ diff --git a/src/zutil/ui/Configurator.java b/src/zutil/ui/Configurator.java index 3f08642..8a002e2 100755 --- a/src/zutil/ui/Configurator.java +++ b/src/zutil/ui/Configurator.java @@ -106,6 +106,9 @@ public class Configurator { return list; } + /** + * Uses a Map to assign all parameters of the Object + */ public void setConfiguration(Map parameters){ for(ConfigurationParam param : this.params){ if(parameters.containsKey(param.getName())) @@ -113,6 +116,12 @@ public class Configurator { } } + /** + * All configuration parameters that was set + * for each parameter will be applied to the object. + * + * If the target class implements the ConfigurationActionListener interface + */ public void applyConfiguration(){ StringBuilder strParams = new StringBuilder(); for(ConfigurationParam param : params){ @@ -129,12 +138,20 @@ public class Configurator { } catch (IllegalAccessException e) { logger.log(Level.WARNING, null, e); } + if(obj instanceof ConfigurationActionListener) + ((ConfigurationActionListener) obj).postConfigurationAction(); } if(logger.isLoggable(Level.FINE)) logger.fine("Configured object: " + obj.getClass().getSimpleName() + "("+ strParams +")"); } + + public interface ConfigurationActionListener{ + void postConfigurationAction(); + } + + public static class ConfigurationParam implements Comparable{ protected Field field; protected String name;