From sletellier@users.nuiton.org Mon Jul 2 17:05:33 2012 From: sletellier@users.nuiton.org To: jaxx-commits@list.nuiton.org Subject: [Jaxx-commits] r2367 - trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing Date: Mon, 02 Jul 2012 17:05:33 +0200 Message-ID: <20120702150533.BFE2F158BF@nuiton.codelutin.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============8765808585291236081==" --===============8765808585291236081== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: sletellier Date: 2012-07-02 17:05:33 +0200 (Mon, 02 Jul 2012) New Revision: 2367 Url: http://nuiton.org/repositories/revision/jaxx/2367 Log: Allow to set own ListSelectorModel Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ComboToListSelector.ja= xx trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelector.jaxx trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelectorModel.java trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListToListSelector.jaxx Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ComboToListSele= ctor.jaxx =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ComboToListSelector.j= axx 2012-07-02 14:09:34 UTC (rev 2366) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ComboToListSelector.j= axx 2012-07-02 15:05:33 UTC (rev 2367) @@ -22,10 +22,39 @@ #L% --> + + + java.util.Set + java.beans.PropertyChangeEvent + java.beans.PropertyChangeListener + + + + + + @@ -33,14 +62,14 @@ + enabled=3D'{model.isAddEnabled()}' + onActionPerformed=3D'model.add()'/> =20 + enabled=3D'{model.isRemoveEnabled()}' + onActionPerformed=3D'model.remove()'/> =20 @@ -49,10 +78,10 @@ Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelector.ja= xx =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelector.jaxx 201= 2-07-02 14:09:34 UTC (rev 2366) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelector.jaxx 201= 2-07-02 15:05:33 UTC (rev 2367) @@ -36,6 +36,7 @@ jaxx.runtime.swing.model.GenericListModel jaxx.runtime.swing.model.GenericListListener java.util.Collection + java.util.Set =20 @@ -46,92 +47,32 @@ genericType=3D'B' javaBean=3D'null'/> =20 - - - - - - - =20 Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelectorMod= el.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelectorModel.jav= a 2012-07-02 14:09:34 UTC (rev 2366) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListSelectorModel.jav= a 2012-07-02 15:05:33 UTC (rev 2367) @@ -23,47 +23,144 @@ */ package jaxx.runtime.swing; =20 +import com.google.common.collect.Lists; +import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.util.Collection; +import jaxx.runtime.swing.model.GenericListListener; +import jaxx.runtime.swing.model.GenericListModel; =20 /** * @author sletellier */ -public abstract class ListSelectorModel { +public class ListSelectorModel { =20 protected final PropertyChangeSupport pcs =3D new PropertyChangeSupport(= this); =20 + public static final String PROPERTY_ADD_ENABLED =3D "addEnabled"; + public static final String PROPERTY_REMOVE_ENABLED =3D "removeEnabled"; + public static final String PROPERTY_SELECTED_VALUES =3D "selectedValues"; public static final String PROPERTY_VALUES =3D "values"; =20 - protected Collection values; - protected Collection selectedValues; + protected boolean addEnabled; + protected boolean removeEnabled; =20 + protected GenericListModel fromModel; + protected GenericListModel toModel; + + protected ListSelectorModel() { + + fromModel =3D new GenericListModel(); + fromModel.addPropertyChangeListener(GenericListModel.PROPERTY_SELECT= ED_VALUE, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + setAddEnabled(fromModel.hasSelectedIndex()); + } + }); + + toModel =3D new GenericListModel(); + toModel.addPropertyChangeListener(GenericListModel.PROPERTY_SELECTED= _VALUE, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + setRemoveEnabled(toModel.hasSelectedIndex()); + } + }); + } + + public boolean isAddEnabled() { + return addEnabled; + } + + public void setAddEnabled(boolean addEnabled) { + boolean oldValue =3D isAddEnabled(); + this.addEnabled =3D addEnabled; + firePropertyChange(PROPERTY_ADD_ENABLED, oldValue, addEnabled); + } + + public boolean isRemoveEnabled() { + return removeEnabled; + } + + public void setRemoveEnabled(boolean removeEnabled) { + boolean oldValue =3D isRemoveEnabled(); + this.removeEnabled =3D removeEnabled; + firePropertyChange(PROPERTY_REMOVE_ENABLED, oldValue, removeEnabled); + } + + public GenericListModel getFromModel() { + return fromModel; + } + + public GenericListModel getToModel() { + return toModel; + } + public Collection getValues() { - return values; + return fromModel.getElements(); } =20 public void setValues(Collection values) { Collection oldValues =3D getValues(); - this.values =3D values; + toModel.clearElements(); + fromModel.setElements(values); firePropertyChange(PROPERTY_VALUES, oldValues, values); } =20 + public void addValues(Collection values) { + Collection oldValues =3D getValues(); + toModel.removeElements(values); + fromModel.removeElements(values); + fromModel.addElements(values); + firePropertyChange(PROPERTY_VALUES, oldValues, values); + } + + public void removeValues(Collection values) { + Collection oldValues =3D getValues(); + toModel.removeElements(values); + fromModel.removeElements(values); + firePropertyChange(PROPERTY_VALUES, oldValues, values); + } + public Collection getSelectedValues() { - return selectedValues; + return toModel.getElements(); } =20 public void setSelectedValues(Collection selectedValues) { Collection oldValue =3D getSelectedValues(); - this.selectedValues =3D selectedValues; + fromModel.removeElements(selectedValues); + toModel.removeElements(selectedValues); + toModel.setElements(selectedValues); firePropertyChange(PROPERTY_SELECTED_VALUES, oldValue, selectedValue= s); } =20 - public abstract void add(Collection values); + public void add() { + Collection oldValues =3D getValues(); + Collection oldSelectedValue =3D getSelectedValues(); + moveSelect(fromModel, toModel); + firePropertyChange(PROPERTY_VALUES, oldValues, getValues()); + firePropertyChange(PROPERTY_SELECTED_VALUES, oldSelectedValue, getSe= lectedValues()); + } =20 - public abstract void remove(Collection values); + public void remove() { + moveSelect(toModel, fromModel); + } =20 + protected void moveSelect(GenericListModel from, GenericListModel = to) { + Collection selectedValues =3D Lists.newArrayList(from.getSelected= Values()); + from.removeElements(selectedValues); + to.addElements(selectedValues); + } + + public void addGenericListListener(GenericListListener l) { + toModel.addGenericListListener(l); + } + + public void removeGenericListListener(GenericListListener l) { + toModel.removeGenericListListener(l); + } + public void addPropertyChangeListener(PropertyChangeListener listener) { pcs.addPropertyChangeListener(listener); } Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListToListSelec= tor.jaxx =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListToListSelector.ja= xx 2012-07-02 14:09:34 UTC (rev 2366) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ListToListSelector.ja= xx 2012-07-02 15:05:33 UTC (rev 2367) @@ -24,14 +24,38 @@ javax.swing.SwingConstants + java.util.Set + java.beans.PropertyChangeEvent + java.beans.PropertyChangeListener =20 + + + @@ -41,22 +65,22 @@ + enabled=3D'{model.isAddEnabled()}' + onActionPerformed=3D'model.add()'/> =20 + enabled=3D'{model.isRemoveEnabled()}' + onActionPerformed=3D'model.remove()'/> =20 --===============8765808585291236081==--