Author: tchemit Date: 2013-09-19 12:51:03 +0200 (Thu, 19 Sep 2013) New Revision: 2717 Url: http://nuiton.org/projects/jaxx/repository/revisions/2717 Log: fixes #2850: [BeanComboBox] Add a property to not sort data Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBoxHandler.java trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBox.jaxx trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBoxHandler.java Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx 2013-08-23 13:24:04 UTC (rev 2716) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBox.jaxx 2013-09-19 10:51:03 UTC (rev 2717) @@ -51,6 +51,9 @@ <!-- editable combo property --> <Boolean id='editable' javaBean='true'/> + <!-- sortable combo property --> + <Boolean id='sortable' javaBean='true'/> + <!-- bean property linked state --> <String id='property' javaBean='""'/> Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBoxHandler.java =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBoxHandler.java 2013-08-23 13:24:04 UTC (rev 2716) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanComboBoxHandler.java 2013-09-19 10:51:03 UTC (rev 2717) @@ -353,16 +353,17 @@ } List<O> data = ui.getData(); - try { - // Sort data with the decorator jxpath tokens. - DecoratorUtil.sort(decorator, - data, - index, - reversesort - ); + if (ui.isSortable()) { + try { + // Sort data with the decorator jxpath tokens. + DecoratorUtil.sort(decorator, + data, + index, + reversesort); - } catch (Exception eee) { - log.warn(eee.getMessage(), eee); + } catch (Exception eee) { + log.warn(eee.getMessage(), eee); + } } // reload the model Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBox.jaxx =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBox.jaxx 2013-08-23 13:24:04 UTC (rev 2716) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBox.jaxx 2013-09-19 10:51:03 UTC (rev 2717) @@ -51,6 +51,9 @@ <!-- editable combo property --> <Boolean id='editable' javaBean='true'/> + <!-- sortable combo property --> + <Boolean id='sortable' javaBean='true'/> + <!-- bean property linked state --> <String id='property' javaBean='""'/> Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBoxHandler.java =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBoxHandler.java 2013-08-23 13:24:04 UTC (rev 2716) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanFilterableComboBoxHandler.java 2013-09-19 10:51:03 UTC (rev 2717) @@ -37,7 +37,11 @@ import org.nuiton.decorator.JXPathDecorator; import org.nuiton.decorator.MultiJXPathDecorator; -import javax.swing.*; +import javax.swing.AbstractButton; +import javax.swing.ComboBoxEditor; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JPopupMenu; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.JTextComponent; @@ -423,15 +427,18 @@ } List<O> data = ui.getData(); - try { - // Sort data with the decorator jxpath tokens. - DecoratorUtil.sort(decorator, - data, - index, - reversesort); - } catch (Exception eee) { - log.warn(eee.getMessage(), eee); + if (ui.isSortable()) { + try { + // Sort data with the decorator jxpath tokens. + DecoratorUtil.sort(decorator, + data, + index, + reversesort); + + } catch (Exception eee) { + log.warn(eee.getMessage(), eee); + } } // reload the model