Author: kmorin Date: 2013-05-30 15:07:44 +0200 (Thu, 30 May 2013) New Revision: 2680 Url: http://nuiton.org/projects/jaxx/repository/revisions/2680 Log: fixes #2711 [Swing session] create a state for the BeanDoubleList Added: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/session/BeanDoubleListState.java Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleListHandler.java Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleListHandler.java =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleListHandler.java 2013-05-30 12:36:46 UTC (rev 2679) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanDoubleListHandler.java 2013-05-30 13:07:44 UTC (rev 2680) @@ -37,10 +37,7 @@ import org.nuiton.util.decorator.JXPathDecorator; import org.nuiton.util.decorator.MultiJXPathDecorator; -import javax.swing.JComponent; -import javax.swing.JList; -import javax.swing.JPopupMenu; -import javax.swing.ListSelectionModel; +import javax.swing.*; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.event.ListDataEvent; @@ -237,6 +234,10 @@ if (log.isDebugEnabled()) { log.debug("check state : <" + oldValue + " to " + newValue + ">"); } + AbstractButton button = ui.getIndexes().getButton(newValue); + if (button != null) { + button.setSelected(true); + } updateUI(newValue, ui.isReverseSort()); } Copied: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/session/BeanDoubleListState.java (from rev 2678, trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/session/BeanFilterableComboBoxState.java) =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/session/BeanDoubleListState.java (rev 0) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/session/BeanDoubleListState.java 2013-05-30 13:07:44 UTC (rev 2680) @@ -0,0 +1,68 @@ +package jaxx.runtime.swing.session; + +import jaxx.runtime.swing.editor.bean.BeanDoubleList; +import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; + +/** + * @author kmorin <kmorin@codelutin.com> + * @since 2.5.21 + */ +public class BeanDoubleListState implements State { + + protected int index = 0; + + protected boolean reverseSort = false; + + public BeanDoubleListState() { + } + + public BeanDoubleListState(int index, boolean reverseSort) { + this.index = index; + this.reverseSort = reverseSort; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public boolean isReverseSort() { + return reverseSort; + } + + public void setReverseSort(boolean reverseSort) { + this.reverseSort = reverseSort; + } + + protected BeanDoubleList checkComponent(Object o) { + if (o == null) { + throw new IllegalArgumentException("null component"); + } + if (!(o instanceof BeanDoubleList)) { + throw new IllegalArgumentException("invalid component"); + } + return (BeanDoubleList) o; + } + + @Override + public State getState(Object o) { + BeanDoubleList list = checkComponent(o); + return new BeanDoubleListState(list.getIndex(), list.isReverseSort()); + } + + @Override + public void setState(Object o, State state) { + if (!(state instanceof BeanDoubleListState)) { + throw new IllegalArgumentException("invalid state"); + } + BeanDoubleList list = checkComponent(o); + BeanDoubleListState beanDoubleListState = (BeanDoubleListState) state; + list.setIndex(beanDoubleListState.getIndex()); + list.setReverseSort(beanDoubleListState.isReverseSort()); + } + + +}