From d7637da980c9b42dfce53a592403d72725427d5e Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Wed, 30 Dec 2015 23:23:30 +0100 Subject: [PATCH] Added ConfigurationActionListener to Configurator --- Zutil.jar | Bin 1189260 -> 1189713 bytes src/zutil/ui/Configurator.java | 17 +++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/Zutil.jar b/Zutil.jar index e60539b46d9d177973e434cd8e2ef567244db96f..4525eff869a2f49ae7ebe9e5e2c28bb8e52810c8 100755 GIT binary patch delta 7033 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 AJpcdz delta 6702 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 Y2?!TLokL`jXOh2(BqOUS0|?dqKamxmng9R* diff --git a/src/zutil/ui/Configurator.java b/src/zutil/ui/Configurator.java index 3f08642c..8a002e2c 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;