This is an automated email from the git hooks/post-receive script. New commit to annotated tag v2.0.0-beta-1 in repository jaxx. See https://gitlab.nuiton.org/nuiton/jaxx.git commit 25b43e3c7686e768bbe685fa3638bd631b9486b6 Author: Tony Chemit <chemit@codelutin.com> Date: Thu Oct 29 16:48:10 2009 +0000 - use DecoratorProviderListCellRenderer --- .../src/main/java/jaxx/demo/DemoUIHandler.java | 36 +++++++++++++--------- jaxx-demo/src/main/java/jaxx/demo/RunDemo.java | 28 ++++++++++++----- .../jaxx/navigation/FullNavigationTreeHelper.java | 30 +++++++++--------- .../navigation/FullNavigationTreeModelBuilder.java | 13 +++++--- .../jaxx/navigation/content/ActorsContentUI.jaxx | 5 ++- .../jaxx/navigation/content/ContentUI.jaxx | 9 ------ .../jaxx/navigation/content/MoviesContentUI.jaxx | 5 ++- 7 files changed, 68 insertions(+), 58 deletions(-) diff --git a/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java b/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java index c7a1e42..ca72d26 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java +++ b/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java @@ -20,26 +20,28 @@ */ package jaxx.demo; -import jaxx.runtime.swing.ErrorDialogUI; import jaxx.runtime.JAXXContext; +import jaxx.runtime.context.DefaultApplicationContext; +import jaxx.runtime.context.JAXXContextEntryDef; import jaxx.runtime.context.JAXXInitialContext; +import jaxx.runtime.decorator.DecoratorProvider; +import jaxx.runtime.swing.AboutPanel; +import jaxx.runtime.swing.ErrorDialogUI; +import jaxx.runtime.swing.editor.config.ConfigUI; +import jaxx.runtime.swing.editor.config.ConfigUIBuilder; +import jaxx.runtime.swing.editor.config.model.ConfigUIModel; import jaxx.runtime.swing.navigation.NavigationTreeNode; +import jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.i18n.I18n; import static org.nuiton.i18n.I18n._; import static org.nuiton.i18n.I18n.n_; -import java.awt.Desktop; +import javax.swing.*; +import java.awt.*; import java.net.URL; import java.util.Locale; -import javax.swing.SwingUtilities; -import jaxx.runtime.context.DefaultApplicationContext; -import jaxx.runtime.context.JAXXContextEntryDef; -import jaxx.runtime.swing.AboutPanel; -import jaxx.runtime.swing.editor.config.ConfigUI; -import jaxx.runtime.swing.editor.config.ConfigUIBuilder; -import jaxx.runtime.swing.editor.config.model.ConfigUIModel; -import org.nuiton.i18n.I18n; /** * Le handler de l'ui principale. @@ -49,7 +51,9 @@ import org.nuiton.i18n.I18n; */ public class DemoUIHandler { //implements JAXXHelp { - /** to use log facility, just put in your code: log.info(\"...\"); */ + /** + * to use log facility, just put in your code: log.info(\"...\"); + */ static private Log log = LogFactory.getLog(DemoUIHandler.class); static final JAXXContextEntryDef<DemoUI> MAIN_UI_ENTRY_DEF = jaxx.runtime.Util.newContextEntryDef("mainui", DemoUI.class); @@ -78,6 +82,10 @@ public class DemoUIHandler { //implements JAXXHelp { // share config context.add(rootContext.getContextValue(DemoConfig.class)); + // share a unique DecoratorProviderListCellRenderer + DecoratorProvider decoratorProvider = rootContext.getContextValue(DecoratorProvider.class); + context.add(new DecoratorProviderListCellRenderer(decoratorProvider)); + // instanciate ui DemoUI ui = new DemoUI(context); @@ -145,7 +153,7 @@ public class DemoUIHandler { //implements JAXXHelp { // scan main ui DemoUI ui = getUI(rootContext); - NavigationTreeNode node = null; + NavigationTreeNode node; String nodePath = null; if (ui != null) { @@ -181,7 +189,7 @@ public class DemoUIHandler { //implements JAXXHelp { * mode console (c'est à dire en mode plein écran exclusif), sinon on * passe en mode fenetré normal. * - * @param context l'ui principale de l'application + * @param context l'ui principale de l'application * @param fullscreen le nouvel état requis. */ public void changeScreen(JAXXContext context, final boolean fullscreen) { @@ -250,7 +258,7 @@ public class DemoUIHandler { //implements JAXXHelp { ConfigUIBuilder.showConfigUI(configUI, ui, false); } -// @Override + // @Override public void showHelp(JAXXContext context, String helpId) { // DemoUI mainUI = getUI(context); // ObserveHelpBroker helpBroker = context.getContextValue(ObserveHelpBroker.class); diff --git a/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java b/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java index 7a54fe7..ee9de55 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java +++ b/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java @@ -20,7 +20,11 @@ */ package jaxx.demo; +import jaxx.demo.component.jaxx.navigation.Movie; +import jaxx.demo.component.jaxx.navigation.People; +import jaxx.runtime.SwingUtil; import jaxx.runtime.context.DefaultApplicationContext; +import jaxx.runtime.decorator.DecoratorProvider; import jaxx.runtime.swing.ErrorDialogUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -28,10 +32,7 @@ import org.nuiton.i18n.I18n; import static org.nuiton.i18n.I18n._; import org.nuiton.util.StringUtil; -import jaxx.runtime.SwingUtil; - /** - * * @author chemit */ public class RunDemo { @@ -41,17 +42,13 @@ public class RunDemo { */ private static Log log = LogFactory.getLog(RunDemo.class); /** - * When application was started - */ - private static long startingTime = System.nanoTime(); - /** * The singleton instance of the main context */ protected static DefaultApplicationContext context; public static void main(String[] args) { - startingTime = System.nanoTime(); + long startingTime = System.nanoTime(); log.info("JAXX Demo start at " + new java.util.Date() + " args: " + java.util.Arrays.toString(args)); try { @@ -81,6 +78,20 @@ public class RunDemo { // share the config rootContext.setContextValue(config); + // init decorator provider + DecoratorProvider p = new DecoratorProvider() { + + @Override + protected void loadDecorators() { + + registerMultiJXPathDecorator(Movie.class, "${title}$s##${year}$s", "##", " - "); + registerMultiJXPathDecorator(People.class, "${firstName}$s##${lastName}$s", "##", " "); + } + }; + + // share the decorator provider + rootContext.setContextValue(p); + long t00 = System.nanoTime(); // init i18n @@ -141,6 +152,7 @@ public class RunDemo { * l'context partagée. * <p/> * Note : Cette méthode ne peut être appelée qu'une seule fois. + * * @return l'context partagée * @throws IllegalStateException si un contexte applicatif a déja été positionné. */ diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeHelper.java b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeHelper.java index e11ddd9..df5fab8 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeHelper.java +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeHelper.java @@ -20,10 +20,10 @@ */ package jaxx.demo.component.jaxx.navigation; -import jaxx.runtime.JAXXObject; import jaxx.runtime.JAXXContext; +import jaxx.runtime.JAXXObject; +import jaxx.runtime.Util; import jaxx.runtime.context.JAXXContextEntryDef; -import jaxx.runtime.decorator.DecoratorUtils; import jaxx.runtime.swing.CardLayout2; import jaxx.runtime.swing.ErrorDialogUI; import jaxx.runtime.swing.navigation.NavigationTreeHandler; @@ -34,11 +34,9 @@ import jaxx.runtime.swing.navigation.NavigationTreeModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; - +import javax.swing.*; import java.util.Arrays; import java.util.List; -import javax.swing.JPanel; -import jaxx.runtime.Util; /** * @@ -47,17 +45,17 @@ import jaxx.runtime.Util; */ public class FullNavigationTreeHelper extends NavigationTreeHelper { - static { - // register decorator one for all - - DecoratorUtils.register( - Movie.class.getSimpleName(), - DecoratorUtils.newMultiJXPathDecorator(Movie.class, "${title}$s##${year}$s", "##", " - ")); - - DecoratorUtils.register( - People.class.getSimpleName(), - DecoratorUtils.newMultiJXPathDecorator(People.class, "${firstName}$s##${lastName}$s", "##", " ")); - } +// static { +// // register decorator one for all +// +// DecoratorUtils.register( +// Movie.class.getSimpleName(), +// DecoratorUtils.newMultiJXPathDecorator(Movie.class, "${title}$s##${year}$s", "##", " - ")); +// +// DecoratorUtils.register( +// People.class.getSimpleName(), +// DecoratorUtils.newMultiJXPathDecorator(People.class, "${firstName}$s##${lastName}$s", "##", " ")); +// } /** * Logger */ diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeModelBuilder.java b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeModelBuilder.java index 7a80480..62d134f 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeModelBuilder.java +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeModelBuilder.java @@ -20,14 +20,17 @@ */ package jaxx.demo.component.jaxx.navigation; +import jaxx.demo.component.jaxx.navigation.content.ActorContentUI; +import jaxx.demo.component.jaxx.navigation.content.ActorsContentUI; +import jaxx.demo.component.jaxx.navigation.content.MovieContentUI; +import jaxx.demo.component.jaxx.navigation.content.MoviesContentUI; import jaxx.runtime.JAXXContext; import jaxx.runtime.decorator.Decorator; -import jaxx.runtime.decorator.DecoratorUtils; +import jaxx.runtime.decorator.DecoratorProvider; import jaxx.runtime.swing.navigation.NavigationTreeModelBuilder; import jaxx.runtime.swing.navigation.NavigationTreeNode; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import jaxx.demo.component.jaxx.navigation.content.*; import static org.nuiton.i18n.I18n._; import java.util.List; @@ -39,7 +42,6 @@ import java.util.List; */ public class FullNavigationTreeModelBuilder extends NavigationTreeModelBuilder { - private static final long serialVersionUID = 1l; /** * Logger */ @@ -67,8 +69,9 @@ public class FullNavigationTreeModelBuilder extends NavigationTreeModelBuilder { } - Decorator<Movie> mDecorator = DecoratorUtils.get(Movie.class.getSimpleName()); - Decorator<People> pDecorator = DecoratorUtils.get(People.class.getSimpleName()); + DecoratorProvider decoratorProvider = getModel().getContext().getContextValue(DecoratorProvider.class); + Decorator<Movie> mDecorator = decoratorProvider.getDecorator(Movie.class); + Decorator<People> pDecorator = decoratorProvider.getDecorator(People.class); // construction du noeud root // il ne contient pas de context et ne sera pas visible diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorsContentUI.jaxx b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorsContentUI.jaxx index 7c0746e..e8e823a 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorsContentUI.jaxx +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorsContentUI.jaxx @@ -23,8 +23,7 @@ <script><![CDATA[ import jaxx.runtime.SwingUtil; import jaxx.demo.component.jaxx.navigation.*; -import jaxx.runtime.decorator.DecoratorUtils; -import jaxx.runtime.swing.renderer.MultiDecoratorListCellRenderer; +import jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer; import jaxx.runtime.swing.navigation.NavigationTreeNode; @Override @@ -56,7 +55,7 @@ public void closeUI(NavigationTreeNode node) throws Exception { columnHeaderView='{toolbar}' horizontalScrollBarPolicy='{JScrollPane.HORIZONTAL_SCROLLBAR_NEVER}' verticalScrollBarPolicy='{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED}'> - <JList id='list' model='{new DefaultListModel()}' cellRenderer='{getContextValue(MultiDecoratorListCellRenderer.class)}'/> + <JList id='list' model='{new DefaultListModel()}' cellRenderer='{getContextValue(DecoratorProviderListCellRenderer.class)}'/> </JScrollPane> <JToolBar id='toolbar' constraints='BorderLayout.SOUTH' floatable='false'> diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ContentUI.jaxx b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ContentUI.jaxx index 9a59431..b34026b 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ContentUI.jaxx +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ContentUI.jaxx @@ -26,18 +26,9 @@ <script><![CDATA[ import jaxx.runtime.SwingUtil; import jaxx.demo.component.jaxx.navigation.*; -import jaxx.runtime.decorator.DecoratorUtils; -import jaxx.runtime.decorator.MultiJXPathDecorator; -import jaxx.runtime.swing.renderer.MultiDecoratorListCellRenderer; import jaxx.runtime.swing.navigation.NavigationTreeNode; import jaxx.runtime.swing.navigation.NavigationContentUI; -// init shared list decorator -MultiJXPathDecorator<?> d0 = (MultiJXPathDecorator<?>)DecoratorUtils.get(People.class.getSimpleName()); -MultiJXPathDecorator<?> d1 = (MultiJXPathDecorator<?>)DecoratorUtils.get(Movie.class.getSimpleName()); -MultiDecoratorListCellRenderer r = new MultiDecoratorListCellRenderer(d0,d1); -setContextValue(r); - ContentUIHandler getHandler() { return getContextValue(ContentUIHandler.class); } diff --git a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MoviesContentUI.jaxx b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MoviesContentUI.jaxx index a921b98..f9443f4 100644 --- a/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MoviesContentUI.jaxx +++ b/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MoviesContentUI.jaxx @@ -23,8 +23,7 @@ <script><![CDATA[ import jaxx.runtime.SwingUtil; import jaxx.demo.component.jaxx.navigation.*; -import jaxx.runtime.decorator.DecoratorUtils; -import jaxx.runtime.swing.renderer.MultiDecoratorListCellRenderer; +import jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer; import jaxx.runtime.swing.navigation.NavigationTreeNode; @Override @@ -56,7 +55,7 @@ public void closeUI(NavigationTreeNode node) throws Exception { columnHeaderView='{toolbar}' horizontalScrollBarPolicy='{JScrollPane.HORIZONTAL_SCROLLBAR_NEVER}' verticalScrollBarPolicy='{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED}'> - <JList id='list' model='{new DefaultListModel()}' cellRenderer='{getContextValue(MultiDecoratorListCellRenderer.class)}'/> + <JList id='list' model='{new DefaultListModel()}' cellRenderer='{getContextValue(DecoratorProviderListCellRenderer.class)}'/> </JScrollPane> <JToolBar id='toolbar' opaque='false' constraints='BorderLayout.SOUTH' floatable='false'> -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.