Author: sletellier Date: 2010-06-08 19:36:46 +0200 (Tue, 08 Jun 2010) New Revision: 1958 Url: http://nuiton.org/repositories/revision/jaxx/1958 Log: - Refactors entities - Add new tree API demo Added: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemo.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoCellRenderer.java trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoDataProvider.java trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoHelper.java trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoNode.java trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/ActorContentUI.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/ActorsContentUI.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/MovieContentUI.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/MoviesContentUI.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/loadors/ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/loadors/ActorsNodeLoadors.java trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/loadors/MoviesNodeLoadors.java trunk/jaxx-demo/src/main/java/jaxx/demo/entities/ trunk/jaxx-demo/src/main/java/jaxx/demo/entities/Identity.java trunk/jaxx-demo/src/main/java/jaxx/demo/entities/Model.java trunk/jaxx-demo/src/main/java/jaxx/demo/entities/Movie.java trunk/jaxx-demo/src/main/java/jaxx/demo/entities/People.java trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/ trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Identity-error-validation.xml trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Identity-info-validation.xml trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Identity-warning-validation.xml trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Model-error-validation.xml trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Model-info-validation.xml trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Model-warning-validation.xml Removed: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/Movie.java trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/People.java trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/Identity.java trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/Model.java trunk/jaxx-demo/src/main/resources/jaxx/demo/feature/ Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/DemoTreeHelper.java trunk/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeHelper.java trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeModelBuilder.java trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorContentUI.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorsContentUI.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ContentUIHandler.java trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MovieContentUI.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MoviesContentUI.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationListDemo.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationTableDemo.jaxx trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo-en_GB.properties trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo-fr_FR.properties trunk/jaxx-demo/src/main/resources/log4j.properties trunk/jaxx-demo/src/test/java/jaxx/demo/BeanValidatorDetectorTest.java Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/DemoTreeHelper.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/DemoTreeHelper.java 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/DemoTreeHelper.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -31,6 +31,7 @@ import jaxx.demo.component.jaxx.editor.I18nEditorDemo; import jaxx.demo.component.jaxx.editor.NumberEditorDemo; import jaxx.demo.component.jaxx.navigation.FullNavigationTreeDemo; +import jaxx.demo.component.jaxx.tree.JaxxTreeDemo; import jaxx.demo.component.swing.*; import jaxx.demo.feature.databinding.BeanDataBindingDemo; import jaxx.demo.feature.databinding.BindingExtremeDemo; @@ -45,7 +46,6 @@ import jaxx.runtime.context.JAXXContextEntryDef; import jaxx.runtime.swing.CardLayout2; import jaxx.runtime.swing.ErrorDialogUI; -import jaxx.runtime.swing.navigation.handler.AbstractNavigationHandler; import jaxx.runtime.swing.navigation.handler.NavigationHandler; import jaxx.runtime.swing.navigation.handler.NavigationTreeHandlerWithCardLayout; import jaxx.runtime.swing.navigation.tree.NavigationTreeHelper; @@ -119,6 +119,9 @@ addText(n_("jaxxdemo.tree.component.jaxx.tree.navigation")). addDemo(FullNavigationTreeDemo.class). goUp(). + addText(n_("jaxxdemo.tree.component.jaxx.tree")). + addDemo(JaxxTreeDemo.class). + goUp(). addDemo(BoxedDecoratorDemo.class). addDemo(StatusMessagePanelDemo.class). goUp(). Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -25,8 +25,8 @@ package jaxx.demo; -import jaxx.demo.component.jaxx.navigation.Movie; -import jaxx.demo.component.jaxx.navigation.People; +import jaxx.demo.entities.Movie; +import jaxx.demo.entities.People; import jaxx.runtime.SwingUtil; import jaxx.runtime.context.DefaultApplicationContext; import jaxx.runtime.decorator.DecoratorProvider; Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeHelper.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeHelper.java 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeHelper.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -25,6 +25,8 @@ package jaxx.demo.component.jaxx.navigation; +import jaxx.demo.entities.Movie; +import jaxx.demo.entities.People; import jaxx.runtime.JAXXContext; import jaxx.runtime.JAXXObject; import jaxx.runtime.JAXXUtil; Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeModelBuilder.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeModelBuilder.java 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/FullNavigationTreeModelBuilder.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -25,6 +25,8 @@ package jaxx.demo.component.jaxx.navigation; +import jaxx.demo.entities.Movie; +import jaxx.demo.entities.People; import jaxx.demo.component.jaxx.navigation.content.ActorContentUI; import jaxx.demo.component.jaxx.navigation.content.ActorsContentUI; import jaxx.demo.component.jaxx.navigation.content.MovieContentUI; Deleted: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/Movie.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/Movie.java 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/Movie.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -1,133 +0,0 @@ -/* - * #%L - * JAXX :: Demo - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2008 - 2010 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -package jaxx.demo.component.jaxx.navigation; - -import java.util.ArrayList; -import java.util.List; -import org.apache.commons.lang.builder.ToStringBuilder; -import org.apache.commons.lang.builder.ToStringStyle; - -/** - * - * @author tchemit <chemit@codelutin.com> - * @since 1.7.2 - */ -public class Movie { - - protected String id; - protected String title; - protected String image; - protected int year; - protected List<People> actors; - - public Movie(String id, String title, int year,String image) { - this(); - this.id = id; - this.title = title; - this.year = year; - this.image=image; - } - - public Movie() { - actors = new ArrayList<People>(); - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public List<People> getActors() { - return actors; - } - - public void setActors(List<People> actors) { - this.actors = actors; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public String getImage() { - return image; - } - - public void setImage(String image) { - this.image = image; - } - - public void addActor(People actor) { - actors.add(actor); - } - - @Override - public boolean equals(Object obj) { - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final Movie other = (Movie) obj; - if ((this.id == null) ? (other.id != null) : !this.id.equals(other.id)) { - return false; - } - return true; - } - - @Override - public int hashCode() { - int hash = 5; - hash = 41 * hash + (this.id != null ? this.id.hashCode() : 0); - return hash; - } - - @Override - public String toString() { - ToStringBuilder b = new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE); - b.append("id", id); - b.append("title", title); - b.append("year", year); - b.append("actors", actors); - return b.toString(); - } -} Deleted: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/People.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/People.java 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/People.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -1,123 +0,0 @@ -/* - * #%L - * JAXX :: Demo - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2008 - 2010 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -package jaxx.demo.component.jaxx.navigation; - -import org.apache.commons.lang.builder.ToStringBuilder; -import org.apache.commons.lang.builder.ToStringStyle; - -/** - * - * @author tchemit <chemit@codelutin.com> - * @since 1.7.2 - */ -public class People { - - protected String id; - protected String image; - protected String firstName; - protected String lastName; - protected int age; - - public People(String id, String firstName, String lastName, int age, String image) { - this.id = id; - this.firstName = firstName; - this.lastName = lastName; - this.age = age; - this.image = image; - } - - public int getAge() { - return age; - } - - public void setAge(int age) { - this.age = age; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public String getImage() { - return image; - } - - public void setImage(String image) { - this.image = image; - } - - @Override - public boolean equals(Object obj) { - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - final People other = (People) obj; - if ((this.id == null) ? (other.id != null) : !this.id.equals(other.id)) { - return false; - } - return true; - } - - @Override - public int hashCode() { - int hash = 7; - hash = 97 * hash + (this.id != null ? this.id.hashCode() : 0); - return hash; - } - - @Override - public String toString() { - ToStringBuilder b = new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE); - b.append("id", id); - b.append("firstName", firstName); - b.append("lastName", lastName); - b.append("age", age); - return b.toString(); - } -} Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorContentUI.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorContentUI.jaxx 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorContentUI.jaxx 2010-06-08 17:36:46 UTC (rev 1958) @@ -28,6 +28,7 @@ <script><![CDATA[ import jaxx.runtime.swing.navigation.tree.NavigationTreeNode; import jaxx.demo.component.jaxx.navigation.*; +import jaxx.demo.entities.*; @Override public void openUI(NavigationTreeNode node) throws Exception { @@ -48,8 +49,7 @@ ImageIcon getImage(People data) { return data == null? null :SwingUtil.createIcon(data.getImage()); } -]]> - </script> +]]></script> <People id='data' javaBean='null'/> Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorsContentUI.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorsContentUI.jaxx 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ActorsContentUI.jaxx 2010-06-08 17:36:46 UTC (rev 1958) @@ -27,6 +27,7 @@ <script><![CDATA[ import jaxx.demo.component.jaxx.navigation.*; +import jaxx.demo.entities.*; import jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer; import jaxx.runtime.swing.navigation.tree.NavigationTreeNode; @@ -49,8 +50,7 @@ DefaultListModel model = (DefaultListModel) list.getModel(); model.removeAllElements(); } - ]]> - </script> + ]]></script> <java.util.List id='data' genericType='People' javaBean='null'/> @@ -59,12 +59,14 @@ columnHeaderView='{toolbar}' horizontalScrollBarPolicy='{JScrollPane.HORIZONTAL_SCROLLBAR_NEVER}' verticalScrollBarPolicy='{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED}'> - <JList id='list' model='{new DefaultListModel()}' cellRenderer='{getContextValue(DecoratorProviderListCellRenderer.class)}'/> + <JList id='list' model='{new DefaultListModel()}' + cellRenderer='{getContextValue(DecoratorProviderListCellRenderer.class)}'/> </JScrollPane> <JToolBar id='toolbar' constraints='BorderLayout.SOUTH' floatable='false'> <JPanel layout='{new GridLayout(1,0)}'> - <JButton text='jaxxdemo.action.show' enabled='{list.getSelectedIndex()!=-1}' onActionPerformed='getHandler().selectChild(this, list.getSelectedIndex())'/> + <JButton text='jaxxdemo.action.show' enabled='{list.getSelectedIndex()!=-1}' + onActionPerformed='getHandler().selectChild(this, list.getSelectedIndex())'/> <JButton text='jaxxdemo.action.add'/> <JButton text='jaxxdemo.action.remove' enabled='{list.getSelectedIndex()!=-1}'/> </JPanel> Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ContentUIHandler.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ContentUIHandler.java 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/ContentUIHandler.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -26,9 +26,10 @@ package jaxx.demo.component.jaxx.navigation.content; import java.util.List; + +import jaxx.demo.entities.Movie; +import jaxx.demo.entities.People; import jaxx.demo.component.jaxx.navigation.FullNavigationTreeHelper; -import jaxx.demo.component.jaxx.navigation.Movie; -import jaxx.demo.component.jaxx.navigation.People; import jaxx.runtime.JAXXContext; /** Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MovieContentUI.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MovieContentUI.jaxx 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MovieContentUI.jaxx 2010-06-08 17:36:46 UTC (rev 1958) @@ -28,6 +28,7 @@ <script><![CDATA[ import jaxx.runtime.swing.navigation.tree.NavigationTreeNode; import jaxx.demo.component.jaxx.navigation.*; +import jaxx.demo.entities.*; @Override public void openUI(NavigationTreeNode node) throws Exception { @@ -48,8 +49,7 @@ ImageIcon getImage(Movie data) { return data == null? null :SwingUtil.createIcon(data.getImage()); } -]]> - </script> +]]></script> <Movie id='data' javaBean='null'/> Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MoviesContentUI.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MoviesContentUI.jaxx 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/navigation/content/MoviesContentUI.jaxx 2010-06-08 17:36:46 UTC (rev 1958) @@ -29,6 +29,7 @@ import jaxx.demo.component.jaxx.navigation.*; import jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer; import jaxx.runtime.swing.navigation.tree.NavigationTreeNode; +import jaxx.demo.entities.*; @Override public void openUI(NavigationTreeNode node) throws Exception { @@ -36,7 +37,7 @@ log.info("selected movies = "+ms.size()); setData(ms); if (ms != null) { - DefaultListModel model = (DefaultListModel) list.getModel(); + DefaultListModel model = (DefaultListModel) list.getModel(); for (Movie m : ms) { model.addElement(m); } @@ -49,8 +50,7 @@ DefaultListModel model = (DefaultListModel) list.getModel(); model.removeAllElements(); } - ]]> - </script> + ]]></script> <java.util.List id='data' genericType='Movie' javaBean='null'/> @@ -59,12 +59,14 @@ columnHeaderView='{toolbar}' horizontalScrollBarPolicy='{JScrollPane.HORIZONTAL_SCROLLBAR_NEVER}' verticalScrollBarPolicy='{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED}'> - <JList id='list' model='{new DefaultListModel()}' cellRenderer='{getContextValue(DecoratorProviderListCellRenderer.class)}'/> + <JList id='list' model='{new DefaultListModel()}' + cellRenderer='{getContextValue(DecoratorProviderListCellRenderer.class)}'/> </JScrollPane> <JToolBar id='toolbar' opaque='false' constraints='BorderLayout.SOUTH' floatable='false'> <JPanel layout='{new GridLayout(1,0)}'> - <JButton text='jaxxdemo.action.show' enabled='{list.getSelectedIndex()!=-1}' onActionPerformed='getHandler().selectChild(this, list.getSelectedIndex())'/> + <JButton text='jaxxdemo.action.show' enabled='{list.getSelectedIndex()!=-1}' + onActionPerformed='getHandler().selectChild(this, list.getSelectedIndex())'/> <JButton text='jaxxdemo.action.add'/> <JButton text='jaxxdemo.action.remove' enabled='{list.getSelectedIndex()!=-1}'/> </JPanel> Added: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemo.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemo.jaxx (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemo.jaxx 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,201 @@ +<!-- + #%L + JAXX :: Demo + + $Id: FullNavigationTreeDemo.jaxx 1861 2010-04-29 14:16:39Z tchemit $ + $HeadURL: http://svn.nuiton.org/svn/jaxx/trunk/jaxx-demo/src/main/java/jaxx/demo/compo... $ + %% + Copyright (C) 2008 - 2010 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Lesser Public License for more details. + + You should have received a copy of the GNU General Lesser Public + License along with this program. If not, see + <http://www.gnu.org/licenses/lgpl-3.0.html>. + #L% + --> + + +<jaxx.demo.DemoPanel> + + <CardLayout2 id='contentLayout'/> + + <script><![CDATA[ + +import jaxx.runtime.decorator.DecoratorProvider; +import jaxx.demo.component.jaxx.tree.content.ActorContentUI; +import jaxx.demo.component.jaxx.tree.content.ActorsContentUI; +import jaxx.demo.component.jaxx.tree.content.MovieContentUI; +import jaxx.demo.component.jaxx.tree.content.MoviesContentUI; +import jaxx.demo.entities.Movie; +import jaxx.demo.entities.People; +import javax.swing.tree.TreePath; + +private JaxxTreeDemoDataProvider dataProvider = new JaxxTreeDemoDataProvider(); +private JaxxTreeDemoHelper helper = new JaxxTreeDemoHelper(dataProvider); + +@Override +protected String[] getSources() { + return new String[]{ getDefaultSource(), + "JaxxTreeDemoHelper.java", + "JaxxTreeDemoNode.java", + "JaxxTreeDemoCellRenderer.java", + "JaxxTreeDemoDataProvider.java", + "loadors/ActorsNodeLoadors.java", + "loadors/MoviesNodeLoadors.java"}; +} + +private void $afterCompleteSetup() { + setContextValue(helper); + + TreeSelectionListener selectionListener = new TreeSelectionListener() { + @Override + public void valueChanged(TreeSelectionEvent event) { + TreePath path = event.getPath(); + JaxxTreeDemoNode node = (JaxxTreeDemoNode) path.getLastPathComponent(); + + if (log.isDebugEnabled()) { + log.debug("Select node " + node); + } + + // Do nothing for root + if (node.isRoot()) { + return; + } + openUI(node); + } + }; + + // Register decorator + DecoratorProvider decoratorProvider = getContextValue(DecoratorProvider.class); + navigation.setCellRenderer(new JaxxTreeDemoCellRenderer(decoratorProvider, dataProvider)); + + helper.setTree(navigation, true, selectionListener); + + SwingUtilities.invokeLater(new Runnable() { + + @Override + public void run() { + navigation.setSelectionInterval(0, 0); + splitPane.resetToPreferredSizes(); + } + }); + + // expand the tree + SwingUtil.expandTree(navigation); + + // auto-expand node when selected + SwingUtil.addExpandOnClickListener(navigation); +} + +protected void openUI(JaxxTreeDemoNode node) { + + // Get node type + Class<?> editType = node.getInternalClass(); + String id = node.getId(); + + // If it's category node + if (editType.equals(String.class)) { + + // Actors categorie node + if (JaxxTreeDemoHelper.ACTORS_CATEGORY_NODE.equals(id)) { + + java.util.List<People> peopleList = dataProvider.getPeoples(); + ActorsContentUI ui = getContentIfExist(ActorsContentUI.class); + String contentName = ActorsContentUI.class.getName(); + if (ui == null) { + ui = new ActorsContentUI(this); + content.add(ui, contentName); + } + ui.setData(peopleList); + contentLayout.show(content, contentName); + + // Movies categorie node + } else if (JaxxTreeDemoHelper.MOVIES_CATEGORY_NODE.equals(id)) { + + java.util.List<Movie> movieList = dataProvider.getMovies(); + MoviesContentUI ui = getContentIfExist(MoviesContentUI.class); + String contentName = MoviesContentUI.class.getName(); + if (ui == null) { + ui = new MoviesContentUI(this); + content.add(ui, contentName); + } + ui.setData(movieList); + contentLayout.show(content, contentName); + } + + // People node + } else if (editType.equals(People.class)) { + People people = dataProvider.getPeople(id); + + ActorContentUI ui = getContentIfExist(ActorContentUI.class); + String contentName = ActorContentUI.class.getName(); + if (ui == null) { + ui = new ActorContentUI(this); + content.add(ui, contentName); + } + ui.setData(people); + contentLayout.show(content, contentName); + + // Movie node + } else if (editType.equals(Movie.class)) { + Movie movie = dataProvider.getMovie(id); + + MovieContentUI ui = getContentIfExist(MovieContentUI.class); + String contentName = MovieContentUI.class.getName(); + if (ui == null) { + ui = new MovieContentUI(this); + content.add(ui, contentName); + } + ui.setData(movie); + contentLayout.show(content, contentName); + } +} + +// Get content if exist in content, else return null +protected <E extends Component> E getContentIfExist(Class<E> uiClass) { + String contentName = uiClass.getName(); + if (log.isDebugEnabled()) { + log.debug("Get content if exist " + contentName); + } + if (!contentLayout.contains(contentName)) { + return null; + } + return (E)contentLayout.getComponent(content, contentName); +} + ]]> + </script> + + <JPanel id='demoPanel' layout='{new BorderLayout()}'> + + <JSplitPane id='splitPane' + constraints='BorderLayout.CENTER' + oneTouchExpandable='true'> + + <JScrollPane border='{null}' + horizontalScrollBarPolicy='{JScrollPane.HORIZONTAL_SCROLLBAR_NEVER}' + verticalScrollBarPolicy='{JScrollPane.VERTICAL_SCROLLBAR_NEVER}'> + + <JTree id="navigation" + font-size='11' + rootVisible='false' + showsRootHandles='false' + model='{helper.createTreeModel()}'/> + + </JScrollPane> + + <JPanel id="content" layout="{contentLayout}" /> + + </JSplitPane> + + </JPanel> + +</jaxx.demo.DemoPanel> Added: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoCellRenderer.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoCellRenderer.java (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoCellRenderer.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,64 @@ +package jaxx.demo.component.jaxx.tree; + +import jaxx.demo.entities.Movie; +import jaxx.demo.entities.People; +import jaxx.runtime.decorator.Decorator; +import jaxx.runtime.decorator.DecoratorProvider; +import jaxx.runtime.swing.tree.AbstractJaxxTreeCellRenderer; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * @author sletellier <letellier@codelutin.com> + * @since 2.1 + */ +public class JaxxTreeDemoCellRenderer extends AbstractJaxxTreeCellRenderer<JaxxTreeDemoNode> { + + /** Logger */ + protected static final Log log = + LogFactory.getLog(JaxxTreeDemoCellRenderer.class); + + protected DecoratorProvider decoratorProvider; + + public JaxxTreeDemoCellRenderer(DecoratorProvider decoratorProvider, JaxxTreeDemoDataProvider provider) { + super.setDataProvider(provider); + this.decoratorProvider = decoratorProvider;; + } + + @Override + public JaxxTreeDemoDataProvider getDataProvider() { + return (JaxxTreeDemoDataProvider)super.getDataProvider(); + } + + @Override + protected String computeNodeText(JaxxTreeDemoNode node) { + + // Get node type + Class<?> editType = node.getInternalClass(); + String id = node.getId(); + + // get decorator + Decorator<?> decorator = decoratorProvider.getDecorator(editType); + + Object toDecorate = null; + + if (editType.equals(People.class)) { + toDecorate = getDataProvider().getPeople(id); + + // Movie node + } else if (editType.equals(Movie.class)) { + toDecorate = getDataProvider().getMovie(id); + } + + // Get decorated value + String decorated = decorator.toString(toDecorate); + + if (log.isDebugEnabled()) { + log.debug("Compute text for node " + + node + " return " + + decorated); + } + + return decorated; + } +} Added: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoDataProvider.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoDataProvider.java (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoDataProvider.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,87 @@ +package jaxx.demo.component.jaxx.tree; + +import jaxx.demo.entities.Movie; +import jaxx.demo.entities.People; +import jaxx.runtime.swing.tree.DataProvider; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author sletellier <letellier@codelutin.com> + * @since 2.1 + */ +public class JaxxTreeDemoDataProvider implements DataProvider { + + /** + * Logger + */ + static private final Log log = LogFactory.getLog(JaxxTreeDemoDataProvider.class); + + protected Map<String, Movie> movies; + + protected Map<String, People> peoples; + + public JaxxTreeDemoDataProvider() { + + movies = new HashMap<String, Movie>(); + peoples = new HashMap<String, People>(); + + log.info("for " + this); + People a = new People("0", "Jack", "Black", 0, "/jaxx/demo/images/jack.jpg"); + People a2 = new People("1", "Héctor", "Jiménez", 0, "/jaxx/demo/images/hector.jpg"); + People a3 = new People("2", "Ana", "de la Reguera", 0, "/jaxx/demo/images/ana.jpg"); + + Movie m = new Movie("0", "Nacho libre", 1996, "/jaxx/demo/images/nacho.jpg"); + m.addActor(a); + m.addActor(a2); + m.addActor(a3); + + Movie m2 = new Movie("1", "Nacho 2", 2009, "/jaxx/demo/images/nacho2.png"); + m2.addActor(a); + m2.addActor(a2); + + movies.put(m.getId(), m); + movies.put(m2.getId(), m2); + + peoples.put(a.getId(), a); + peoples.put(a2.getId(), a2); + peoples.put(a3.getId(), a3); + } + + @Override + public boolean isEnabled() { + return true; + } + + public Movie getMovie(String id){ + return movies.get(id); + } + + public People getPeople(String id){ + return peoples.get(id); + } + + public List<Movie> getMovies(){ + return new ArrayList<Movie>(movies.values()); + } + + public List<People> getPeoples() { + return new ArrayList<People>(peoples.values()); + } + + public List<People> getPeoples(Movie m){ + return m.getActors(); + } + + public List<People> getPeoples(String moviesId){ + + log.info("Get people for movie " + moviesId); + + return movies.get(moviesId).getActors(); + } +} Added: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoHelper.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoHelper.java (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoHelper.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,62 @@ + +package jaxx.demo.component.jaxx.tree; + +import jaxx.demo.component.jaxx.tree.loadors.ActorsNodeLoadors; +import jaxx.demo.component.jaxx.tree.loadors.MoviesNodeLoadors; +import jaxx.runtime.swing.tree.JaxxTreeHelper; + +import javax.swing.tree.DefaultTreeModel; +import javax.swing.tree.TreeModel; + +import static org.nuiton.i18n.I18n.n_; + +/** + * @author sletellier <letellier@codelutin.com> + * @since 2.1 + */ +public class JaxxTreeDemoHelper extends JaxxTreeHelper<JaxxTreeDemoNode> { + + public static String MOVIES_CATEGORY_NODE = "movies"; + public static String ACTORS_CATEGORY_NODE = "actors"; + + public JaxxTreeDemoHelper(JaxxTreeDemoDataProvider provider) { + super(); + setDataProvider(provider); + } + + public TreeModel createTreeModel() { + + JaxxTreeDemoNode root = new JaxxTreeDemoNode( + String.class, + "Root node", + null, + null + ); + + JaxxTreeDemoNode moviesCategoryNode = new JaxxTreeDemoNode( + String.class, + n_(MOVIES_CATEGORY_NODE), + null, + new MoviesNodeLoadors() + ); + + JaxxTreeDemoNode peoplesCategoryNode = new JaxxTreeDemoNode( + String.class, + n_(ACTORS_CATEGORY_NODE), + null, + new ActorsNodeLoadors() + ); + + root.add(moviesCategoryNode); + root.add(peoplesCategoryNode); + + DefaultTreeModel model = getModel(); + if (model == null) { + model = createModel(root); + } else { + model.setRoot(root); + } + root.populateChilds(model, getDataProvider()); + return model; + } +} Added: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoNode.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoNode.java (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/JaxxTreeDemoNode.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,20 @@ +package jaxx.demo.component.jaxx.tree; + +import jaxx.runtime.swing.tree.JaxxNode; +import jaxx.runtime.swing.tree.JaxxNodeChildLoador; + +/** + * + * @author sletellier <letellier@codelutin.com> + * @since 2.1 + */ +public class JaxxTreeDemoNode extends JaxxNode<JaxxTreeDemoNode> { + + public JaxxTreeDemoNode(String id) { + super(id); + } + + public JaxxTreeDemoNode(Class<?> internalClass, String id, String context, JaxxNodeChildLoador<?, JaxxTreeDemoNode> jaxxDemoNodeJaxxNodeChildLoador) { + super(internalClass, id, context, jaxxDemoNodeJaxxNodeChildLoador); + } +} Added: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/ActorContentUI.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/ActorContentUI.jaxx (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/ActorContentUI.jaxx 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,72 @@ +<!-- + #%L + JAXX :: Demo + + $Id: ActorContentUI.jaxx 1861 2010-04-29 14:16:39Z tchemit $ + $HeadURL: http://svn.nuiton.org/svn/jaxx/trunk/jaxx-demo/src/main/java/jaxx/demo/compo... $ + %% + Copyright (C) 2008 - 2010 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Lesser Public License for more details. + + You should have received a copy of the GNU General Lesser Public + License along with this program. If not, see + <http://www.gnu.org/licenses/lgpl-3.0.html>. + #L% + --> + + +<JSplitPane id='splitPane' + orientation='{JSplitPane.VERTICAL_SPLIT}' + resizeWeight='0.5' + constraints='BorderLayout.CENTER' + oneTouchExpandable='true'> + + <script><![CDATA[ +import jaxx.demo.entities.*; + +String getContent(People data) { + if (data == null) { + return "no content"; + } + StringBuilder buffer = new StringBuilder(); + buffer.append(data); + return buffer.toString(); +} + +ImageIcon getImage(People data) { + return data == null? null :SwingUtil.createIcon(data.getImage()); +} + +]]></script> + + <People id='data' javaBean='null'/> + + <JScrollPane border='{null}' + horizontalScrollBarPolicy='{JScrollPane.HORIZONTAL_SCROLLBAR_NEVER}' + verticalScrollBarPolicy='{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED}'> + <JTextPane border='{new TitledBorder(_("jaxxdemo.navigation.actor.title"))}' + editable='false' + font-size='11' + text='{getContent(getData())}'/> + </JScrollPane> + + <JScrollPane border='{new TitledBorder("Picture")}' + horizontalScrollBarPolicy='{JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED}' + verticalScrollBarPolicy='{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED}' + minimumSize='{SwingUtil.newMinDimension()}'> + + <JLabel horizontalAlignment='center' + icon='{getImage(getData())}'/> + + </JScrollPane> + +</JSplitPane> Added: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/ActorsContentUI.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/ActorsContentUI.jaxx (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/ActorsContentUI.jaxx 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,83 @@ +<!-- + #%L + JAXX :: Demo + + $Id: ActorsContentUI.jaxx 1861 2010-04-29 14:16:39Z tchemit $ + $HeadURL: http://svn.nuiton.org/svn/jaxx/trunk/jaxx-demo/src/main/java/jaxx/demo/compo... $ + %% + Copyright (C) 2008 - 2010 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Lesser Public License for more details. + + You should have received a copy of the GNU General Lesser Public + License along with this program. If not, see + <http://www.gnu.org/licenses/lgpl-3.0.html>. + #L% + --> + +<JPanel layout='{new BorderLayout()}'> + + <script><![CDATA[ +import jaxx.demo.entities.*; +import jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer; +import jaxx.runtime.binding.SimpleJAXXObjectBinding; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import jaxx.demo.component.jaxx.tree.JaxxTreeDemoHelper; + +private void $afterCompleteSetup() { + + addPropertyChangeListener(PROPERTY_DATA, new PropertyChangeListener(){ + @Override + public void propertyChange(PropertyChangeEvent evt) { + java.util.List<People> ps = getData(); + + if (ps != null) { + DefaultListModel model = (DefaultListModel) list.getModel(); + for (People p : ps) { + model.addElement(p); + } + } else { + // clean list model + DefaultListModel model = (DefaultListModel) list.getModel(); + model.removeAllElements(); + } + } + }); +} + +protected void selectChild() { + People selected = (People)list.getSelectedValue(); + getContextValue(JaxxTreeDemoHelper.class).selectNode(selected.getId()); +} + ]]></script> + + <java.util.List id='data' genericType='People' javaBean='null'/> + + <JScrollPane border='{new TitledBorder(_("jaxxdemo.navigation.actors.title"))}' + constraints='BorderLayout.CENTER' + columnHeaderView='{toolbar}' + horizontalScrollBarPolicy='{JScrollPane.HORIZONTAL_SCROLLBAR_NEVER}' + verticalScrollBarPolicy='{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED}'> + <JList id='list' model='{new DefaultListModel()}' + cellRenderer='{getContextValue(DecoratorProviderListCellRenderer.class)}'/> + </JScrollPane> + <JToolBar id='toolbar' constraints='BorderLayout.SOUTH' + floatable='false'> + <JPanel layout='{new GridLayout(1,0)}'> + <JButton text='jaxxdemo.action.show' enabled='{list.getSelectedIndex()!=-1}' + onActionPerformed='selectChild()'/> + <JButton text='jaxxdemo.action.add'/> + <JButton text='jaxxdemo.action.remove' enabled='{list.getSelectedIndex()!=-1}'/> + </JPanel> + </JToolBar> + +</JPanel> Added: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/MovieContentUI.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/MovieContentUI.jaxx (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/MovieContentUI.jaxx 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,72 @@ +<!-- + #%L + JAXX :: Demo + + $Id: MovieContentUI.jaxx 1861 2010-04-29 14:16:39Z tchemit $ + $HeadURL: http://svn.nuiton.org/svn/jaxx/trunk/jaxx-demo/src/main/java/jaxx/demo/compo... $ + %% + Copyright (C) 2008 - 2010 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Lesser Public License for more details. + + You should have received a copy of the GNU General Lesser Public + License along with this program. If not, see + <http://www.gnu.org/licenses/lgpl-3.0.html>. + #L% + --> + + +<JSplitPane id='splitPane' + orientation='{JSplitPane.VERTICAL_SPLIT}' + resizeWeight='0.5' + constraints='BorderLayout.CENTER' + oneTouchExpandable='true'> + + <script><![CDATA[ +import jaxx.demo.entities.*; + +String getContent(Movie data) { + if (data == null) { + return "no content"; + } + StringBuilder buffer = new StringBuilder(); + buffer.append(data); + return buffer.toString(); +} + +ImageIcon getImage(Movie data) { + return data == null? null :SwingUtil.createIcon(data.getImage()); +} +]]></script> + + <Movie id='data' javaBean='null'/> + + <JScrollPane border='{null}' + horizontalScrollBarPolicy='{JScrollPane.HORIZONTAL_SCROLLBAR_NEVER}' + verticalScrollBarPolicy='{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED}'> + + <JTextPane border='{new TitledBorder(_("jaxxdemo.navigation.movie.title"))}' + editable='false' + font-size='11' + text='{getContent(getData())}'/> + </JScrollPane> + + <JScrollPane border='{new TitledBorder("Picture")}' + horizontalScrollBarPolicy='{JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED}' + verticalScrollBarPolicy='{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED}' + minimumSize='{SwingUtil.newMinDimension()}'> + + <JLabel horizontalAlignment='center' + icon='{getImage(getData())}'/> + + </JScrollPane> + +</JSplitPane> \ No newline at end of file Added: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/MoviesContentUI.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/MoviesContentUI.jaxx (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/content/MoviesContentUI.jaxx 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,87 @@ +<!-- + #%L + JAXX :: Demo + + $Id: MoviesContentUI.jaxx 1861 2010-04-29 14:16:39Z tchemit $ + $HeadURL: http://svn.nuiton.org/svn/jaxx/trunk/jaxx-demo/src/main/java/jaxx/demo/compo... $ + %% + Copyright (C) 2008 - 2010 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Lesser Public License for more details. + + You should have received a copy of the GNU General Lesser Public + License along with this program. If not, see + <http://www.gnu.org/licenses/lgpl-3.0.html>. + #L% + --> + +<JPanel layout='{new BorderLayout()}'> + + <script><![CDATA[ +import jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer; +import jaxx.demo.entities.*; +import jaxx.runtime.binding.SimpleJAXXObjectBinding; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import jaxx.demo.component.jaxx.tree.JaxxTreeDemoHelper; + +private void $afterCompleteSetup() { + + addPropertyChangeListener(PROPERTY_DATA, new PropertyChangeListener(){ + @Override + public void propertyChange(PropertyChangeEvent evt) { + java.util.List<Movie> ms = getData(); + + if (ms != null) { + DefaultListModel model = (DefaultListModel) list.getModel(); + for (Movie m : ms) { + model.addElement(m); + } + } else { + // clean list model + DefaultListModel model = (DefaultListModel) list.getModel(); + model.removeAllElements(); + } + } + }); +} + +protected void selectChild() { + Movie selected = (Movie)list.getSelectedValue(); + getContextValue(JaxxTreeDemoHelper.class).selectNode(selected.getId()); +} + ]]></script> + + <java.util.List id='data' genericType='Movie' javaBean='null'/> + + <JScrollPane border='{new TitledBorder(_("jaxxdemo.navigation.movies.title"))}' + constraints='BorderLayout.CENTER' + columnHeaderView='{toolbar}' + horizontalScrollBarPolicy='{JScrollPane.HORIZONTAL_SCROLLBAR_NEVER}' + verticalScrollBarPolicy='{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED}'> + + <JList id='list' model='{new DefaultListModel()}' + cellRenderer='{getContextValue(DecoratorProviderListCellRenderer.class)}'/> + + </JScrollPane> + + <JToolBar id='toolbar' opaque='false' constraints='BorderLayout.SOUTH' + floatable='false'> + + <JPanel layout='{new GridLayout(1,0)}'> + <JButton text='jaxxdemo.action.show' enabled='{list.getSelectedIndex()!=-1}' + onActionPerformed='selectChild()'/> + <JButton text='jaxxdemo.action.add'/> + <JButton text='jaxxdemo.action.remove' enabled='{list.getSelectedIndex()!=-1}'/> + </JPanel> + </JToolBar> + +</JPanel> Added: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/loadors/ActorsNodeLoadors.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/loadors/ActorsNodeLoadors.java (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/loadors/ActorsNodeLoadors.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,50 @@ +package jaxx.demo.component.jaxx.tree.loadors; + +import jaxx.demo.component.jaxx.tree.JaxxTreeDemoNode; +import jaxx.demo.component.jaxx.tree.JaxxTreeDemoDataProvider; +import jaxx.demo.entities.People; +import jaxx.runtime.swing.tree.DataProvider; +import jaxx.runtime.swing.tree.JaxxNodeChildLoador; + +import java.util.List; + +/** + * @author sletellier <letellier@codelutin.com> + * @since 2.1 + */ +public class ActorsNodeLoadors extends JaxxNodeChildLoador<People, JaxxTreeDemoNode> { + + public ActorsNodeLoadors() { + super(People.class); + } + + @Override + public List<People> getData(Class<?> parentClass, + String parentId, + DataProvider dataProvider) throws Exception { + + // Get people for parentId + JaxxTreeDemoDataProvider provider = (JaxxTreeDemoDataProvider) dataProvider; + + // If its not root + if (parentId != null) { + return provider.getPeoples(parentId); + } + + return provider.getPeoples(); + } + + @Override + public JaxxTreeDemoNode createNode(JaxxTreeDemoNode parentNode, People data) { + + // Create actor nodes + JaxxTreeDemoNode actorsNode = new JaxxTreeDemoNode( + getBeanType(), + data.getId(), + null, + null + ); + + return actorsNode; + } +} Added: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/loadors/MoviesNodeLoadors.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/loadors/MoviesNodeLoadors.java (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/tree/loadors/MoviesNodeLoadors.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,57 @@ +package jaxx.demo.component.jaxx.tree.loadors; + +import jaxx.demo.component.jaxx.tree.JaxxTreeDemoHelper; +import jaxx.demo.component.jaxx.tree.JaxxTreeDemoNode; +import jaxx.demo.component.jaxx.tree.JaxxTreeDemoDataProvider; +import jaxx.demo.entities.Movie; +import jaxx.runtime.swing.tree.DataProvider; +import jaxx.runtime.swing.tree.JaxxNodeChildLoador; + +import java.util.List; + +import static org.nuiton.i18n.I18n.n_; + +/** + * @author sletellier <letellier@codelutin.com> + * @since 2.1 + */ +public class MoviesNodeLoadors extends JaxxNodeChildLoador<Movie, JaxxTreeDemoNode> { + + public MoviesNodeLoadors() { + super(Movie.class); + } + + @Override + public List<Movie> getData(Class<?> parentClass, + String parentId, + DataProvider dataProvider) throws Exception { + + JaxxTreeDemoDataProvider provider = (JaxxTreeDemoDataProvider) dataProvider; + return provider.getMovies(); + } + + @Override + public JaxxTreeDemoNode createNode(JaxxTreeDemoNode parentNode, Movie data) { + + // Create movies nodes + JaxxTreeDemoNode moviesNode = new JaxxTreeDemoNode( + getBeanType(), + data.getId(), + null, + null + ); + + // Create clients category node + JaxxTreeDemoNode ActorsCategoryNode = new JaxxTreeDemoNode( + String.class, + n_(JaxxTreeDemoHelper.ACTORS_CATEGORY_NODE), + null, + new ActorsNodeLoadors() + ); + + // Add to movies node + moviesNode.add(ActorsCategoryNode); + + return moviesNode; + } +} Added: trunk/jaxx-demo/src/main/java/jaxx/demo/entities/Identity.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/entities/Identity.java (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/entities/Identity.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,128 @@ +/* + * #%L + * JAXX :: Demo + * + * $Id: Identity.java 1847 2010-04-16 12:27:48Z tchemit $ + * $HeadURL: http://svn.nuiton.org/svn/jaxx/trunk/jaxx-demo/src/main/java/jaxx/demo/featu... $ + * %% + * Copyright (C) 2008 - 2010 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ + +package jaxx.demo.entities; + +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; +import java.io.File; + +public class Identity { + + protected String firstName = ""; + + protected String lastName = ""; + + protected String email = "dummy@codelutin.com"; + + protected int age = 51; + + protected File config = new File("/tmp"); + + protected File dir = new File("/tmp"); + + PropertyChangeSupport p; + + public Identity() { + p = new PropertyChangeSupport(this); + } + + public void addPropertyChangeListener(PropertyChangeListener listener) { + p.addPropertyChangeListener(listener); + } + + public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { + p.addPropertyChangeListener(propertyName, listener); + } + + public void removePropertyChangeListener(PropertyChangeListener listener) { + p.removePropertyChangeListener(listener); + } + + public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { + p.removePropertyChangeListener(propertyName, listener); + } + + + public String getFirstName() { + return firstName; + } + + public String getLastName() { + return lastName; + } + + public String getEmail() { + return email; + } + + public int getAge() { + return age; + } + + public File getConfig() { + return config; + } + + public File getDir() { + return dir; + } + + public void setFirstName(String firstName) { + String oldFirstName = this.firstName; + this.firstName = firstName; + p.firePropertyChange("firstName", oldFirstName, firstName); + } + + public void setLastName(String lastName) { + String oldLastName = this.lastName; + this.lastName = lastName; + p.firePropertyChange("lastName", oldLastName, lastName); + } + + public void setEmail(String email) { + String oldEmail = this.email; + this.email = email; + p.firePropertyChange("email", oldEmail, email); + } + + public void setAge(int age) { + int oldAge = this.age; + this.age = age; + p.firePropertyChange("age", oldAge, age); + } + + public void setConfig(File config) { + File oldConfig = this.config; + this.config = config; + p.firePropertyChange("config", oldConfig, config); + } + + public void setDir(File dir) { + File oldDir = this.dir; + this.dir = dir; + p.firePropertyChange("dir", oldDir, dir); + } +} Added: trunk/jaxx-demo/src/main/java/jaxx/demo/entities/Model.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/entities/Model.java (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/entities/Model.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,91 @@ +/* + * #%L + * JAXX :: Demo + * + * $Id: Model.java 1847 2010-04-16 12:27:48Z tchemit $ + * $HeadURL: http://svn.nuiton.org/svn/jaxx/trunk/jaxx-demo/src/main/java/jaxx/demo/entit... $ + * %% + * Copyright (C) 2008 - 2010 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ + +package jaxx.demo.entities; + +import java.beans.*; + +public class Model { + + protected String text = "text"; + + protected String text2 = "text2"; + + protected int ratio = 51; + + + PropertyChangeSupport p; + + public Model() { + p = new PropertyChangeSupport(this); + } + + public void addPropertyChangeListener(PropertyChangeListener listener) { + p.addPropertyChangeListener(listener); + } + + public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { + p.addPropertyChangeListener(propertyName, listener); + } + + public void removePropertyChangeListener(PropertyChangeListener listener) { + p.removePropertyChangeListener(listener); + } + + public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { + p.removePropertyChangeListener(propertyName, listener); + } + + + public String getText() { + return text; + } + + public String getText2() { + return text2; + } + + public int getRatio() { + return ratio; + } + + public void setText(String text) { + String oldText = this.text; + this.text = text; + p.firePropertyChange("text", oldText, text); + } + + public void setText2(String text2) { + String oldText2 = this.text2; + this.text2 = text2; + p.firePropertyChange("text2", oldText2, text2); + } + + public void setRatio(int ratio) { + int oldRatio = this.ratio; + this.ratio = ratio; + p.firePropertyChange("ratio", oldRatio, ratio); + } +} Added: trunk/jaxx-demo/src/main/java/jaxx/demo/entities/Movie.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/entities/Movie.java (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/entities/Movie.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,133 @@ +/* + * #%L + * JAXX :: Demo + * + * $Id: Movie.java 1847 2010-04-16 12:27:48Z tchemit $ + * $HeadURL: http://svn.nuiton.org/svn/jaxx/trunk/jaxx-demo/src/main/java/jaxx/demo/entit... $ + * %% + * Copyright (C) 2008 - 2010 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ + +package jaxx.demo.entities; + +import java.util.ArrayList; +import java.util.List; +import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.commons.lang.builder.ToStringStyle; + +/** + * + * @author tchemit <chemit@codelutin.com> + * @since 1.7.2 + */ +public class Movie { + + protected String id; + protected String title; + protected String image; + protected int year; + protected List<People> actors; + + public Movie(String id, String title, int year,String image) { + this(); + this.id = id; + this.title = title; + this.year = year; + this.image=image; + } + + public Movie() { + actors = new ArrayList<People>(); + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public List<People> getActors() { + return actors; + } + + public void setActors(List<People> actors) { + this.actors = actors; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public int getYear() { + return year; + } + + public void setYear(int year) { + this.year = year; + } + + public String getImage() { + return image; + } + + public void setImage(String image) { + this.image = image; + } + + public void addActor(People actor) { + actors.add(actor); + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final Movie other = (Movie) obj; + if ((this.id == null) ? (other.id != null) : !this.id.equals(other.id)) { + return false; + } + return true; + } + + @Override + public int hashCode() { + int hash = 5; + hash = 41 * hash + (this.id != null ? this.id.hashCode() : 0); + return hash; + } + + @Override + public String toString() { + ToStringBuilder b = new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE); + b.append("id", id); + b.append("title", title); + b.append("year", year); + b.append("actors", actors); + return b.toString(); + } +} Added: trunk/jaxx-demo/src/main/java/jaxx/demo/entities/People.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/entities/People.java (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/entities/People.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,123 @@ +/* + * #%L + * JAXX :: Demo + * + * $Id: People.java 1847 2010-04-16 12:27:48Z tchemit $ + * $HeadURL: http://svn.nuiton.org/svn/jaxx/trunk/jaxx-demo/src/main/java/jaxx/demo/compo... $ + * %% + * Copyright (C) 2008 - 2010 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ + +package jaxx.demo.entities; + +import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.commons.lang.builder.ToStringStyle; + +/** + * + * @author tchemit <chemit@codelutin.com> + * @since 1.7.2 + */ +public class People { + + protected String id; + protected String image; + protected String firstName; + protected String lastName; + protected int age; + + public People(String id, String firstName, String lastName, int age, String image) { + this.id = id; + this.firstName = firstName; + this.lastName = lastName; + this.age = age; + this.image = image; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getImage() { + return image; + } + + public void setImage(String image) { + this.image = image; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final People other = (People) obj; + if ((this.id == null) ? (other.id != null) : !this.id.equals(other.id)) { + return false; + } + return true; + } + + @Override + public int hashCode() { + int hash = 7; + hash = 97 * hash + (this.id != null ? this.id.hashCode() : 0); + return hash; + } + + @Override + public String toString() { + ToStringBuilder b = new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE); + b.append("id", id); + b.append("firstName", firstName); + b.append("lastName", lastName); + b.append("age", age); + return b.toString(); + } +} Deleted: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/Identity.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/Identity.java 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/Identity.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -1,128 +0,0 @@ -/* - * #%L - * JAXX :: Demo - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2008 - 2010 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -package jaxx.demo.feature.validation; - -import java.beans.PropertyChangeListener; -import java.beans.PropertyChangeSupport; -import java.io.File; - -public class Identity { - - protected String firstName = ""; - - protected String lastName = ""; - - protected String email = "dummy@codelutin.com"; - - protected int age = 51; - - protected File config = new File("/tmp"); - - protected File dir = new File("/tmp"); - - PropertyChangeSupport p; - - public Identity() { - p = new PropertyChangeSupport(this); - } - - public void addPropertyChangeListener(PropertyChangeListener listener) { - p.addPropertyChangeListener(listener); - } - - public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { - p.addPropertyChangeListener(propertyName, listener); - } - - public void removePropertyChangeListener(PropertyChangeListener listener) { - p.removePropertyChangeListener(listener); - } - - public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { - p.removePropertyChangeListener(propertyName, listener); - } - - - public String getFirstName() { - return firstName; - } - - public String getLastName() { - return lastName; - } - - public String getEmail() { - return email; - } - - public int getAge() { - return age; - } - - public File getConfig() { - return config; - } - - public File getDir() { - return dir; - } - - public void setFirstName(String firstName) { - String oldFirstName = this.firstName; - this.firstName = firstName; - p.firePropertyChange("firstName", oldFirstName, firstName); - } - - public void setLastName(String lastName) { - String oldLastName = this.lastName; - this.lastName = lastName; - p.firePropertyChange("lastName", oldLastName, lastName); - } - - public void setEmail(String email) { - String oldEmail = this.email; - this.email = email; - p.firePropertyChange("email", oldEmail, email); - } - - public void setAge(int age) { - int oldAge = this.age; - this.age = age; - p.firePropertyChange("age", oldAge, age); - } - - public void setConfig(File config) { - File oldConfig = this.config; - this.config = config; - p.firePropertyChange("config", oldConfig, config); - } - - public void setDir(File dir) { - File oldDir = this.dir; - this.dir = dir; - p.firePropertyChange("dir", oldDir, dir); - } -} Deleted: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/Model.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/Model.java 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/Model.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -1,91 +0,0 @@ -/* - * #%L - * JAXX :: Demo - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2008 - 2010 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -package jaxx.demo.feature.validation; - -import java.beans.*; - -public class Model { - - protected String text = "text"; - - protected String text2 = "text2"; - - protected int ratio = 51; - - - PropertyChangeSupport p; - - public Model() { - p = new PropertyChangeSupport(this); - } - - public void addPropertyChangeListener(PropertyChangeListener listener) { - p.addPropertyChangeListener(listener); - } - - public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { - p.addPropertyChangeListener(propertyName, listener); - } - - public void removePropertyChangeListener(PropertyChangeListener listener) { - p.removePropertyChangeListener(listener); - } - - public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { - p.removePropertyChangeListener(propertyName, listener); - } - - - public String getText() { - return text; - } - - public String getText2() { - return text2; - } - - public int getRatio() { - return ratio; - } - - public void setText(String text) { - String oldText = this.text; - this.text = text; - p.firePropertyChange("text", oldText, text); - } - - public void setText2(String text2) { - String oldText2 = this.text2; - this.text2 = text2; - p.firePropertyChange("text2", oldText2, text2); - } - - public void setRatio(int ratio) { - int oldRatio = this.ratio; - this.ratio = ratio; - p.firePropertyChange("ratio", oldRatio, ratio); - } -} Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationListDemo.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationListDemo.jaxx 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationListDemo.jaxx 2010-06-08 17:36:46 UTC (rev 1958) @@ -28,6 +28,7 @@ <script><![CDATA[ import static org.nuiton.i18n.I18n.n_; +import jaxx.demo.entities.*; import jaxx.runtime.validator.swing.SwingValidatorMessageListRenderer; import jaxx.runtime.validator.swing.SwingValidatorMessageListModel; Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationTableDemo.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationTableDemo.jaxx 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/validation/ValidationTableDemo.jaxx 2010-06-08 17:36:46 UTC (rev 1958) @@ -28,6 +28,7 @@ <script><![CDATA[ import static org.nuiton.i18n.I18n.n_; +import jaxx.demo.entities.*; import jaxx.runtime.validator.swing.SwingValidatorUtil; import jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo-en_GB.properties =================================================================== --- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo-en_GB.properties 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo-en_GB.properties 2010-06-08 17:36:46 UTC (rev 1958) @@ -197,6 +197,7 @@ jaxxdemo.title.about=About JAXXDemo... jaxxdemo.tree.component.jaxx=JAXX Components jaxxdemo.tree.component.jaxx.editor=Editors +jaxxdemo.tree.component.jaxx.tree=Jaxx tree API jaxxdemo.tree.component.jaxx.tree.navigation=Navigation trees jaxxdemo.tree.component.swing=Swing Components jaxxdemo.tree.component.swing.buttons=Buttons Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo-fr_FR.properties =================================================================== --- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo-fr_FR.properties 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo-fr_FR.properties 2010-06-08 17:36:46 UTC (rev 1958) @@ -197,6 +197,7 @@ jaxxdemo.title.about=A propos de JAXX Demo... jaxxdemo.tree.component.jaxx=Composants JAXX jaxxdemo.tree.component.jaxx.editor=Editeurs +jaxxdemo.tree.component.jaxx.tree=API JAXX pour les arbres jaxxdemo.tree.component.jaxx.tree.navigation=Arbre de navigation jaxxdemo.tree.component.swing=Composants Swing jaxxdemo.tree.component.swing.buttons=Boutons Added: trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Identity-error-validation.xml =================================================================== --- trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Identity-error-validation.xml (rev 0) +++ trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Identity-error-validation.xml 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,49 @@ +<!DOCTYPE validators PUBLIC + "-//OpenSymphony Group//XWork Validator 1.0.2//EN" + "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> +<validators> + <field name="firstName"> + <field-validator type="requiredstring" short-circuit="true"> + <message>You must enter a firstName.</message> + </field-validator> + </field> + <field name="lastName"> + <field-validator type="requiredstring" short-circuit="true"> + <message>You must enter a lastName.</message> + </field-validator> + </field> + + <field name="email"> + <field-validator type="requiredstring" short-circuit="true"> + <message>You must enter a value for email.</message> + </field-validator> + <field-validator type="email" short-circuit="true"> + <message>Not a valid e-mail.</message> + </field-validator> + </field> + + <field name="config"> + <field-validator type="requiredFile" short-circuit="true"> + <message>You must enter a value for config.</message> + </field-validator> + <field-validator type="existingFile" short-circuit="true"> + <message>The configuration file ${config} does not exist.</message> + </field-validator> + </field> + + <field name="dir"> + <field-validator type="requiredFile" short-circuit="true"> + <message>You must enter a value for dir.</message> + </field-validator> + <field-validator type="existingDirectory" short-circuit="true"> + <message>The directory ${dir} does not exist.</message> + </field-validator> + </field> + + <field name="age"> + <field-validator type="int"> + <param name="min">18</param> + <message>Your are too young (min ${min} )</message> + </field-validator> + </field> +</validators> \ No newline at end of file Added: trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Identity-info-validation.xml =================================================================== --- trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Identity-info-validation.xml (rev 0) +++ trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Identity-info-validation.xml 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,49 @@ +<!DOCTYPE validators PUBLIC + "-//OpenSymphony Group//XWork Validator 1.0.2//EN" + "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> +<validators> + <!--field name="firstName"> + <field-validator type="requiredstring" short-circuit="true"> + <message>You must enter a firstName.</message> + </field-validator> + </field> + <field name="lastName"> + <field-validator type="requiredstring" short-circuit="true"> + <message>You must enter a lastName.</message> + </field-validator> + </field> + + <field name="email"> + <field-validator type="requiredstring" short-circuit="true"> + <message>You must enter a value for email.</message> + </field-validator> + <field-validator type="email" short-circuit="true"> + <message>Not a valid e-mail.</message> + </field-validator> + </field> + + <field name="config"> + <field-validator type="requiredFile" short-circuit="true"> + <message>You must enter a value for config.</message> + </field-validator> + <field-validator type="existingFile" short-circuit="true"> + <message>The configuration file ${config} does not exist.</message> + </field-validator> + </field> + + <field name="dir"> + <field-validator type="requiredFile" short-circuit="true"> + <message>You must enter a value for dir.</message> + </field-validator> + <field-validator type="existingDirectory" short-circuit="true"> + <message>The directory ${dir} does not exist.</message> + </field-validator> + </field--> + + <field name="age"> + <field-validator type="int"> + <param name="min">25</param> + <message>You are still young ( old ${min} ) </message> + </field-validator> + </field> +</validators> \ No newline at end of file Added: trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Identity-warning-validation.xml =================================================================== --- trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Identity-warning-validation.xml (rev 0) +++ trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Identity-warning-validation.xml 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,49 @@ +<!DOCTYPE validators PUBLIC + "-//OpenSymphony Group//XWork Validator 1.0.2//EN" + "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> +<validators> + <!--field name="firstName"> + <field-validator type="requiredstring" short-circuit="true"> + <message>You must enter a firstName.</message> + </field-validator> + </field> + <field name="lastName"> + <field-validator type="requiredstring" short-circuit="true"> + <message>You must enter a lastName.</message> + </field-validator> + </field> + + <field name="email"> + <field-validator type="requiredstring" short-circuit="true"> + <message>You must enter a value for email.</message> + </field-validator> + <field-validator type="email" short-circuit="true"> + <message>Not a valid e-mail.</message> + </field-validator> + </field> + + <field name="config"> + <field-validator type="requiredFile" short-circuit="true"> + <message>You must enter a value for config.</message> + </field-validator> + <field-validator type="existingFile" short-circuit="true"> + <message>The configuration file ${config} does not exist.</message> + </field-validator> + </field> + + <field name="dir"> + <field-validator type="requiredFile" short-circuit="true"> + <message>You must enter a value for dir.</message> + </field-validator> + <field-validator type="existingDirectory" short-circuit="true"> + <message>The directory ${dir} does not exist.</message> + </field-validator> + </field--> + + <field name="age"> + <field-validator type="int"> + <param name="max">88</param> + <message>Info : Your are older than ${max} !</message> + </field-validator> + </field> +</validators> \ No newline at end of file Added: trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Model-error-validation.xml =================================================================== --- trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Model-error-validation.xml (rev 0) +++ trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Model-error-validation.xml 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,35 @@ +<!DOCTYPE validators PUBLIC + "-//OpenSymphony Group//XWork Validator 1.0.2//EN" + "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> +<validators> + <!-- Field Validators for email field --> + <field name="text"> + <field-validator type="requiredstring" short-circuit="true"> + <message>You must enter a value for text.</message> + </field-validator> + </field> + + <field name="text2"> + <field-validator type="requiredstring" short-circuit="true"> + <message>You must enter a value for text2.</message> + </field-validator> + </field> + + <field name="ratio"> + <field-validator type="int"> + <param name="min">20</param> + <param name="max">50</param> + <message>Ratio needs to be between ${min} and ${max}</message> + </field-validator> + </field> + + <!-- Plain Validator 1 --> + <validator type="expression"> + <param name="expression">text.startsWith("poussin")</param> + <message>Email not starts with poussin</message> + </validator> + <validator type="expression"> + <param name="expression">text2.startsWith("chemit")</param> + <message>Email not starts with chemit</message> + </validator> +</validators> \ No newline at end of file Added: trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Model-info-validation.xml =================================================================== --- trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Model-info-validation.xml (rev 0) +++ trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Model-info-validation.xml 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,13 @@ +<!DOCTYPE validators PUBLIC + "-//OpenSymphony Group//XWork Validator 1.0.2//EN" + "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> +<validators> + <!-- Field Validators for email field --> + <field name="text"> + <field-validator type="fieldexpression"> + <param name="expression"><![CDATA[ text != null && text.length() > 10]]></param> + <message>Text should have more than 10 caracters</message> + </field-validator> + </field> + +</validators> \ No newline at end of file Added: trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Model-warning-validation.xml =================================================================== --- trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Model-warning-validation.xml (rev 0) +++ trunk/jaxx-demo/src/main/resources/jaxx/demo/entities/Model-warning-validation.xml 2010-06-08 17:36:46 UTC (rev 1958) @@ -0,0 +1,18 @@ +<!DOCTYPE validators PUBLIC + "-//OpenSymphony Group//XWork Validator 1.0.2//EN" + "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> +<validators> + <!-- Field Validators for email field --> + <field name="text"> + <field-validator type="email" short-circuit="true"> + <message>Not a valid e-mail for text.</message> + </field-validator> + </field> + + <field name="text2"> + <field-validator type="requiredstring" short-circuit="true"> + <message>You must enter a value for text2.</message> + </field-validator> + </field> + +</validators> \ No newline at end of file Modified: trunk/jaxx-demo/src/main/resources/log4j.properties =================================================================== --- trunk/jaxx-demo/src/main/resources/log4j.properties 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/main/resources/log4j.properties 2010-06-08 17:36:46 UTC (rev 1958) @@ -6,6 +6,7 @@ log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n log4j.logger.jaxx.demo=INFO +#log4j.logger.jaxx.demo.component.jaxx.tree=DEBUG #log4j.logger.jaxx.demo.config.DemoConfig=DEBUG log4j.logger.jaxx.runtime.swing.editor.config=INFO #log4j.logger.jaxx.runtime.swing.editor.config.model.ConfigUIModelBuilder=DEBUG Modified: trunk/jaxx-demo/src/test/java/jaxx/demo/BeanValidatorDetectorTest.java =================================================================== --- trunk/jaxx-demo/src/test/java/jaxx/demo/BeanValidatorDetectorTest.java 2010-06-08 17:35:19 UTC (rev 1957) +++ trunk/jaxx-demo/src/test/java/jaxx/demo/BeanValidatorDetectorTest.java 2010-06-08 17:36:46 UTC (rev 1958) @@ -25,8 +25,9 @@ package jaxx.demo; -import jaxx.demo.feature.validation.Model; -import jaxx.demo.feature.validation.Identity; +import jaxx.demo.entities.Identity; +import jaxx.demo.entities.Model; + import java.io.File; import java.util.Iterator; import java.util.SortedSet;