Author: tchemit Date: 2009-10-07 23:03:42 +0200 (Wed, 07 Oct 2009) New Revision: 1567 Added: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JAXXContext.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/JaxxHelpUI.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/MyDefaultCellEditor.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/EmptyNumberTableCellRenderer.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/EnumTableCellRenderer.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/I18nTableCellRenderer.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/LocaleListCellRenderer.java Removed: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JaxxHelpUI.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXContext.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/BooleanCellRenderer.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/EmptyNumberTableCellRenderer.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/EnumTableCellRenderer.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/I18nTableCellRenderer.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/LocaleListCellRenderer.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/MyDefaultCellEditor.java Modified: branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/generators/JAXXObjectGenerator.java branches/jaxx-2.X/jaxx-compiler/src/site/rst/JAXXContext.rst branches/jaxx-2.X/jaxx-demo/src/main/java/jaxx/demo/DemoTreeHelper.java branches/jaxx-2.X/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java branches/jaxx-2.X/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeHelper.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JAXXAction.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JAXXObject.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/Util.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/DataContext.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/DefaultApplicationContext.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/DefaultJAXXContext.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXContextEntryDef.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXInitialContext.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/JaxxHelpBroker.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeContextHelper.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHandler.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHandlerWithCardLayout.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHelper.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModel.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModelBuilder.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeNode.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardOperationAction.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardOperationActionThread.java branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardUILancher.java branches/jaxx-2.X/jaxx-runtime/src/test/java/jaxx/runtime/context/DefaultJAXXContextTest.java branches/jaxx-2.X/jaxx-runtime/src/test/java/jaxx/runtime/swing/navigation/NavigationTreeModelTest.java branches/jaxx-2.X/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/ColumnSelector.jaxx branches/jaxx-2.X/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditor.jaxx branches/jaxx-2.X/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIBuilder.java branches/jaxx-2.X/maven-jaxx-plugin/pom.xml branches/jaxx-2.X/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/JaxxGeneratorMojo.java branches/jaxx-2.X/pom.xml branches/jaxx-2.X/src/site/rst/JAXXContext.rst branches/jaxx-2.X/src/site/rst/migration.rst Log: ending migration Modified: branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java =================================================================== --- branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/CompilerConfiguration.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -2,7 +2,7 @@ import java.io.File; import jaxx.compiler.decorators.CompiledObjectDecorator; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; /** * TODO javadoc. Modified: branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java =================================================================== --- branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/DefaultCompilerConfiguration.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -5,7 +5,7 @@ import org.apache.commons.lang.builder.ToStringStyle; import java.io.File; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; /** * Options of the {@link JAXXCompiler} and {@link JAXXCompilerLaunchor}. @@ -46,7 +46,7 @@ */ private boolean resetAfterCompile; /** - * the name of implementation of {@link jaxx.runtime.context.JAXXContext} + * the name of implementation of {@link jaxx.runtime.JAXXContext} * to be used on {@link jaxx.runtime.JAXXObject}. */ protected Class<? extends JAXXContext> jaxxContextClass; Modified: branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java =================================================================== --- branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/decorators/HelpRootCompiledObjectDecorator.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -45,7 +45,7 @@ if (options.isGenerateHelp()) { // add JaxxHelpUI interface - Class<?> validatorInterface = jaxx.runtime.JaxxHelpUI.class; + Class<?> validatorInterface = jaxx.runtime.swing.JaxxHelpUI.class; String helpBrokerFQN = getBrokerFQN(compiler); javaFile.addInterface(JAXXCompiler.getCanonicalName(validatorInterface) + "<" + helpBrokerFQN + ">"); Modified: branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/generators/JAXXObjectGenerator.java =================================================================== --- branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/generators/JAXXObjectGenerator.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-compiler/src/main/java/jaxx/compiler/generators/JAXXObjectGenerator.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -11,7 +11,7 @@ import jaxx.compiler.types.TypeManager; import jaxx.runtime.JAXXObject; import jaxx.runtime.JAXXObjectDescriptor; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import jaxx.runtime.Util; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -49,7 +49,7 @@ protected static final JavaField PREVIOUS_VALUES_FIELD = JavaField.newField(0, "java.util.Map", "$previousValues", "new java.util.HashMap()"); protected static final JavaField DELEGATE_CONTEXT_FIELD = JavaField.newField(PROTECTED, - "jaxx.runtime.context.JAXXContext", "delegateContext"); + JAXXContext.class.getName(), "delegateContext"); protected static final JavaField PROPERTY_CHANGE_SUPPORT_FIELD = JavaField.newField(0, "java.beans.PropertyChangeSupport", "$propertyChangeSupport"); protected static final JavaMethod GET_CONTEXT_VALUE_METHOD = JavaMethod.newMethod(java.lang.reflect.Modifier.PUBLIC, "<T> T", "getContextValue", @@ -431,7 +431,7 @@ } code.append("$initialize();"); code.append(JAXXCompiler.getLineSeparator()); - return JavaMethod.newMethod(Modifier.PUBLIC, null, className, code.toString(), new JavaArgument("jaxx.runtime.context.JAXXContext", "parentContext")); + return JavaMethod.newMethod(Modifier.PUBLIC, null, className, code.toString(), new JavaArgument(JAXXContext.class.getName(), "parentContext")); } public JavaMethod createInitializer(JAXXCompiler compiler) throws CompilerException { Modified: branches/jaxx-2.X/jaxx-compiler/src/site/rst/JAXXContext.rst =================================================================== --- branches/jaxx-2.X/jaxx-compiler/src/site/rst/JAXXContext.rst 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-compiler/src/site/rst/JAXXContext.rst 2009-10-07 21:03:42 UTC (rev 1567) @@ -13,7 +13,7 @@ Le besoin initial de ce développement est de pouvoir facilement intégrer un context applicatif dans JAXX et de pouvoir l'utiliser dans les fichiers JAXX pour injecter par exemple des données dans les widgets. -jaxx.runtime.context.JAXXContext +jaxx.runtime.JAXXContext ======================== Il s'agit du contrat de base du context applicatif. Modified: branches/jaxx-2.X/jaxx-demo/src/main/java/jaxx/demo/DemoTreeHelper.java =================================================================== --- branches/jaxx-2.X/jaxx-demo/src/main/java/jaxx/demo/DemoTreeHelper.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-demo/src/main/java/jaxx/demo/DemoTreeHelper.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -20,7 +20,7 @@ */ package jaxx.demo; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import jaxx.runtime.context.JAXXContextEntryDef; import jaxx.runtime.JAXXObject; import jaxx.runtime.swing.CardLayout2; Modified: branches/jaxx-2.X/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java =================================================================== --- branches/jaxx-2.X/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -21,7 +21,7 @@ package jaxx.demo; import jaxx.runtime.swing.ErrorDialogUI; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import jaxx.runtime.context.JAXXInitialContext; import jaxx.runtime.swing.navigation.NavigationTreeNode; import org.apache.commons.logging.Log; Modified: branches/jaxx-2.X/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeHelper.java =================================================================== --- branches/jaxx-2.X/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeHelper.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeHelper.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -21,7 +21,7 @@ package jaxx.demo.component.jaxx.navigation; import jaxx.runtime.JAXXObject; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import jaxx.runtime.context.JAXXContextEntryDef; import static jaxx.runtime.context.JAXXContextEntryDef.newListDef; import jaxx.runtime.decorator.Decorator; Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JAXXAction.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JAXXAction.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JAXXAction.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,7 +1,6 @@ package jaxx.runtime; import jaxx.runtime.context.JAXXInitialContext; -import jaxx.runtime.context.JAXXContext; /** * This is the contract to be realized by any class to be used as Action class for an ui. Copied: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JAXXContext.java (from rev 1566, branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXContext.java) =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JAXXContext.java (rev 0) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JAXXContext.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -0,0 +1,106 @@ +package jaxx.runtime; + +import java.awt.Container; + +/** + * The {@link jaxx.runtime.JAXXContext} contract defines a generic context. + * <p/> + * A context contains two king of entries : + * <p/> + * <h2>Unamed entry</h2> + * a such entry maps filter only on the clas of the object of the entry. + * <p/> + * To add a <b>unamed</b> entry, use {@link #setContextValue(Object)} and {@link #getContextValue(Class)} to reteave a + * such entry. + * <p/> + * <h2>named entry</h2> + * a such entry filter on class of the object and on the name of the entry. + * <p/> + * To add a <b>named</b> entry, use {@link #setContextValue(Object,String)} and {@link #getContextValue(Class,String)} + * to reteave a such entry. + * + * @author letellier + * @author chemit + */ +public interface JAXXContext { + + /** + * Push in the context a new unamed entry. + * <p/> + * If a previous entry exists in context (unamed and same class), it will be removed. + * + * @param <T> type of data to set in context + * @param o the value to push in context + */ + public <T> void setContextValue(T o); + + /** + * * Push in the context a new amed entry. + * <p/> + * If a previous entry exists in context (same name and class), it will be removed. + * + * @param <T> type of data to set in context + * @param o the value to push in context + * @param name the name of the new entry + */ + public <T> void setContextValue(T o, String name); + + /** + * Remove from context the value with the given klazz as an unamed entry + * + * @param <T> type of data to remove from context + * @param klazz the klazz entry + */ + public <T> void removeContextValue(Class<T> klazz); + + /** + * Remove from context the value with the given klazz as an unamed (if name is null) or named entry + * + * @param <T> type of data to remove from context + * @param klazz the klazz entry + * @param name extra name of the entry + */ + public <T> void removeContextValue(Class<T> klazz, String name); + + /** + * Seek for a unamed entry in the context + * <p/> + * This is an exemple to call a method in JAXX : + * <p/> + * <code><JButton onActionPerformed='{getContextValue(Action.class).method(args[])}'/></code> + * + * @param <T> type of data to obtain from context + * @param clazz the class of unamed entry to seek in context + * @return the value of the unamed entry for the given class, or <code>null</code> if no such entry. + */ + public <T> T getContextValue(Class<T> clazz); + + /** + * Seek for a named entry in the context + * + * @param <T> type of data to obtain from context + * @param clazz the class of named entry to seek in context + * @param name the name of the entry to seek in context + * @return the value of the named entry for the given class, or <code>null</code> if no such entry. + */ + public <T> T getContextValue(Class<T> clazz, String name); + + /** + * Return parent's container corresponding to the Class clazz + * + * @param <O> type of container to obtain from context + * @param clazz clazz desired + * @return parent's container + */ + public <O extends Container> O getParentContainer(Class<O> clazz); + + /** + * Return parent's container corresponding to the Class clazz + * + * @param <O> type of container to obtain from context + * @param top the top container + * @param clazz desired + * @return parent's container + */ + public <O extends Container> O getParentContainer(Object top, Class<O> clazz); +} Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JAXXObject.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JAXXObject.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JAXXObject.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -5,7 +5,6 @@ package jaxx.runtime; import java.util.Map; -import jaxx.runtime.context.JAXXContext; /** * The <code>JAXXObject</code> interface is implemented by all classes Deleted: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JaxxHelpUI.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JaxxHelpUI.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JaxxHelpUI.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,23 +0,0 @@ -package jaxx.runtime; - -import java.awt.Component; -import jaxx.runtime.swing.JaxxHelpBroker; - -/** - * - * Contract to be added on JAXXObject wihch wants to use javax help. - * - * @param <B> type of broker. - * - * @author tony - * @since 1.3 - * @see JaxxHelpBroker - */ -public interface JaxxHelpUI<B extends JaxxHelpBroker<?>> { - - B getBroker(); - - void registerHelpId(B broker, Component component, String helpId); - - void showHelp(String helpId); -} Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -53,10 +53,10 @@ import javax.swing.table.DefaultTableCellRenderer; import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; -import jaxx.runtime.swing.BooleanCellRenderer; -import jaxx.runtime.swing.EmptyNumberTableCellRenderer; -import jaxx.runtime.swing.EnumTableCellRenderer; -import jaxx.runtime.swing.I18nTableCellRenderer; +import jaxx.runtime.swing.renderer.BooleanCellRenderer; +import jaxx.runtime.swing.renderer.EmptyNumberTableCellRenderer; +import jaxx.runtime.swing.renderer.EnumTableCellRenderer; +import jaxx.runtime.swing.renderer.I18nTableCellRenderer; import jaxx.runtime.swing.Item; import jaxx.runtime.swing.JAXXComboBox; import org.apache.commons.logging.Log; Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/Util.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/Util.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/Util.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,6 +1,5 @@ package jaxx.runtime; -import jaxx.runtime.context.JAXXContext; import jaxx.runtime.context.JAXXContextEntryDef; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/DataContext.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/DataContext.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/DataContext.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,5 +1,6 @@ package jaxx.runtime.context; +import jaxx.runtime.JAXXContext; import jaxx.runtime.*; import java.awt.Container; import java.beans.PropertyChangeListener; Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/DefaultApplicationContext.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/DefaultApplicationContext.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/DefaultApplicationContext.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -118,6 +118,8 @@ value = super.getContextValue(realClass, name); } + //TC-20091007 TODO Make possible use of named autoload entries + //(add a parameter on AutoLoad annotation) if (value == null) { AutoLoad anno = clazz.getAnnotation(AutoLoad.class); Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/DefaultJAXXContext.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/DefaultJAXXContext.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/DefaultJAXXContext.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,5 +1,6 @@ package jaxx.runtime.context; +import jaxx.runtime.JAXXContext; import jaxx.runtime.*; import static jaxx.runtime.context.JAXXContextEntryDef.newDef; import org.apache.commons.logging.Log; Deleted: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXContext.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXContext.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXContext.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,107 +0,0 @@ -package jaxx.runtime.context; - -import java.awt.Container; - -/** - * The {@link jaxx.runtime.context.JAXXContext} contract defines a generic context. - * <p/> - * A context contains two king of entries : - * <p/> - * <h2>Unamed entry</h2> - * a such entry maps filter only on the clas of the object of the entry. - * <p/> - * To add a <b>unamed</b> entry, use {@link #setContextValue(Object)} and {@link #getContextValue(Class)} to reteave a - * such entry. - * <p/> - * <h2>named entry</h2> - * a such entry filter on class of the object and on the name of the entry. - * <p/> - * To add a <b>named</b> entry, use {@link #setContextValue(Object,String)} and {@link #getContextValue(Class,String)} - * to reteave a such entry. - * - * @author letellier - * @author chemit - */ -public interface JAXXContext { - - /** - * Push in the context a new unamed entry. - * <p/> - * If a previous entry exists in context (unamed and same class), it will be removed. - * - * @param <T> type of data to set in context - * @param o the value to push in context - */ - public <T> void setContextValue(T o); - - /** - * * Push in the context a new amed entry. - * <p/> - * If a previous entry exists in context (same name and class), it will be removed. - * - * @param <T> type of data to set in context - * @param o the value to push in context - * @param name the name of the new entry - */ - public <T> void setContextValue(T o, String name); - - /** - * Remove from context the value with the given klazz as an unamed entry - * - * @param <T> type of data to remove from context - * @param klazz the klazz entry - */ - public <T> void removeContextValue(Class<T> klazz); - - /** - * Remove from context the value with the given klazz as an unamed (if name is null) or named entry - * - * @param <T> type of data to remove from context - * @param klazz the klazz entry - * @param name extra name of the entry - */ - - public <T> void removeContextValue(Class<T> klazz, String name); - - /** - * Seek for a unamed entry in the context - * <p/> - * This is an exemple to call a method in JAXX : - * <p/> - * <code><JButton onActionPerformed='{getContextValue(Action.class).method(args[])}'/></code> - * - * @param <T> type of data to obtain from context - * @param clazz the class of unamed entry to seek in context - * @return the value of the unamed entry for the given class, or <code>null</code> if no such entry. - */ - public <T> T getContextValue(Class<T> clazz); - - /** - * Seek for a named entry in the context - * - * @param <T> type of data to obtain from context - * @param clazz the class of named entry to seek in context - * @param name the name of the entry to seek in context - * @return the value of the named entry for the given class, or <code>null</code> if no such entry. - */ - public <T> T getContextValue(Class<T> clazz, String name); - - /** - * Return parent's container corresponding to the Class clazz - * - * @param <O> type of container to obtain from context - * @param clazz clazz desired - * @return parent's container - */ - public <O extends Container> O getParentContainer(Class<O> clazz); - - /** - * Return parent's container corresponding to the Class clazz - * - * @param <O> type of container to obtain from context - * @param top the top container - * @param clazz desired - * @return parent's container - */ - public <O extends Container> O getParentContainer(Object top, Class<O> clazz); -} Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXContextEntryDef.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXContextEntryDef.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXContextEntryDef.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,5 +1,6 @@ package jaxx.runtime.context; +import jaxx.runtime.JAXXContext; import java.util.Collections; import java.util.List; Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXInitialContext.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXInitialContext.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/context/JAXXInitialContext.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,5 +1,6 @@ package jaxx.runtime.context; +import jaxx.runtime.JAXXContext; import java.awt.Container; import java.util.Map.Entry; import jaxx.runtime.JAXXObject; Deleted: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/BooleanCellRenderer.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/BooleanCellRenderer.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/BooleanCellRenderer.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,61 +0,0 @@ -package jaxx.runtime.swing; - -import javax.swing.Icon; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTable; -import javax.swing.table.TableCellRenderer; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; - -/** @author chemit - * @since 1.5 - */ -public class BooleanCellRenderer extends JPanel implements TableCellRenderer { - - private static final long serialVersionUID = 1L; - protected TableCellRenderer defaultDelegate; - protected JCheckBox checkBox; - - public BooleanCellRenderer(TableCellRenderer delegate) { - //super(new BorderLayout()); - this.checkBox = new JCheckBox(); - add(checkBox, BorderLayout.CENTER); - checkBox.setHorizontalAlignment(JLabel.CENTER); - checkBox.setBorderPainted(true); - this.defaultDelegate = delegate; - } - - public BooleanCellRenderer(TableCellRenderer delegate, Icon icon) { - //super(new BorderLayout()); - this.checkBox = new JCheckBox(icon); - add(checkBox, BorderLayout.NORTH); - checkBox.setHorizontalAlignment(JLabel.CENTER); - checkBox.setVerticalTextPosition(JLabel.TOP); - checkBox.setBorderPainted(true); - this.defaultDelegate = delegate; - } - - @Override - public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { - ((JComponent) defaultDelegate).setBackground(null); - JComponent render = (JComponent) defaultDelegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); - if (isSelected) { - setForeground(table.getSelectionForeground()); - setBackground(table.getSelectionBackground()); - } else { - setForeground(render.getForeground()); - setBackground(render.getBackground()); - //fixme make this works... and remove the test - if (row % 2 == 1) { - setBackground(Color.WHITE); - } - } - checkBox.setSelected((value != null && (Boolean) value)); - setBorder(render.getBorder()); - return this; - } -} Deleted: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/EmptyNumberTableCellRenderer.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/EmptyNumberTableCellRenderer.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/EmptyNumberTableCellRenderer.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,37 +0,0 @@ -package jaxx.runtime.swing; - -import javax.swing.JTable; -import javax.swing.table.TableCellRenderer; -import java.awt.Component; -import javax.swing.table.DefaultTableCellRenderer; - -/** - * A {@link TableCellRenderer} which does not display numbers when they are - * equals to 0. - * - * @author chemit - * @since 1.5 - */ -public class EmptyNumberTableCellRenderer implements TableCellRenderer { - - protected final Integer ZERO = 0; - protected final Float ZEROF = 0F; - protected final Double ZEROD = 0D; - private TableCellRenderer delegate; - - public EmptyNumberTableCellRenderer() { - this(new DefaultTableCellRenderer()); - } - - public EmptyNumberTableCellRenderer(TableCellRenderer delegate) { - this.delegate = delegate; - } - - @Override - public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { - if (value == null || ZERO.equals(value) || ZEROF.equals(value) || ZEROD.equals(value)) { - value = null; - } - return delegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); - } -} Deleted: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/EnumTableCellRenderer.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/EnumTableCellRenderer.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/EnumTableCellRenderer.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,47 +0,0 @@ -package jaxx.runtime.swing; - -import javax.swing.JTable; -import javax.swing.table.TableCellRenderer; -import java.awt.Component; -import java.util.EnumSet; - -/** - * - * - * A {@link TableCellRenderer} which displays enum values from their ordinal value. - * - * @param <E> le type de l'énumération. - * - * @author chemit - * @since 1.5 - */ -public class EnumTableCellRenderer<E extends Enum<E>> implements TableCellRenderer { - - private TableCellRenderer delegate; - private EnumSet<E> enumValues; - - public EnumTableCellRenderer(TableCellRenderer delegate, Class<E> enumClass) { - this.delegate = delegate; - this.enumValues = EnumSet.allOf(enumClass); - } - - @Override - public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { - - if (value != null) { - //FIXME : should be also able to read it by name ? - Integer ordinal = Integer.valueOf(value + ""); - if (ordinal == -1) { - value = null; - } else { - for (E enumValue : enumValues) { - if (ordinal == enumValue.ordinal()) { - value = enumValue; - break; - } - } - } - } - return delegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); - } -} Deleted: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/I18nTableCellRenderer.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/I18nTableCellRenderer.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/I18nTableCellRenderer.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,66 +0,0 @@ -package jaxx.runtime.swing; - -import static org.nuiton.i18n.I18n._; - -import javax.swing.JComponent; -import javax.swing.JTable; -import javax.swing.table.TableCellRenderer; -import javax.swing.table.TableColumn; -import java.awt.Component; - -/** - * A simple TableCellRenderer using a delegate TableCellRenderer to render everything elese thant the text : - * the text is I18nalize. - * - * @author chemit - */ -public class I18nTableCellRenderer implements TableCellRenderer { - - /** i18n keys of libelles to display */ - protected final String[] keys; - - /** i18n keys of toolTipTexts to display */ - protected final String[] tips; - - /** the delegate cell renderer */ - protected TableCellRenderer delegate; - - public I18nTableCellRenderer(TableCellRenderer delegate, String... keysAndTips) { - this.delegate = delegate; - if (keysAndTips.length == 0) { - throw new IllegalArgumentException("can not have empty keysAndTips parameters (means no column ?)"); - } - if (keysAndTips.length % 2 == 1) { - throw new IllegalArgumentException("must have some couple (text,tooltTipText), but had a even number of data in keysAndTips parameter"); - } - int size = keysAndTips.length / 2; - this.keys = new String[size]; - this.tips = new String[size]; - for (int i = 0; i < size; i++) { - this.keys[i] = keysAndTips[2 * i]; - this.tips[i] = keysAndTips[2 * i + 1]; - } - } - - @Override - public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasfocus, int row, int column) { - if (column > keys.length) { - throw new IndexOutOfBoundsException("colum can not be greater than " + keys.length); - } - TableColumn col = table.getColumn(table.getColumnName(column)); - int index = col.getModelIndex(); - value = _(keys[index]); - JComponent rendererComponent = (JComponent) delegate.getTableCellRendererComponent(table, value, isSelected, hasfocus, row, column); - rendererComponent.setToolTipText(_(tips[index])); - return rendererComponent; - } - - public String[] getKeys() { - return keys; - } - - public String[] getTips() { - return tips; - } - -} Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/JaxxHelpBroker.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/JaxxHelpBroker.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/JaxxHelpBroker.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -11,6 +11,7 @@ import java.util.Enumeration; import java.util.HashMap; import java.util.Hashtable; +import java.util.Locale; import java.util.Map; import java.util.Vector; import javax.help.CSH; @@ -19,7 +20,7 @@ import javax.swing.AbstractButton; import javax.swing.SwingUtilities; import javax.swing.UIManager; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import jaxx.runtime.JAXXObject; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; @@ -35,34 +36,68 @@ public abstract class JaxxHelpBroker<B extends JaxxHelpBroker<?>> { public static final String JAXX_CONTEXT_ENTRY = "jaxxcontext"; - /** to use log facility, just put in your code: log.info(\"...\"); */ + /** + * Logger + */ static private Log log = LogFactory.getLog(JaxxHelpBroker.class); + /** + * name of helpset + */ protected final String helpsetName; + /** + * default id to use if none given + */ protected final String defaultID; + /** + * help key + */ protected final String helpKey; - // Main HelpSet & Broker - protected final HelpSet helpset; - protected final HelpBroker helpBroker; + /** + * helpset to use + */ + protected HelpSet helpset; + /** + * help broker + */ + protected HelpBroker helpBroker; + /** + * current locale used + */ + protected Locale locale; + /** + * cache of cursors modified when in context-sensitive mode + */ protected Hashtable<Component, Cursor> cursors; + /** + * cursor to use in context-sensitive mode + */ protected Cursor onItemCursor; + /** + * cache of component which cursor have been modified + */ protected final Map<Component, String> cache; protected JaxxHelpBroker(String helpsetName, String helpKey, String defaultID) { + this(null, helpsetName, helpKey, defaultID); + } + + protected JaxxHelpBroker(Locale locale, String helpsetName, String helpKey, String defaultID) { if (helpsetName == null) { throw new NullPointerException("parameter helpsetName can not be null!"); } + this.locale = locale; this.helpsetName = helpsetName; this.helpKey = helpKey; this.defaultID = defaultID; cache = new HashMap<Component, String>(); - try { - ClassLoader cl = getClass().getClassLoader(); - URL url = HelpSet.findHelpSet(cl, helpsetName); - helpset = new HelpSet(cl, url); - helpBroker = helpset.createHelpBroker(); - } catch (Exception ee) { - throw new IllegalStateException("could not find help set " + helpsetName + " for reason " + ee.getMessage(), ee); - } +// try { +// ClassLoader cl = getClass().getClassLoader(); +// URL url = HelpSet.findHelpSet(cl, helpsetName, this.locale); +// helpset = new HelpSet(cl, url); +// helpBroker = helpset.createHelpBroker(); +// } catch (Exception ee) { +// throw new IllegalStateException("could not find help set " + helpsetName + " for reason " + ee.getMessage(), ee); +// } } public void prepareUI(JAXXObject c) { @@ -96,6 +131,9 @@ } public HelpBroker getHelpBroker() { + if (helpBroker == null) { + helpBroker = getHelpset().createHelpBroker(); + } return helpBroker; } @@ -104,6 +142,15 @@ } public HelpSet getHelpset() { + if (helpset == null) { + try { + ClassLoader cl = getClass().getClassLoader(); + URL url = HelpSet.findHelpSet(cl, helpsetName, this.locale); + helpset = new HelpSet(cl, url); + } catch (Exception ee) { + throw new IllegalStateException("could not find help set " + helpsetName + " for reason " + ee.getMessage(), ee); + } + } return helpset; } @@ -115,6 +162,15 @@ return defaultID; } + public void setLocale(Locale locale) { + this.locale = locale; + // need to reload helpset and helpbroker + helpset = null; + helpBroker = null; + getHelpset(); + getHelpBroker(); + } + public void showHelpSet() { if (log.isDebugEnabled()) { log.debug(this); Copied: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/JaxxHelpUI.java (from rev 1566, branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/JaxxHelpUI.java) =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/JaxxHelpUI.java (rev 0) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/JaxxHelpUI.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -0,0 +1,22 @@ +package jaxx.runtime.swing; + +import java.awt.Component; + +/** + * + * Contract to be added on JAXXObject wihch wants to use javax help. + * + * @param <B> type of broker. + * + * @author tony + * @since 1.3 + * @see JaxxHelpBroker + */ +public interface JaxxHelpUI<B extends JaxxHelpBroker<?>> { + + B getBroker(); + + void registerHelpId(B broker, Component component, String helpId); + + void showHelp(String helpId); +} Deleted: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/LocaleListCellRenderer.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/LocaleListCellRenderer.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/LocaleListCellRenderer.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,126 +0,0 @@ -package jaxx.runtime.swing; - -import java.awt.Component; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; -import javax.swing.DefaultListCellRenderer; -import javax.swing.Icon; -import javax.swing.JLabel; -import javax.swing.JList; -import jaxx.runtime.SwingUtil; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -/** - * - * @author chemit - */ -public class LocaleListCellRenderer extends DefaultListCellRenderer { - - public static final Log log = LogFactory.getLog(LocaleListCellRenderer.class); - private static final long serialVersionUID = 1L; - protected final Map<Locale, Icon> cache = new HashMap<Locale, Icon>(); - protected boolean showIcon; - protected boolean showText; - - public LocaleListCellRenderer() { - this(true, true); - } - - public LocaleListCellRenderer(boolean showIcon, boolean showText) { - this.showIcon = showIcon; - this.showText = showText; - } - - @Override - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - JLabel comp = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - Locale locale = (Locale) value; - if (locale != null) { - Icon icon = getIcon(locale); - comp.setIcon(icon); - } - String text = getText(locale); - String tip = getToolTipText(locale); - comp.setText(text); - comp.setToolTipText(tip); - return comp; - } - - public String getText(Locale locale) { - String text = null; - if (showText) { - text = getSafeText(locale); - } - return text; - } - - public Icon getIcon(Locale locale) { - if (!showIcon) { - return null; - } - synchronized (cache) { - Icon icon = getSafeIcon(locale); - return icon; - } - } - - public String getToolTipText(Locale locale) { - String tip = locale.getDisplayName(Locale.getDefault()); - return tip; - } - - public boolean isShowText() { - return showText; - } - - public boolean isShowIcon() { - return showIcon; - } - - public void setShowIcon(boolean showIcon) { - boolean old = this.showIcon; - this.showIcon = showIcon; - firePropertyChange("showIcon", old, showIcon); - } - - public void setShowText(boolean showText) { - boolean old = this.showText; - this.showText = showText; - firePropertyChange("showText", old, showText); - } - - public String getSafeText(Locale locale) { - String text = locale.getDisplayName(Locale.getDefault()); - return text; - } - - public synchronized Icon getSafeIcon(Locale locale) { - Icon icon = cache.get(locale); - if (icon != null) { - return icon; - } - - icon = SwingUtil.getUIManagerActionIcon("i18n-" + locale.toString()); - - if (icon == null) { - log.warn("could not find icon action.i18n-" + locale.toString()); - if (locale.getCountry() != null) { - icon = SwingUtil.getUIManagerActionIcon("i18n-" + locale.getCountry().toLowerCase()); - if (icon == null) { - log.warn("could not find icon action.i18n-" + locale.getCountry().toLowerCase()); - - icon = SwingUtil.createActionIcon("i18n-" + locale.getCountry().toLowerCase()); - if (icon == null) { - log.warn("could not find icon action.i18n-" + locale.getCountry().toLowerCase()); - } - } - - } - } - - cache.put(locale, icon); - return icon; - } -} Deleted: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/MyDefaultCellEditor.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/MyDefaultCellEditor.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/MyDefaultCellEditor.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,104 +0,0 @@ -package jaxx.runtime.swing; - -import org.nuiton.util.EnumEditor; - -import javax.swing.DefaultCellEditor; -import javax.swing.Icon; -import javax.swing.JCheckBox; -import javax.swing.JComboBox; -import javax.swing.JTable; -import javax.swing.JTextField; -import javax.swing.table.TableCellEditor; -import java.awt.Component; - -/** - * @author chemit - * @since 1.5 - */ -public class MyDefaultCellEditor extends DefaultCellEditor { - - private static final long serialVersionUID = 1L; - - public static TableCellEditor newTextEditor() { - return new MyDefaultCellEditor(new JTextField()); - } - - public static TableCellEditor newBooleanEditor() { - return new MyDefaultCellEditor(new JCheckBox()); - } - - public static TableCellEditor newListEditor() { - return newListEditor(new JComboBox()); - } - - public static TableCellEditor newListEditor(JComboBox editor) { - return new MyDefaultCellEditor(editor); - } - - public static TableCellEditor newEnumEditor(EnumEditor editor) { - return new MyDefaultCellEditor(editor) { - - private static final long serialVersionUID = 1L; - - @Override - public Object getCellEditorValue() { - Object value = super.getCellEditorValue(); - if (value != null) { - value = ((Enum) value).ordinal(); - } else { - value = -1; - } - return value; - } - }; - } - - public static TableCellEditor newBooleanEditor(Icon icon) { - return new MyDefaultCellEditor(new JCheckBox(icon)); - } - - public static TableCellEditor newBooleanEditor(Icon icon, boolean requireSelect) { - TableCellEditor cellEditor = newBooleanEditor(icon); - ((MyDefaultCellEditor) cellEditor).setRequireSelect(requireSelect); - return cellEditor; - } - - public static TableCellEditor newBooleanEditor(boolean requireSelect) { - TableCellEditor cellEditor = newBooleanEditor(); - ((MyDefaultCellEditor) cellEditor).setRequireSelect(requireSelect); - return cellEditor; - } - protected boolean requireSelect = true; - - @Override - public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { - if (!isSelected && requireSelect) { - // force to have select the cell before editing, a way to not modify edition for nothing... - return null; - } - return super.getTableCellEditorComponent(table, value, isSelected, row, column); - } - - public boolean isRequireSelect() { - return requireSelect; - } - - public void setRequireSelect(boolean requireSelect) { - this.requireSelect = requireSelect; - } - - protected MyDefaultCellEditor(JTextField textField) { - super(textField); - setClickCountToStart(1); - } - - protected MyDefaultCellEditor(JCheckBox checkBox) { - super(checkBox); - setClickCountToStart(1); - } - - protected MyDefaultCellEditor(JComboBox comboBox) { - super(comboBox); - setClickCountToStart(1); - } -} Copied: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/MyDefaultCellEditor.java (from rev 1566, branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/MyDefaultCellEditor.java) =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/MyDefaultCellEditor.java (rev 0) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/editor/MyDefaultCellEditor.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -0,0 +1,103 @@ +package jaxx.runtime.swing.editor; + +import javax.swing.DefaultCellEditor; +import javax.swing.Icon; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JTable; +import javax.swing.JTextField; +import javax.swing.table.TableCellEditor; +import java.awt.Component; +import jaxx.runtime.swing.editor.EnumEditor; + +/** + * @author chemit + * @since 1.5 + */ +public class MyDefaultCellEditor extends DefaultCellEditor { + + private static final long serialVersionUID = 1L; + + public static TableCellEditor newTextEditor() { + return new MyDefaultCellEditor(new JTextField()); + } + + public static TableCellEditor newBooleanEditor() { + return new MyDefaultCellEditor(new JCheckBox()); + } + + public static TableCellEditor newListEditor() { + return newListEditor(new JComboBox()); + } + + public static TableCellEditor newListEditor(JComboBox editor) { + return new MyDefaultCellEditor(editor); + } + + public static TableCellEditor newEnumEditor(EnumEditor<?> editor) { + return new MyDefaultCellEditor(editor) { + + private static final long serialVersionUID = 1L; + + @Override + public Object getCellEditorValue() { + Object value = super.getCellEditorValue(); + if (value != null) { + value = ((Enum) value).ordinal(); + } else { + value = -1; + } + return value; + } + }; + } + + public static TableCellEditor newBooleanEditor(Icon icon) { + return new MyDefaultCellEditor(new JCheckBox(icon)); + } + + public static TableCellEditor newBooleanEditor(Icon icon, boolean requireSelect) { + TableCellEditor cellEditor = newBooleanEditor(icon); + ((MyDefaultCellEditor) cellEditor).setRequireSelect(requireSelect); + return cellEditor; + } + + public static TableCellEditor newBooleanEditor(boolean requireSelect) { + TableCellEditor cellEditor = newBooleanEditor(); + ((MyDefaultCellEditor) cellEditor).setRequireSelect(requireSelect); + return cellEditor; + } + protected boolean requireSelect = true; + + @Override + public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { + if (!isSelected && requireSelect) { + // force to have select the cell before editing, a way to not modify edition for nothing... + return null; + } + return super.getTableCellEditorComponent(table, value, isSelected, row, column); + } + + public boolean isRequireSelect() { + return requireSelect; + } + + public void setRequireSelect(boolean requireSelect) { + this.requireSelect = requireSelect; + } + + protected MyDefaultCellEditor(JTextField textField) { + super(textField); + setClickCountToStart(1); + } + + protected MyDefaultCellEditor(JCheckBox checkBox) { + super(checkBox); + setClickCountToStart(1); + } + + protected MyDefaultCellEditor(JComboBox comboBox) { + super(comboBox); + setClickCountToStart(1); + } +} Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeContextHelper.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeContextHelper.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeContextHelper.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,7 +1,7 @@ package jaxx.runtime.swing.navigation; import javax.swing.JTree; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import jaxx.runtime.context.JAXXContextEntryDef; /** Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHandler.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHandler.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHandler.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -6,7 +6,7 @@ import javax.swing.tree.DefaultTreeSelectionModel; import javax.swing.tree.TreePath; import jaxx.runtime.JAXXAction; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import jaxx.runtime.context.JAXXInitialContext; import jaxx.runtime.JAXXObject; import org.apache.commons.logging.Log; Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHandlerWithCardLayout.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHandlerWithCardLayout.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHandlerWithCardLayout.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,6 +1,6 @@ package jaxx.runtime.swing.navigation; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import jaxx.runtime.JAXXObject; import jaxx.runtime.swing.CardLayout2; import org.apache.commons.logging.Log; Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHelper.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHelper.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeHelper.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -4,7 +4,7 @@ import java.util.regex.Pattern; import javax.swing.JTree; import javax.swing.tree.TreePath; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import jaxx.runtime.JAXXObject; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModel.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModel.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModel.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,6 +1,6 @@ package jaxx.runtime.swing.navigation; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModelBuilder.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModelBuilder.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeModelBuilder.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -2,7 +2,7 @@ import java.util.Enumeration; import jaxx.runtime.JAXXAction; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import jaxx.runtime.context.JAXXContextEntryDef; import jaxx.runtime.JAXXObject; import jaxx.runtime.decorator.Decorator; Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeNode.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeNode.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/NavigationTreeNode.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -4,7 +4,7 @@ import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreeNode; import jaxx.runtime.JAXXAction; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import jaxx.runtime.context.JAXXContextEntryDef; import jaxx.runtime.JAXXObject; import org.apache.commons.jxpath.JXPathContext; Copied: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java (from rev 1566, branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/BooleanCellRenderer.java) =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java (rev 0) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -0,0 +1,61 @@ +package jaxx.runtime.swing.renderer; + +import javax.swing.Icon; +import javax.swing.JCheckBox; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTable; +import javax.swing.table.TableCellRenderer; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; + +/** @author chemit + * @since 1.5 + */ +public class BooleanCellRenderer extends JPanel implements TableCellRenderer { + + private static final long serialVersionUID = 1L; + protected TableCellRenderer defaultDelegate; + protected JCheckBox checkBox; + + public BooleanCellRenderer(TableCellRenderer delegate) { + //super(new BorderLayout()); + this.checkBox = new JCheckBox(); + add(checkBox, BorderLayout.CENTER); + checkBox.setHorizontalAlignment(JLabel.CENTER); + checkBox.setBorderPainted(true); + this.defaultDelegate = delegate; + } + + public BooleanCellRenderer(TableCellRenderer delegate, Icon icon) { + //super(new BorderLayout()); + this.checkBox = new JCheckBox(icon); + add(checkBox, BorderLayout.NORTH); + checkBox.setHorizontalAlignment(JLabel.CENTER); + checkBox.setVerticalTextPosition(JLabel.TOP); + checkBox.setBorderPainted(true); + this.defaultDelegate = delegate; + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { + ((JComponent) defaultDelegate).setBackground(null); + JComponent render = (JComponent) defaultDelegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + if (isSelected) { + setForeground(table.getSelectionForeground()); + setBackground(table.getSelectionBackground()); + } else { + setForeground(render.getForeground()); + setBackground(render.getBackground()); + //fixme make this works... and remove the test + if (row % 2 == 1) { + setBackground(Color.WHITE); + } + } + checkBox.setSelected((value != null && (Boolean) value)); + setBorder(render.getBorder()); + return this; + } +} Copied: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/EmptyNumberTableCellRenderer.java (from rev 1566, branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/EmptyNumberTableCellRenderer.java) =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/EmptyNumberTableCellRenderer.java (rev 0) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/EmptyNumberTableCellRenderer.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -0,0 +1,37 @@ +package jaxx.runtime.swing.renderer; + +import javax.swing.JTable; +import javax.swing.table.TableCellRenderer; +import java.awt.Component; +import javax.swing.table.DefaultTableCellRenderer; + +/** + * A {@link TableCellRenderer} which does not display numbers when they are + * equals to 0. + * + * @author chemit + * @since 1.5 + */ +public class EmptyNumberTableCellRenderer implements TableCellRenderer { + + protected final Integer ZERO = 0; + protected final Float ZEROF = 0F; + protected final Double ZEROD = 0D; + private TableCellRenderer delegate; + + public EmptyNumberTableCellRenderer() { + this(new DefaultTableCellRenderer()); + } + + public EmptyNumberTableCellRenderer(TableCellRenderer delegate) { + this.delegate = delegate; + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { + if (value == null || ZERO.equals(value) || ZEROF.equals(value) || ZEROD.equals(value)) { + value = null; + } + return delegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + } +} Copied: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/EnumTableCellRenderer.java (from rev 1566, branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/EnumTableCellRenderer.java) =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/EnumTableCellRenderer.java (rev 0) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/EnumTableCellRenderer.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -0,0 +1,47 @@ +package jaxx.runtime.swing.renderer; + +import javax.swing.JTable; +import javax.swing.table.TableCellRenderer; +import java.awt.Component; +import java.util.EnumSet; + +/** + * + * + * A {@link TableCellRenderer} which displays enum values from their ordinal value. + * + * @param <E> le type de l'énumération. + * + * @author chemit + * @since 1.5 + */ +public class EnumTableCellRenderer<E extends Enum<E>> implements TableCellRenderer { + + private TableCellRenderer delegate; + private EnumSet<E> enumValues; + + public EnumTableCellRenderer(TableCellRenderer delegate, Class<E> enumClass) { + this.delegate = delegate; + this.enumValues = EnumSet.allOf(enumClass); + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { + + if (value != null) { + //FIXME : should be also able to read it by name ? + Integer ordinal = Integer.valueOf(value + ""); + if (ordinal == -1) { + value = null; + } else { + for (E enumValue : enumValues) { + if (ordinal == enumValue.ordinal()) { + value = enumValue; + break; + } + } + } + } + return delegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + } +} Copied: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/I18nTableCellRenderer.java (from rev 1566, branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/I18nTableCellRenderer.java) =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/I18nTableCellRenderer.java (rev 0) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/I18nTableCellRenderer.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -0,0 +1,66 @@ +package jaxx.runtime.swing.renderer; + +import static org.nuiton.i18n.I18n._; + +import javax.swing.JComponent; +import javax.swing.JTable; +import javax.swing.table.TableCellRenderer; +import javax.swing.table.TableColumn; +import java.awt.Component; + +/** + * A simple TableCellRenderer using a delegate TableCellRenderer to render everything elese thant the text : + * the text is I18nalize. + * + * @author chemit + */ +public class I18nTableCellRenderer implements TableCellRenderer { + + /** i18n keys of libelles to display */ + protected final String[] keys; + + /** i18n keys of toolTipTexts to display */ + protected final String[] tips; + + /** the delegate cell renderer */ + protected TableCellRenderer delegate; + + public I18nTableCellRenderer(TableCellRenderer delegate, String... keysAndTips) { + this.delegate = delegate; + if (keysAndTips.length == 0) { + throw new IllegalArgumentException("can not have empty keysAndTips parameters (means no column ?)"); + } + if (keysAndTips.length % 2 == 1) { + throw new IllegalArgumentException("must have some couple (text,tooltTipText), but had a even number of data in keysAndTips parameter"); + } + int size = keysAndTips.length / 2; + this.keys = new String[size]; + this.tips = new String[size]; + for (int i = 0; i < size; i++) { + this.keys[i] = keysAndTips[2 * i]; + this.tips[i] = keysAndTips[2 * i + 1]; + } + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasfocus, int row, int column) { + if (column > keys.length) { + throw new IndexOutOfBoundsException("colum can not be greater than " + keys.length); + } + TableColumn col = table.getColumn(table.getColumnName(column)); + int index = col.getModelIndex(); + value = _(keys[index]); + JComponent rendererComponent = (JComponent) delegate.getTableCellRendererComponent(table, value, isSelected, hasfocus, row, column); + rendererComponent.setToolTipText(_(tips[index])); + return rendererComponent; + } + + public String[] getKeys() { + return keys; + } + + public String[] getTips() { + return tips; + } + +} Copied: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/LocaleListCellRenderer.java (from rev 1566, branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/LocaleListCellRenderer.java) =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/LocaleListCellRenderer.java (rev 0) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/LocaleListCellRenderer.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -0,0 +1,126 @@ +package jaxx.runtime.swing.renderer; + +import java.awt.Component; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; +import javax.swing.DefaultListCellRenderer; +import javax.swing.Icon; +import javax.swing.JLabel; +import javax.swing.JList; +import jaxx.runtime.SwingUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * + * @author chemit + */ +public class LocaleListCellRenderer extends DefaultListCellRenderer { + + public static final Log log = LogFactory.getLog(LocaleListCellRenderer.class); + private static final long serialVersionUID = 1L; + protected final Map<Locale, Icon> cache = new HashMap<Locale, Icon>(); + protected boolean showIcon; + protected boolean showText; + + public LocaleListCellRenderer() { + this(true, true); + } + + public LocaleListCellRenderer(boolean showIcon, boolean showText) { + this.showIcon = showIcon; + this.showText = showText; + } + + @Override + public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { + JLabel comp = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + Locale locale = (Locale) value; + if (locale != null) { + Icon icon = getIcon(locale); + comp.setIcon(icon); + } + String text = getText(locale); + String tip = getToolTipText(locale); + comp.setText(text); + comp.setToolTipText(tip); + return comp; + } + + public String getText(Locale locale) { + String text = null; + if (showText) { + text = getSafeText(locale); + } + return text; + } + + public Icon getIcon(Locale locale) { + if (!showIcon) { + return null; + } + synchronized (cache) { + Icon icon = getSafeIcon(locale); + return icon; + } + } + + public String getToolTipText(Locale locale) { + String tip = locale.getDisplayName(Locale.getDefault()); + return tip; + } + + public boolean isShowText() { + return showText; + } + + public boolean isShowIcon() { + return showIcon; + } + + public void setShowIcon(boolean showIcon) { + boolean old = this.showIcon; + this.showIcon = showIcon; + firePropertyChange("showIcon", old, showIcon); + } + + public void setShowText(boolean showText) { + boolean old = this.showText; + this.showText = showText; + firePropertyChange("showText", old, showText); + } + + public String getSafeText(Locale locale) { + String text = locale.getDisplayName(Locale.getDefault()); + return text; + } + + public synchronized Icon getSafeIcon(Locale locale) { + Icon icon = cache.get(locale); + if (icon != null) { + return icon; + } + + icon = SwingUtil.getUIManagerActionIcon("i18n-" + locale.toString()); + + if (icon == null) { + log.warn("could not find icon action.i18n-" + locale.toString()); + if (locale.getCountry() != null) { + icon = SwingUtil.getUIManagerActionIcon("i18n-" + locale.getCountry().toLowerCase()); + if (icon == null) { + log.warn("could not find icon action.i18n-" + locale.getCountry().toLowerCase()); + + icon = SwingUtil.createActionIcon("i18n-" + locale.getCountry().toLowerCase()); + if (icon == null) { + log.warn("could not find icon action.i18n-" + locale.getCountry().toLowerCase()); + } + } + + } + } + + cache.put(locale, icon); + return icon; + } +} Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardOperationAction.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardOperationAction.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardOperationAction.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,7 +1,7 @@ package jaxx.runtime.swing.wizard; import javax.swing.SwingWorker; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardOperationActionThread.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardOperationActionThread.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardOperationActionThread.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -4,7 +4,7 @@ import java.beans.PropertyChangeListener; import java.util.Date; import javax.swing.SwingWorker.StateValue; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; Modified: branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardUILancher.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardUILancher.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/main/java/jaxx/runtime/swing/wizard/WizardUILancher.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -2,7 +2,7 @@ import java.awt.Window; import javax.swing.ImageIcon; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import jaxx.runtime.context.JAXXInitialContext; import jaxx.runtime.JAXXObject; import org.apache.commons.beanutils.ConstructorUtils; Modified: branches/jaxx-2.X/jaxx-runtime/src/test/java/jaxx/runtime/context/DefaultJAXXContextTest.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/test/java/jaxx/runtime/context/DefaultJAXXContextTest.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/test/java/jaxx/runtime/context/DefaultJAXXContextTest.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -1,5 +1,6 @@ package jaxx.runtime.context; +import jaxx.runtime.JAXXContext; import jaxx.runtime.*; import org.junit.Assert; import org.junit.Before; Modified: branches/jaxx-2.X/jaxx-runtime/src/test/java/jaxx/runtime/swing/navigation/NavigationTreeModelTest.java =================================================================== --- branches/jaxx-2.X/jaxx-runtime/src/test/java/jaxx/runtime/swing/navigation/NavigationTreeModelTest.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-runtime/src/test/java/jaxx/runtime/swing/navigation/NavigationTreeModelTest.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -4,7 +4,7 @@ import jaxx.runtime.swing.navigation.NavigationTreeModel; import jaxx.runtime.swing.navigation.NavigationTreeModelBuilder; import jaxx.runtime.context.DefaultJAXXContext; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import jaxx.runtime.context.JAXXContextEntryDef; import org.junit.Assert; import org.junit.Test; @@ -85,7 +85,7 @@ } /** - * Test the {@link NavigationTreeModel#getJAXXContextValue(jaxx.runtime.context.JAXXContext, String)} with an entry point + * Test the {@link NavigationTreeModel#getJAXXContextValue(jaxx.runtime.JAXXContext, String)} with an entry point * as a bean. * <p/> * Tree is like this @@ -205,7 +205,7 @@ } /** - * Test the {@link NavigationTreeModel#getJAXXContextValue(jaxx.runtime.context.JAXXContext, String)} with an entry point + * Test the {@link NavigationTreeModel#getJAXXContextValue(jaxx.runtime.JAXXContext, String)} with an entry point * as a list. * <p/> * Tree is like this Modified: branches/jaxx-2.X/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/ColumnSelector.jaxx =================================================================== --- branches/jaxx-2.X/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/ColumnSelector.jaxx 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/ColumnSelector.jaxx 2009-10-07 21:03:42 UTC (rev 1567) @@ -44,7 +44,7 @@ <script><![CDATA[ import javax.swing.table.TableColumn; import javax.swing.table.TableCellRenderer; -import jaxx.runtime.swing.I18nTableCellRenderer; +import jaxx.runtime.swing.renderer.I18nTableCellRenderer; public static final String TABLE_PROPERTY = "myTable"; public static final String POPUP_VISIBLE_PROPERTY = "popupVisible"; Modified: branches/jaxx-2.X/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditor.jaxx =================================================================== --- branches/jaxx-2.X/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditor.jaxx 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/I18nEditor.jaxx 2009-10-07 21:03:42 UTC (rev 1567) @@ -42,7 +42,7 @@ <Locale id='selectedLocale' javaBean='Locale.getDefault()'/> - <jaxx.runtime.swing.LocaleListCellRenderer id='renderer' + <jaxx.runtime.swing.renderer.LocaleListCellRenderer id='renderer' showIcon='{isShowIcon()}' showText='{isShowText()}' javaBean='new LocaleListCellRenderer(showIcon , showText)'/> @@ -71,7 +71,7 @@ <script><![CDATA[ import java.util.Locale; import jaxx.runtime.SwingUtil; -import jaxx.runtime.swing.LocaleListCellRenderer; +import jaxx.runtime.swing.renderer.LocaleListCellRenderer; import static org.nuiton.i18n.I18n.n_; public static final String DEFAULT_SELECTED_TOOLTIP = n_("i18neditor.selected"); Modified: branches/jaxx-2.X/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIBuilder.java =================================================================== --- branches/jaxx-2.X/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIBuilder.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIBuilder.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -32,7 +32,7 @@ import javax.swing.JOptionPane; import javax.swing.JRootPane; import javax.swing.KeyStroke; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import jaxx.runtime.context.JAXXInitialContext; import jaxx.runtime.SwingUtil; @@ -59,7 +59,7 @@ * @param defaultCategory la categorie a selectionner * @return l'ui instanciate */ - public static ConfigUI newConfigUI(jaxx.runtime.context.JAXXContext parentContext, final ConfigUIModel model, String defaultCategory) { + public static ConfigUI newConfigUI(jaxx.runtime.JAXXContext parentContext, final ConfigUIModel model, String defaultCategory) { JAXXContext tx = new JAXXInitialContext().add(parentContext).add(model); final ConfigUI ui = new ConfigUI(tx); Modified: branches/jaxx-2.X/maven-jaxx-plugin/pom.xml =================================================================== --- branches/jaxx-2.X/maven-jaxx-plugin/pom.xml 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/maven-jaxx-plugin/pom.xml 2009-10-07 21:03:42 UTC (rev 1567) @@ -57,6 +57,11 @@ <artifactId>maven-helper-plugin</artifactId> </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-velocity</artifactId> + </dependency> + <!-- pour acceder aux BeansInfos swing via Introspector --> <dependency> <groupId>com.sun</groupId> @@ -67,26 +72,18 @@ </dependency> <!-- tests dependencies --> -<!-- + <dependency> <groupId>org.apache.maven.shared</groupId> - <artifactId>maven-plugin-testing-harness</artifactId> - <version>1.1</version> - <scope>test</scope> - </dependency> ---> - <dependency> - <groupId>org.apache.maven.shared</groupId> <artifactId>maven-verifier</artifactId> - <version>1.0</version> - <scope>test</scope> </dependency> - <dependency> + <!-- <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.5</version> - </dependency> + </dependency>--> + <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> Modified: branches/jaxx-2.X/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/JaxxGeneratorMojo.java =================================================================== --- branches/jaxx-2.X/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/JaxxGeneratorMojo.java 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/maven-jaxx-plugin/src/main/java/org/nuiton/jaxx/plugin/JaxxGeneratorMojo.java 2009-10-07 21:03:42 UTC (rev 1567) @@ -25,7 +25,7 @@ import jaxx.compiler.decorators.CompiledObjectDecorator; import jaxx.compiler.decorators.HelpRootCompiledObjectDecorator; import jaxx.compiler.tags.TagManager; -import jaxx.runtime.context.JAXXContext; +import jaxx.runtime.JAXXContext; import org.apache.maven.artifact.Artifact; import org.apache.maven.model.Resource; @@ -98,7 +98,7 @@ */ protected String validatorFQN; /** - * the name of implementation of {@link jaxx.runtime.context.JAXXContext} + * the name of implementation of {@link jaxx.runtime.JAXXContext} * to be used on {@link jaxx.runtime.JAXXObject}. * <p/> * Must not be abstract. Modified: branches/jaxx-2.X/pom.xml =================================================================== --- branches/jaxx-2.X/pom.xml 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/pom.xml 2009-10-07 21:03:42 UTC (rev 1567) @@ -26,8 +26,6 @@ <module>jaxx-widgets</module> - <!-- deprecated since 1.7.2, will be removed before 2.0.0 - <module>jaxx-example</module--> <module>jaxx-demo</module> </modules> @@ -257,6 +255,26 @@ <artifactId>log4j</artifactId> <version>1.2.14</version> </dependency> + + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-velocity</artifactId> + <version>1.1.7</version> + <exclusions> + <exclusion> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + </exclusion> + <exclusion> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-api</artifactId> + </exclusion> + <exclusion> + <groupId>velocity</groupId> + <artifactId>velocity</artifactId> + </exclusion> + </exclusions> + </dependency> <dependency> <groupId>junit</groupId> @@ -266,6 +284,13 @@ </dependency> <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-verifier</artifactId> + <version>1.0</version> + <scope>test</scope> + </dependency> + + <dependency> <groupId>org.apache.maven.plugin-testing</groupId> <artifactId>maven-plugin-testing-harness</artifactId> <version>1.2</version> Modified: branches/jaxx-2.X/src/site/rst/JAXXContext.rst =================================================================== --- branches/jaxx-2.X/src/site/rst/JAXXContext.rst 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/src/site/rst/JAXXContext.rst 2009-10-07 21:03:42 UTC (rev 1567) @@ -13,7 +13,7 @@ Le besoin initial de ce développement est de pouvoir facilement intégrer un context applicatif dans JAXX et de pouvoir l'utiliser dans les fichiers JAXX pour injecter par exemple des données dans les widgets. -jaxx.runtime.context.JAXXContext +jaxx.runtime.JAXXContext ======================== Il s'agit du contrat de base du context applicatif. Modified: branches/jaxx-2.X/src/site/rst/migration.rst =================================================================== --- branches/jaxx-2.X/src/site/rst/migration.rst 2009-10-07 18:15:26 UTC (rev 1566) +++ branches/jaxx-2.X/src/site/rst/migration.rst 2009-10-07 21:03:42 UTC (rev 1567) @@ -15,7 +15,7 @@ * JList, JComboBox et JTree n'acceptent plus de fils Item (utiliser JAXXList, JAXXComboBox, JAXXTree). - * changement de paquetage de jaxx.runtime.JAXXContext vers jaxx.runtime.context.JAXXContext + * changement de paquetage de jaxx.runtime.JAXXContext vers jaxx.runtime.JAXXContext * changement de paquetage de jaxx.runtime.\*Decorator vers jaxx.runtime.decorator.\*Decorator