Author: tchemit Date: 2008-07-25 21:21:46 +0000 (Fri, 25 Jul 2008) New Revision: 798 Modified: trunk/lutinjaxx/jaxx-swing-action/src/main/java/org/codelutin/jaxx/action/factory/AbstractActionFactory.java trunk/lutinjaxx/jaxx-swing-action/src/main/java/org/codelutin/jaxx/action/factory/ActionFactory.java Log: ActionInitializer must be search annotation of instance of Action, and not on his class since Action could not be holder of configuration (with delegation)... add javadoc. Modified: trunk/lutinjaxx/jaxx-swing-action/src/main/java/org/codelutin/jaxx/action/factory/AbstractActionFactory.java =================================================================== --- trunk/lutinjaxx/jaxx-swing-action/src/main/java/org/codelutin/jaxx/action/factory/AbstractActionFactory.java 2008-07-25 21:20:58 UTC (rev 797) +++ trunk/lutinjaxx/jaxx-swing-action/src/main/java/org/codelutin/jaxx/action/factory/AbstractActionFactory.java 2008-07-25 21:21:46 UTC (rev 798) @@ -29,7 +29,6 @@ import org.codelutin.jaxx.action.initializer.SelectActionConfigInitializer; import org.codelutin.jaxx.action.initializer.ToggleActionConfigInitializer; -import javax.swing.AbstractAction; import javax.swing.AbstractButton; import javax.swing.Action; import javax.swing.Icon; @@ -73,14 +72,14 @@ protected final ToggleActionConfigInitializer toggleActionConfigInitializer; protected final SelectActionConfigInitializer selectActionConfigInitializer; - protected List<AbstractActionInitializer> registredInitializers; + protected List<AbstractActionInitializer> configurationResolvers; protected AbstractActionFactory(Class<A> baseImpl) { this.baseImpl = baseImpl; this.impls = init(); this.cache = new TreeMap<String, A>(); - this.registredInitializers = new java.util.ArrayList<AbstractActionInitializer>(); + this.configurationResolvers = new java.util.ArrayList<AbstractActionInitializer>(); this.toggleActionConfigInitializer = registerInitializer(ToggleActionConfigInitializer.class); this.actionConfigInitializer = registerInitializer(ActionConfigInitializer.class); @@ -103,7 +102,6 @@ if (log.isDebugEnabled()) { log.debug("for ui " + ui.getClass()); } - //List<A> result = new ArrayList<A>(); for (Map.Entry<String, Class<? extends MyAbstractAction>> entry : implsEntrySet()) { String actionKey = entry.getKey(); Object comp = ui.getObjectById(actionKey); @@ -142,7 +140,6 @@ Boolean value = (Boolean) action.getValue("hideActionText"); component.setHideActionText(value != null && value); action.setEnabled(true); - //result.add(action); continue; } // is JComboBox @@ -154,9 +151,7 @@ if (val != null && val != -1 && val < component.getItemCount() && val != component.getSelectedIndex()) { component.setSelectedIndex(val); } - //result.add(action); } - //return (A[]) result.toArray(new MyAbstractAction[result.size()]); } /** @@ -183,10 +178,10 @@ } // recherche de l'annotation de configuration - ActionInitializer<?, ?> initializer = findInitializer(result.getClass()); + ActionInitializer<?, ?> initializer = resolveActionConfiguration(result); if (initializer != null) { - initializer.initAction(component, result); + initializer.applyConfiguration(component, result); } try { @@ -342,10 +337,10 @@ } - protected ActionInitializer findInitializer(Class<? extends AbstractAction> action) { - for (ActionInitializer registredInitializer : registredInitializers) { - if (registredInitializer.getAnnotation(action) != null) { - return registredInitializer; + protected ActionInitializer resolveActionConfiguration(MyAbstractAction action) { + for (ActionInitializer resolver : configurationResolvers) { + if (resolver.resolveConfiguration(action) != null) { + return resolver; } } return null; @@ -354,7 +349,7 @@ protected <I extends AbstractActionInitializer> I registerInitializer(Class<I> initizalizer) { try { I instance = initizalizer.newInstance(); - registredInitializers.add(instance); + configurationResolvers.add(instance); return instance; } catch (Exception e) { throw new RuntimeException(e); Modified: trunk/lutinjaxx/jaxx-swing-action/src/main/java/org/codelutin/jaxx/action/factory/ActionFactory.java =================================================================== --- trunk/lutinjaxx/jaxx-swing-action/src/main/java/org/codelutin/jaxx/action/factory/ActionFactory.java 2008-07-25 21:20:58 UTC (rev 797) +++ trunk/lutinjaxx/jaxx-swing-action/src/main/java/org/codelutin/jaxx/action/factory/ActionFactory.java 2008-07-25 21:21:46 UTC (rev 798) @@ -108,7 +108,7 @@ void fireAction(String actionKey, Object source); /** - * Fire an action given his action's key, his source and the reaal action. + * Fire an action given his action's key, his source and the real action. * <p/> * This is a convinient method when you need to modified action before fire it. *