r2355 - in trunk: jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor jaxx-demo/src/main/java/jaxx/demo/entities jaxx-demo/src/main/java/jaxx/demo/feature/nav jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable jaxx-demo/src/main/java/jaxx/demo/tree jaxx-runtime jaxx-runtime/src/main/java/jaxx/runtime/swing jaxx-runtime/src/main/java/jaxx/runtime/swing/model jaxx-widgets/src/main/java/jaxx/runtime/swing
Author: sletellier Date: 2012-06-29 11:31:03 +0200 (Fri, 29 Jun 2012) New Revision: 2355 Url: http://nuiton.org/repositories/revision/jaxx/2355 Log: - refs #2146 : improve listSelector widget to add event on selection change - Move GenericListModel to JaxxRuntime - Fix demo layout - Rename NavDemoDataProvider to DemoDataProvider - Move DemoDataProvider to entities package - Improve listSelectorDemo using demoDataProvider Added: trunk/jaxx-demo/src/main/java/jaxx/demo/entities/DemoDataProvider.java trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/GenericListModel.java Removed: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemoDataProvider.java trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/GenericListModel.java Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ComboEditorDemo.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/DatePickerDemo.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileEditorDemo.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/I18nEditorDemo.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ListSelectorDemo.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/NumberEditorDemo.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemo.jaxx trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemoHandler.java trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/ActorsTreeNodeLoador.java trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/MoviesTreeNodeLoador.java trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/NavDemoTreeCellRenderer.java trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/NavDemoTreeHelper.java trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/ActorsTreeTableNodeLoador.java trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/MoviesTreeTableNodeLoador.java trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/NavDemoTreeTableHelper.java trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/NavDemoTreeTableModel.java trunk/jaxx-demo/src/main/java/jaxx/demo/tree/DemoCellRenderer.java trunk/jaxx-runtime/pom.xml trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelector.jaxx Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ComboEditorDemo.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ComboEditorDemo.jaxx 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ComboEditorDemo.jaxx 2012-06-29 09:31:03 UTC (rev 2355) @@ -24,14 +24,14 @@ --> -<jaxx.demo.DemoPanel> +<jaxx.demo.DemoPanel layout='{new BorderLayout()}'> <import> org.nuiton.i18n.LanguageEnum org.nuiton.i18n.CountryEnum </import> - <Table fill='both'> + <Table fill='both' constraints='BorderLayout.CENTER'> <row> <cell> <JLabel text='Locale editor:' labelFor='{localeEditor}'/> Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/DatePickerDemo.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/DatePickerDemo.jaxx 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/DatePickerDemo.jaxx 2012-06-29 09:31:03 UTC (rev 2355) @@ -21,7 +21,7 @@ <http://www.gnu.org/licenses/lgpl-3.0.html>. #L% --> -<jaxx.demo.DemoPanel> +<jaxx.demo.DemoPanel layout='{new BorderLayout()}'> <import> java.beans.PropertyChangeEvent @@ -59,7 +59,7 @@ } ]]></script> - <Table fill='both'> + <Table fill='both' constraints='BorderLayout.CENTER'> <row> <cell columns='2' fill='horizontal' weightx='1'> <JCheckBox id='showPopupButton' Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileEditorDemo.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileEditorDemo.jaxx 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileEditorDemo.jaxx 2012-06-29 09:31:03 UTC (rev 2355) @@ -21,7 +21,7 @@ <http://www.gnu.org/licenses/lgpl-3.0.html>. #L% --> -<jaxx.demo.DemoPanel> +<jaxx.demo.DemoPanel layout='{new BorderLayout()}'> <import> jaxx.runtime.swing.editor.FileEditor </import> @@ -33,7 +33,7 @@ <Boolean id='directoryEnabled' javaBean='Boolean.TRUE'/> <Boolean id='fileEnabled' javaBean='Boolean.FALSE'/> - <Table fill='both'> + <Table fill='both' constraints='BorderLayout.CENTER'> <row> <cell fill='horizontal' weightx='1'> <JLabel text='jaxxdemo.fileEditor.titleLbl'/> Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/I18nEditorDemo.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/I18nEditorDemo.jaxx 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/I18nEditorDemo.jaxx 2012-06-29 09:31:03 UTC (rev 2355) @@ -24,7 +24,7 @@ --> -<jaxx.demo.DemoPanel> +<jaxx.demo.DemoPanel layout='{new BorderLayout()}'> <import> javax.swing.border.Border jaxx.runtime.swing.editor.I18nEditor @@ -40,7 +40,7 @@ } ]]> </script> - <Table fill='both'> + <Table fill='both' constraints='BorderLayout.CENTER'> <row> <cell> <JPanel Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ListSelectorDemo.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ListSelectorDemo.jaxx 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/ListSelectorDemo.jaxx 2012-06-29 09:31:03 UTC (rev 2355) @@ -21,34 +21,37 @@ <http://www.gnu.org/licenses/lgpl-3.0.html>. #L% --> -<jaxx.demo.DemoPanel> +<jaxx.demo.DemoPanel layout='{new BorderLayout()}'> <import> jaxx.runtime.swing.ListSelector com.google.common.collect.Lists java.util.List + jaxx.demo.entities.People + jaxx.demo.entities.Movie + jaxx.demo.entities.DemoDataProvider + jaxx.demo.entities.DemoDecoratorProvider + jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer </import> + <ListCellRenderer id='listCellRenderer' initializer='new DecoratorProviderListCellRenderer(new DemoDecoratorProvider())'/> + <DemoDataProvider id='dataProvider'/> + <String id='addToolTip' javaBean='"Add"'/> <String id='removeToolTip' javaBean='"Remove"'/> <script><![CDATA[ -void $afterCompleteSetup() { - - List<String> from = Lists.newArrayList(); - from.add("Value 1"); - from.add("Value 2"); - from.add("Value 3"); - from.add("Value 4"); - from.add("Value 5"); - List<String> to = Lists.newArrayList(); - to.add("Other"); - - comboToListSelector.init(from, to); - listToListSelector.init(from, to); +public List<People> getSelectedActors() { + List<People> actors = Lists.newArrayList(); + for (Movie m : (List<Movie>)comboToListSelector.getSelectedValues()) { + List<People> actorsToAdd = m.getActors(); + actors.removeAll(actorsToAdd); + actors.addAll(actorsToAdd); + } + return actors; } ]]></script> - <Table fill='both'> + <Table fill='both' constraints='BorderLayout.CENTER'> <row> <cell fill='horizontal' weightx='1'> <JLabel text='jaxxdemo.listSelector.addToolTipLbl'/> @@ -71,18 +74,27 @@ </row> <row> <cell fill='horizontal' weightx='1' columns='2'> - <ComboToListSelector id='comboToListSelector' - genericType='String' - addToolTip='{getAddToolTip()}' - removeToolTip='{getRemoveToolTip()}'/> + <JScrollPane> + <ComboToListSelector id='comboToListSelector' + genericType='Movie' + addToolTip='{getAddToolTip()}' + removeToolTip='{getRemoveToolTip()}' + values='{dataProvider.getMovies()}' + renderer='{listCellRenderer}' + onIntervalAdded='listToListSelector.setValues(getSelectedActors())' + onIntervalRemoved='listToListSelector.setValues(getSelectedActors())'/> + </JScrollPane> </cell> </row> <row> <cell fill='horizontal' weightx='1' columns='2'> - <ListToListSelector id='listToListSelector' - genericType='String' - addToolTip='{getAddToolTip()}' - removeToolTip='{getRemoveToolTip()}'/> + <JScrollPane> + <ListToListSelector id='listToListSelector' + genericType='People' + addToolTip='{getAddToolTip()}' + removeToolTip='{getRemoveToolTip()}' + renderer='{listCellRenderer}'/> + </JScrollPane> </cell> </row> </Table> Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/NumberEditorDemo.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/NumberEditorDemo.jaxx 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/NumberEditorDemo.jaxx 2012-06-29 09:31:03 UTC (rev 2355) @@ -79,15 +79,12 @@ selected='false'/> <JPanel border='{new TitledBorder(_("jaxxdemo.numbereditor.numberPattern.configuration"))}' - layout='{new GridLayout(1,0)}'> <JTextField id='numberPattern' text='{"\\d{0,3}"}'/> <JButton id='applyNumberPattern' text='jaxxdemo.numbereditor.applyNumberPattern' onActionPerformed='changeNumberPattern();'/> </JPanel> - - </JPanel> </cell> </row> Copied: trunk/jaxx-demo/src/main/java/jaxx/demo/entities/DemoDataProvider.java (from rev 2351, trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemoDataProvider.java) =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/entities/DemoDataProvider.java (rev 0) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/entities/DemoDataProvider.java 2012-06-29 09:31:03 UTC (rev 2355) @@ -0,0 +1,112 @@ +/* + * #%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.entities; + +import jaxx.runtime.swing.nav.NavDataProvider; +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 DemoDataProvider implements NavDataProvider { + + /** Logger */ + static private final Log log = LogFactory.getLog(DemoDataProvider.class); + + protected Map<String, Movie> movies; + + protected Map<String, People> peoples; + + public DemoDataProvider() { + + movies = new HashMap<String, Movie>(); + peoples = new HashMap<String, People>(); + + if (log.isDebugEnabled()) { + log.debug("for " + this); + } + People a = new People("0", "Jack", "Black", 35, "/jaxx/demo/images/jack.jpg"); + People a2 = new People("1", "Héctor", "Jiménez", 28, "/jaxx/demo/images/hector.jpg"); + People a3 = new People("2", "Ana", "de la Reguera", 34, "/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) { + + if (log.isDebugEnabled()) { + log.debug("Get people for movie " + moviesId); + } + + return movies.get(moviesId).getActors(); + } +} Property changes on: trunk/jaxx-demo/src/main/java/jaxx/demo/entities/DemoDataProvider.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemo.jaxx =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemo.jaxx 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemo.jaxx 2012-06-29 09:31:03 UTC (rev 2355) @@ -27,13 +27,13 @@ <import> jaxx.demo.feature.nav.tree.NavDemoTreeHelper jaxx.demo.feature.nav.treetable.NavDemoTreeTableHelper - org.jdesktop.swingx.JXTreeTable + jaxx.demo.entities.DemoDataProvider </import> <CardLayout2 id='contentLayout'/> - <NavDemoDataProvider id='dataProvider'/> + <DemoDataProvider id='dataProvider'/> <NavDemoTreeHelper id='treeHelper' constructorParams='getDataProvider()'/> @@ -94,6 +94,7 @@ font-size='11' rootVisible='false' showsRootHandles='false' + columnControlVisible='true' treeTableModel='{treeTableHelper.createModel()}'/> </JScrollPane> Deleted: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemoDataProvider.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemoDataProvider.java 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemoDataProvider.java 2012-06-29 09:31:03 UTC (rev 2355) @@ -1,114 +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.nav; - -import jaxx.demo.entities.Movie; -import jaxx.demo.entities.People; -import jaxx.runtime.swing.nav.NavDataProvider; -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 NavDemoDataProvider implements NavDataProvider { - - /** Logger */ - static private final Log log = LogFactory.getLog(NavDemoDataProvider.class); - - protected Map<String, Movie> movies; - - protected Map<String, People> peoples; - - public NavDemoDataProvider() { - - movies = new HashMap<String, Movie>(); - peoples = new HashMap<String, People>(); - - if (log.isDebugEnabled()) { - log.debug("for " + this); - } - People a = new People("0", "Jack", "Black", 35, "/jaxx/demo/images/jack.jpg"); - People a2 = new People("1", "Héctor", "Jiménez", 28, "/jaxx/demo/images/hector.jpg"); - People a3 = new People("2", "Ana", "de la Reguera", 34, "/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) { - - if (log.isDebugEnabled()) { - log.debug("Get people for movie " + moviesId); - } - - return movies.get(moviesId).getActors(); - } -} Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemoHandler.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemoHandler.java 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/NavDemoHandler.java 2012-06-29 09:31:03 UTC (rev 2355) @@ -25,6 +25,7 @@ package jaxx.demo.feature.nav; import jaxx.demo.entities.AbstractDemoBean; +import jaxx.demo.entities.DemoDataProvider; import jaxx.demo.entities.Movie; import jaxx.demo.entities.People; import jaxx.demo.feature.nav.content.AbstractContentUI; @@ -205,7 +206,7 @@ String id = demoNode.getId(); // If it's category demoNode - NavDemoDataProvider provider = ui.getDataProvider(); + DemoDataProvider provider = ui.getDataProvider(); if (editType.equals(String.class)) { // Actors categorie demoNode Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/ActorsTreeNodeLoador.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/ActorsTreeNodeLoador.java 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/ActorsTreeNodeLoador.java 2012-06-29 09:31:03 UTC (rev 2355) @@ -25,8 +25,8 @@ package jaxx.demo.feature.nav.tree; +import jaxx.demo.entities.DemoDataProvider; import jaxx.demo.entities.People; -import jaxx.demo.feature.nav.NavDemoDataProvider; import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.tree.NavTreeNodeChildLoador; @@ -50,7 +50,7 @@ NavDataProvider dataProvider) throws Exception { // Get people for parentId - NavDemoDataProvider provider = (NavDemoDataProvider) dataProvider; + DemoDataProvider provider = (DemoDataProvider) dataProvider; // If its not root if (moviesId != null) { Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/MoviesTreeNodeLoador.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/MoviesTreeNodeLoador.java 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/MoviesTreeNodeLoador.java 2012-06-29 09:31:03 UTC (rev 2355) @@ -25,8 +25,8 @@ package jaxx.demo.feature.nav.tree; +import jaxx.demo.entities.DemoDataProvider; import jaxx.demo.entities.Movie; -import jaxx.demo.feature.nav.NavDemoDataProvider; import jaxx.demo.feature.nav.NavDemoHandler; import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.NavHelper; @@ -60,7 +60,7 @@ String parentId, NavDataProvider dataProvider) throws Exception { - NavDemoDataProvider provider = (NavDemoDataProvider) dataProvider; + DemoDataProvider provider = (DemoDataProvider) dataProvider; // Return all movies return provider.getMovies(); Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/NavDemoTreeCellRenderer.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/NavDemoTreeCellRenderer.java 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/NavDemoTreeCellRenderer.java 2012-06-29 09:31:03 UTC (rev 2355) @@ -25,9 +25,9 @@ package jaxx.demo.feature.nav.tree; +import jaxx.demo.entities.DemoDataProvider; import jaxx.demo.entities.Movie; import jaxx.demo.entities.People; -import jaxx.demo.feature.nav.NavDemoDataProvider; import jaxx.runtime.swing.nav.tree.AbstractNavTreeCellRenderer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -51,14 +51,14 @@ protected DecoratorProvider decoratorProvider; public NavDemoTreeCellRenderer(DecoratorProvider decoratorProvider, - NavDemoDataProvider provider) { + DemoDataProvider provider) { setDataProvider(provider); this.decoratorProvider = decoratorProvider; } @Override - public NavDemoDataProvider getDataProvider() { - return (NavDemoDataProvider) super.getDataProvider(); + public DemoDataProvider getDataProvider() { + return (DemoDataProvider) super.getDataProvider(); } @Override Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/NavDemoTreeHelper.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/NavDemoTreeHelper.java 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/tree/NavDemoTreeHelper.java 2012-06-29 09:31:03 UTC (rev 2355) @@ -25,7 +25,7 @@ package jaxx.demo.feature.nav.tree; -import jaxx.demo.feature.nav.NavDemoDataProvider; +import jaxx.demo.entities.DemoDataProvider; import jaxx.demo.feature.nav.NavDemoHandler; import jaxx.runtime.swing.nav.tree.NavTreeHelper; @@ -37,13 +37,13 @@ */ public class NavDemoTreeHelper extends NavTreeHelper<NavDemoTreeNode> { - public NavDemoTreeHelper(NavDemoDataProvider provider) { + public NavDemoTreeHelper(DemoDataProvider provider) { setDataProvider(provider); } @Override - public NavDemoDataProvider getDataProvider() { - return (NavDemoDataProvider) super.getDataProvider(); + public DemoDataProvider getDataProvider() { + return (DemoDataProvider) super.getDataProvider(); } public DefaultTreeModel createModel() { Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/ActorsTreeTableNodeLoador.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/ActorsTreeTableNodeLoador.java 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/ActorsTreeTableNodeLoador.java 2012-06-29 09:31:03 UTC (rev 2355) @@ -25,8 +25,8 @@ package jaxx.demo.feature.nav.treetable; +import jaxx.demo.entities.DemoDataProvider; import jaxx.demo.entities.People; -import jaxx.demo.feature.nav.NavDemoDataProvider; import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.treetable.NavTreeTableNodeChildLoador; @@ -50,7 +50,7 @@ NavDataProvider dataProvider) throws Exception { // Get people for parentId - NavDemoDataProvider provider = (NavDemoDataProvider) dataProvider; + DemoDataProvider provider = (DemoDataProvider) dataProvider; // If its not root if (moviesId != null) { Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/MoviesTreeTableNodeLoador.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/MoviesTreeTableNodeLoador.java 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/MoviesTreeTableNodeLoador.java 2012-06-29 09:31:03 UTC (rev 2355) @@ -25,8 +25,8 @@ package jaxx.demo.feature.nav.treetable; +import jaxx.demo.entities.DemoDataProvider; import jaxx.demo.entities.Movie; -import jaxx.demo.feature.nav.NavDemoDataProvider; import jaxx.demo.feature.nav.NavDemoHandler; import jaxx.runtime.swing.nav.NavDataProvider; import jaxx.runtime.swing.nav.NavHelper; @@ -60,7 +60,7 @@ String parentId, NavDataProvider dataProvider) throws Exception { - NavDemoDataProvider provider = (NavDemoDataProvider) dataProvider; + DemoDataProvider provider = (DemoDataProvider) dataProvider; // Return all movies return provider.getMovies(); Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/NavDemoTreeTableHelper.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/NavDemoTreeTableHelper.java 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/NavDemoTreeTableHelper.java 2012-06-29 09:31:03 UTC (rev 2355) @@ -25,7 +25,7 @@ package jaxx.demo.feature.nav.treetable; -import jaxx.demo.feature.nav.NavDemoDataProvider; +import jaxx.demo.entities.DemoDataProvider; import jaxx.demo.feature.nav.NavDemoHandler; import jaxx.runtime.swing.nav.treetable.NavTreeTableHelper; import jaxx.runtime.swing.nav.treetable.NavTreeTableModel; @@ -36,13 +36,13 @@ */ public class NavDemoTreeTableHelper extends NavTreeTableHelper<NavDemoTreeTableNode> { - public NavDemoTreeTableHelper(NavDemoDataProvider provider) { + public NavDemoTreeTableHelper(DemoDataProvider provider) { setDataProvider(provider); } @Override - public NavDemoDataProvider getDataProvider() { - return (NavDemoDataProvider) super.getDataProvider(); + public DemoDataProvider getDataProvider() { + return (DemoDataProvider) super.getDataProvider(); } Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/NavDemoTreeTableModel.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/NavDemoTreeTableModel.java 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/feature/nav/treetable/NavDemoTreeTableModel.java 2012-06-29 09:31:03 UTC (rev 2355) @@ -24,9 +24,9 @@ */ package jaxx.demo.feature.nav.treetable; +import jaxx.demo.entities.DemoDataProvider; import jaxx.demo.entities.Movie; import jaxx.demo.entities.People; -import jaxx.demo.feature.nav.NavDemoDataProvider; import jaxx.runtime.swing.nav.NavNode; import jaxx.runtime.swing.nav.treetable.NavTreeTableModel; @@ -38,9 +38,9 @@ */ public class NavDemoTreeTableModel extends NavTreeTableModel.MyDefaultTreeTableModel { - protected NavDemoDataProvider dataProvider; + protected DemoDataProvider dataProvider; - public NavDemoTreeTableModel(NavDemoDataProvider dataProvider) { + public NavDemoTreeTableModel(DemoDataProvider dataProvider) { this.dataProvider = dataProvider; } Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/tree/DemoCellRenderer.java =================================================================== --- trunk/jaxx-demo/src/main/java/jaxx/demo/tree/DemoCellRenderer.java 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-demo/src/main/java/jaxx/demo/tree/DemoCellRenderer.java 2012-06-29 09:31:03 UTC (rev 2355) @@ -25,7 +25,6 @@ package jaxx.demo.tree; -import jaxx.demo.feature.nav.NavDemoDataProvider; import jaxx.runtime.swing.nav.tree.AbstractNavTreeCellRenderer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -47,13 +46,13 @@ LogFactory.getLog(DemoCellRenderer.class); - public DemoCellRenderer(DemoDataProvider provider) { + public DemoCellRenderer(jaxx.demo.tree.DemoDataProvider provider) { setDataProvider(provider); } @Override - public NavDemoDataProvider getDataProvider() { - return (NavDemoDataProvider) super.getDataProvider(); + public jaxx.demo.entities.DemoDataProvider getDataProvider() { + return (jaxx.demo.entities.DemoDataProvider) super.getDataProvider(); } @Override Modified: trunk/jaxx-runtime/pom.xml =================================================================== --- trunk/jaxx-runtime/pom.xml 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-runtime/pom.xml 2012-06-29 09:31:03 UTC (rev 2355) @@ -67,6 +67,11 @@ <artifactId>commons-beanutils</artifactId> </dependency> + <dependency> + <groupId>com.google.guava</groupId> + <artifactId>guava</artifactId> + </dependency> + <!-- pour utiliser javaHelp --> <dependency> <groupId>javax.help</groupId> Added: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/GenericListModel.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/GenericListModel.java (rev 0) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/model/GenericListModel.java 2012-06-29 09:31:03 UTC (rev 2355) @@ -0,0 +1,246 @@ +/* + * #%L + * JAXX :: Widgets + * $Id:$ + * $HeadURL:$ + * %% + * Copyright (C) 2008 - 2012 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.runtime.swing.model; + +import com.google.common.collect.Lists; +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; +import java.util.List; +import javax.swing.ComboBoxModel; +import javax.swing.DefaultListModel; +import javax.swing.DefaultListSelectionModel; +import javax.swing.event.ListDataListener; + +/** + * @author sletellier <letellier@codelutin.com> + */ +public class GenericListModel<B> extends DefaultListSelectionModel implements ComboBoxModel { + + protected final PropertyChangeSupport pcs = new PropertyChangeSupport(this); + + public static final String PROPERTY_SELECTED_VALUE = "selectedValues"; + + protected DefaultListModel delegate = new DefaultListModel(); + + protected List<B> selectedValues; + + public GenericListModel() { + this.selectedValues = Lists.newArrayList(); + } + + public void setElements(List<B> values) { + clearSelection(); + clearElements(); + for (B value : values) { + addElement(value); + } + } + + public void clearElements() { + delegate.clear(); + } + + public List<B> getElements() { + int size = delegate.getSize(); + List<B> result = Lists.newArrayList(); + for (int i=0;i<size;i++) { + result.add((B) delegate.get(i)); + } + return result; + } + + public void addElement(int index, B valueToAdd) { + delegate.add(index, valueToAdd); + } + + public void addElement(B valueToAdd) { + delegate.addElement(valueToAdd); + } + + public void addElements(List<B> valuesToAdd) { + for (B value : valuesToAdd) { + addElement(value); + } + } + + public List<B> getSelectedValues() { + return Lists.newArrayList(selectedValues); + } + + public void removeElements(List<B> values) { + for (B value : values) { + delegate.removeElement(value); + } + unSelectItems(values); + } + + protected void unSelectItems(List<B> values) { + List<B> oldValue = Lists.newArrayList(selectedValues); + for (B value : values) { + int index = selectedValues.indexOf(value); + removeSelectionIntervalWithoutFire(index, index); + } + firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); + } + + protected void unSelectItem(B value) { + List<B> oldValue = Lists.newArrayList(selectedValues); + int index = selectedValues.indexOf(value); + removeSelectionIntervalWithoutFire(index, index); + firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); + } + + public void addSelectedItem(B toSelect) { + List<B> oldValue = Lists.newArrayList(selectedValues); + selectedValues.add(toSelect); + int index = selectedValues.indexOf(toSelect); + super.addSelectionInterval(index, index); + firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); + } + + public boolean hasSelectedIndex() { + return !selectedValues.isEmpty(); + } + + @Override + public void addSelectionInterval(int index0, int index1) { + List<B> oldValue = Lists.newArrayList(selectedValues); + addSelectionIntervalWithFire(index0, index1); + super.addSelectionInterval(index0, index1); + firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); + } + + @Override + public void setSelectionInterval(int index0, int index1) { + List<B> oldValue = Lists.newArrayList(selectedValues); + selectedValues.clear(); + addSelectionIntervalWithFire(index0, index1); + super.setSelectionInterval(index0, index1); + firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); + } + + @Override + public void removeSelectionInterval(int index0, int index1) { + List<B> oldValue = Lists.newArrayList(selectedValues); + removeSelectionIntervalWithoutFire(index0, index1); + firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); + } + + protected void removeSelectionIntervalWithoutFire(int index0, int index1) { + if (index0 > index1) { + int tmp = index1; + index1 = index0; + index0 = tmp; + } + for (int i=index0;i<=index1;i++) { + if (selectedValues.size() > i && i != -1) { + selectedValues.remove(i); + } + } + super.removeSelectionInterval(index0, index1); + } + + protected void addSelectionIntervalWithFire(int index0, int index1) { + if (index0 > index1) { + int tmp = index1; + index1 = index0; + index0 = tmp; + } + for (int i=index0;i<=index1;i++) { + + if (delegate.size() > i && i != -1) { + B value = (B)delegate.getElementAt(i); + selectedValues.add(value); + } + } + } + + @Override + public void clearSelection() { + List<B> oldValue = Lists.newArrayList(selectedValues); + selectedValues.clear(); + super.clearSelection(); + firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); + } + + @Override + public int getSelectionMode() { + return MULTIPLE_INTERVAL_SELECTION; + } + + @Override + public void setSelectedItem(Object anItem) { + List<B> oldValue = this.selectedValues; + selectedValues = Lists.newArrayList((B)anItem); + firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); + } + + @Override + public Object getSelectedItem() { + if (selectedValues.isEmpty()) { + return null; + } + return selectedValues.get(0); + } + + @Override + public int getSize() { + return delegate.size(); + } + + @Override + public Object getElementAt(int index) { + return delegate.get(index); + } + + @Override + public void addListDataListener(ListDataListener l) { + delegate.addListDataListener(l); + } + + @Override + public void removeListDataListener(ListDataListener l) { + delegate.removeListDataListener(l); + } + + public void addPropertyChangeListener(PropertyChangeListener listener) { + pcs.addPropertyChangeListener(listener); + } + + public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { + pcs.addPropertyChangeListener(propertyName, listener); + } + + public void removePropertyChangeListener(PropertyChangeListener listener) { + pcs.removePropertyChangeListener(listener); + } + + public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { + pcs.removePropertyChangeListener(propertyName, listener); + } + + protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) { + pcs.firePropertyChange(propertyName, oldValue, newValue); + } +} \ No newline at end of file Deleted: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/GenericListModel.java =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/GenericListModel.java 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/GenericListModel.java 2012-06-29 09:31:03 UTC (rev 2355) @@ -1,227 +0,0 @@ -/* - * #%L - * JAXX :: Widgets - * $Id:$ - * $HeadURL:$ - * %% - * Copyright (C) 2008 - 2012 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.runtime.swing; - -import com.google.common.collect.Lists; -import java.beans.PropertyChangeListener; -import java.beans.PropertyChangeSupport; -import java.util.List; -import javax.swing.ComboBoxModel; -import javax.swing.DefaultListModel; -import javax.swing.DefaultListSelectionModel; -import javax.swing.event.ListDataListener; - -/** - * @author sletellier <letellier@codelutin.com> - */ -public class GenericListModel<B> extends DefaultListSelectionModel implements ComboBoxModel { - - protected final PropertyChangeSupport pcs = new PropertyChangeSupport(this); - - public static final String PROPERTY_SELECTED_VALUE = "selectedValues"; - - protected DefaultListModel delegate = new DefaultListModel(); - - protected List<B> selectedValues; - - public GenericListModel() { - this.selectedValues = Lists.newArrayList(); - } - - public void setElements(List<B> values) { - for (B value : values) { - addElement(value); - } - } - - public List<B> getElements() { - int size = delegate.getSize(); - List<B> result = Lists.newArrayList(); - for (int i=0;i<size;i++) { - result.add((B) delegate.get(i)); - } - return result; - } - - public void addElement(int index, B valueToAdd) { - delegate.add(index, valueToAdd); - } - - public void addElement(B valueToAdd) { - delegate.addElement(valueToAdd); - } - - public void addElements(List<B> valuesToAdd) { - for (B value : valuesToAdd) { - addElement(value); - } - } - - public List<B> getSelectedValues() { - return Lists.newArrayList(selectedValues); - } - - public void removeElements(List<B> values) { - for (B value : values) { - delegate.removeElement(value); - } - unSelectItems(values); - } - - protected void unSelectItems(List<B> values) { - List<B> oldValue = Lists.newArrayList(selectedValues); - selectedValues.removeAll(values); - firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); - } - - protected void unSelectItem(B value) { - List<B> oldValue = Lists.newArrayList(selectedValues); - selectedValues.remove(value); - firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); - } - - public void addSelectedItem(B toSelect) { - List<B> oldValue = Lists.newArrayList(selectedValues); - selectedValues.add(toSelect); - int index = selectedValues.indexOf(toSelect); - super.addSelectionInterval(index, index); - firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); - } - - public boolean hasSelectedIndex() { - return !selectedValues.isEmpty(); - } - - @Override - public void addSelectionInterval(int index0, int index1) { - List<B> oldValue = Lists.newArrayList(selectedValues); - addSelectionIntervalWithFire(index0, index1); - super.addSelectionInterval(index0, index1); - firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); - } - - @Override - public void setSelectionInterval(int index0, int index1) { - List<B> oldValue = Lists.newArrayList(selectedValues); - selectedValues.clear(); - addSelectionIntervalWithFire(index0, index1); - super.setSelectionInterval(index0, index1); - firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); - } - - @Override - public void removeSelectionInterval(int index0, int index1) { - List<B> oldValue = Lists.newArrayList(selectedValues); - if (index0 > index1) { - int tmp = index1; - index1 = index0; - index0 = tmp; - } - for (int i=index0;i<=index1;i++) { - selectedValues.remove(i); - } - super.removeSelectionInterval(index0, index1); - firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); - } - - protected void addSelectionIntervalWithFire(int index0, int index1) { - if (index0 > index1) { - int tmp = index1; - index1 = index0; - index0 = tmp; - } - for (int i=index0;i<=index1;i++) { - B value = (B)delegate.getElementAt(i); - selectedValues.add(value); - } - } - - @Override - public void clearSelection() { - List<B> oldValue = Lists.newArrayList(selectedValues); - selectedValues.clear(); - super.clearSelection(); - firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); - } - - @Override - public int getSelectionMode() { - return MULTIPLE_INTERVAL_SELECTION; - } - - @Override - public void setSelectedItem(Object anItem) { - List<B> oldValue = this.selectedValues; - selectedValues = Lists.newArrayList((B)anItem); - firePropertyChange(PROPERTY_SELECTED_VALUE, oldValue, selectedValues); - } - - @Override - public Object getSelectedItem() { - if (selectedValues.isEmpty()) { - return null; - } - return selectedValues.get(0); - } - - @Override - public int getSize() { - return delegate.size(); - } - - @Override - public Object getElementAt(int index) { - return delegate.get(index); - } - - @Override - public void addListDataListener(ListDataListener l) { - delegate.addListDataListener(l); - } - - @Override - public void removeListDataListener(ListDataListener l) { - delegate.removeListDataListener(l); - } - - public void addPropertyChangeListener(PropertyChangeListener listener) { - pcs.addPropertyChangeListener(listener); - } - - public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { - pcs.addPropertyChangeListener(propertyName, listener); - } - - public void removePropertyChangeListener(PropertyChangeListener listener) { - pcs.removePropertyChangeListener(listener); - } - - public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { - pcs.removePropertyChangeListener(propertyName, listener); - } - - protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) { - pcs.firePropertyChange(propertyName, oldValue, newValue); - } -} \ No newline at end of file Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelector.jaxx =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelector.jaxx 2012-06-29 08:55:51 UTC (rev 2354) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelector.jaxx 2012-06-29 09:31:03 UTC (rev 2355) @@ -25,12 +25,15 @@ <Table insets='0' genericType='B' abstract='true'> <import> + com.google.common.collect.Lists java.util.List javax.swing.DefaultComboBoxModel javax.swing.DefaultListModel javax.swing.DefaultListCellRenderer java.beans.PropertyChangeEvent java.beans.PropertyChangeListener + javax.swing.event.ListDataListener + jaxx.runtime.swing.model.GenericListModel </import> <String id='addToolTip' javaBean='"+"'/> @@ -40,12 +43,12 @@ <GenericListModel id='fromModel' genericType='B'/> + <GenericListModel id='toModel' + genericType='B'/> + <Boolean id='addEnabled' javaBean='Boolean.FALSE'/> <Boolean id='removeEnabled' javaBean='Boolean.FALSE'/> - <GenericListModel id='toModel' - genericType='B'/> - <ListCellRenderer id='renderer' javaBean='new DefaultListCellRenderer()'/> <script><![CDATA[ @@ -65,29 +68,22 @@ }); } -/** - * @return the datas from. - */ -public List<B> getFromDatas() { +public void setValues(List<B> values) { + toModel.removeElements(values); + fromModel.setElements(values); +} + +public List<B> getValues() { return fromModel.getElements(); } -/** - * @return the data to. - */ -public List<B> getToDatas() { - return toModel.getElements(); +public void setSelectedValues(List<B> selectedValues) { + fromModel.removeElements(selectedValues); + toModel.setElements(selectedValues); } -/** - * Initialize the component. - * - * @param from datas to set - * @param to datas to set - */ -public void init(List<B> from, List<B> to) { - fromModel.setElements(from); - toModel.setElements(to); +public List<B> getSelectedValues() { + return toModel.getElements(); } public void add() { @@ -104,6 +100,13 @@ to.addElements(selectedValues); } +public void addListDataListener(ListDataListener l) { + toModel.addListDataListener(l); +} + +public void removeListDataListener(ListDataListener l) { + toModel.removeListDataListener(l); +} ]]> </script>
participants (1)
-
sletellier@users.nuiton.org