Author: tchemit Date: 2010-09-12 17:55:29 +0200 (Sun, 12 Sep 2010) New Revision: 2088 Url: http://nuiton.org/repositories/revision/jaxx/2088 Log: Evolution #865: Improve BeanListHeader (can reset selection) Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.jaxx trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeaderHandler.java trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanUIUtil.java trunk/jaxx-widgets/src/main/resources/i18n/jaxx-widgets-fr_FR.properties Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.jaxx =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.jaxx 2010-09-11 20:18:14 UTC (rev 2087) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeader.jaxx 2010-09-12 15:55:29 UTC (rev 2088) @@ -103,18 +103,6 @@ handler.init(decorator, data); } -protected void hidePopup() { - if (popup.isVisible()) { - popup.setVisible(false); - } -} - -protected Object updateSort(boolean reverseSort) { - if (reverseSort) { - return sortDown; - } - return sortUp; -} ]]> </script> @@ -125,13 +113,13 @@ constraints='BorderLayout.EAST'> <!-- le boutton pour reinitialiser la valeur sélectionnée --> - - <JButton actionIcon='combobox-reset' + <JButton id='resetSelection' + actionIcon='combobox-reset' toolTipText='beanlist.action.reset.tip' focusable='false' focusPainted='false' visible='{isShowReset()}' - enabled='{isEnabled()}' + enabled='{isEnabled() && getList().getSelectedValue() != null}' onActionPerformed='getList().getSelectionModel().clearSelection()'/> <!-- le boutton pour changer le tri --> Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeaderHandler.java =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeaderHandler.java 2010-09-11 20:18:14 UTC (rev 2087) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanListHeaderHandler.java 2010-09-12 15:55:29 UTC (rev 2088) @@ -62,6 +62,7 @@ /** the decorator of data */ protected MultiJXPathDecorator<O> decorator; + /** flag to mark when handler was init (it can be init only once). */ protected boolean init; private final BeanUIUtil.PopupHandler popupHandler = new BeanUIUtil.PopupHandler() { @@ -94,6 +95,10 @@ } init = true; + // list could have changed and the complex binding is not registred... + ui.removeDataBinding(BeanListHeader.BINDING_RESET_SELECTION_ENABLED); + ui.applyDataBinding(BeanListHeader.BINDING_RESET_SELECTION_ENABLED); + JAXXButtonGroup indexes = ui.getIndexes(); this.decorator = BeanUIUtil.createDecorator(decorator); @@ -190,7 +195,7 @@ ui.getList().setValueIsAdjusting(true); try { - + // reload the model ui.getList().setListData(datas.toArray(new Object[datas.size()])); @@ -219,7 +224,7 @@ } finally { ui.getList().setValueIsAdjusting(false); } - + ui.getList().requestFocus(); } @@ -253,5 +258,11 @@ setIndex(-1, ui.getIndex()); } + if (BeanListHeader.PROPERTY_LIST.equals(propertyName)) { + + // ui list has changed, replace binding + ui.removeDataBinding(BeanListHeader.BINDING_RESET_SELECTION_ENABLED); + ui.applyDataBinding(BeanListHeader.BINDING_RESET_SELECTION_ENABLED); + } } } Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanUIUtil.java =================================================================== --- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanUIUtil.java 2010-09-11 20:18:14 UTC (rev 2087) +++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/bean/BeanUIUtil.java 2010-09-12 15:55:29 UTC (rev 2088) @@ -197,6 +197,14 @@ /** * Creation de l'ui pour modifier le décorateur. * + * @param selectedTip + * @param notSelectedTip + * @param i18nPrefix + * @param title + * @param indexes + * @param popupLabel + * @param sortUp + * @param sortDown * @param decorator le decorateur a utiliser */ protected void preparePopup(String selectedTip, Modified: trunk/jaxx-widgets/src/main/resources/i18n/jaxx-widgets-fr_FR.properties =================================================================== --- trunk/jaxx-widgets/src/main/resources/i18n/jaxx-widgets-fr_FR.properties 2010-09-11 20:18:14 UTC (rev 2087) +++ trunk/jaxx-widgets/src/main/resources/i18n/jaxx-widgets-fr_FR.properties 2010-09-12 15:55:29 UTC (rev 2088) @@ -1,69 +1,69 @@ -aboutframe.about=\u00C0 propos +aboutframe.about=\u00c0 propos aboutframe.license=Licence aboutframe.ok=OK aboutframe.thirdparty=Tierce partie bean.popup.label=Objet '%1$s' -bean.sort.down=Tri d\u00E9croissant -bean.sort.down.tip=Tri d\u00E9croissant actuellement utilis\u00E9 -bean.sort.down.toSelect.tip=Cliquer pour trier selon l'ordre d\u00E9croissant +bean.sort.down=Tri d\u00e9croissant +bean.sort.down.tip=Tri d\u00e9croissant actuellement utilis\u00e9 +bean.sort.down.toSelect.tip=Cliquer pour trier selon l'ordre d\u00e9croissant bean.sort.label=Ordre de tri -bean.sort.off=Cliquer pour activer le tri sur la propri\u00E9t\u00E9 '%1$s' -bean.sort.on=Le tri est effectu\u00E9 sur la propri\u00E9t\u00E9 '%1$s' +bean.sort.off=Cliquer pour activer le tri sur la propri\u00e9t\u00e9 '%1$s' +bean.sort.on=Le tri est effectu\u00e9 sur la propri\u00e9t\u00e9 '%1$s' bean.sort.up=Tri croissant -bean.sort.up.tip=Tri croissant actuellement utilis\u00E9 +bean.sort.up.tip=Tri croissant actuellement utilis\u00e9 bean.sort.up.toSelect.tip=Cliquer pour trier selon l'ordre croissant bean.unknown.type=Objet de type inconnu -beancombobox.action.reset.tip=R\u00E9initialiser la valeur de la liste d\u00E9roulante -beancombobox.action.sort.tip=Modifier le tri de la liste d\u00E9roulante +beancombobox.action.reset.tip=R\u00e9initialiser la valeur de la liste d\u00e9roulante +beancombobox.action.sort.tip=Modifier le tri de la liste d\u00e9roulante beancombobox.popup.title=Modifier le tri -beanlist.action.reset.tip=R\u00E9initialiser la valeur de la liste d\u00E9roulante -beanlist.action.sort.tip=Modifier le tri de la liste d\u00E9roulante +beanlist.action.reset.tip=Supprimer la s\u00e9lection +beanlist.action.sort.tip=Modifier le tri de la liste d\u00e9roulante beanlist.popup.title=Modifier le tri -columnselector.action.tip=S\u00E9lectionner les colonnes +columnselector.action.tip=S\u00e9lectionner les colonnes config.action.quit=Quitter -config.action.quit.tip=Quitter l'\u00E9diteur de configuration +config.action.quit.tip=Quitter l'\u00e9diteur de configuration config.action.reset=Annuler -config.action.reset.tip=Annuler les modifications de cette cat\u00E9gorie +config.action.reset.tip=Annuler les modifications de cette cat\u00e9gorie config.action.save=Enregistrer -config.action.save.tip=Sauver les modifications de cette cat\u00E9gorie +config.action.save.tip=Sauver les modifications de cette cat\u00e9gorie config.choice.cancel=Annuler config.choice.continue=Continuer config.choice.doNotSave=Ne pas enregistrer config.choice.save=Enregistrer -config.defaultValue=Valeur par d\u00E9faut -config.defaultValue.tip=Valeur par d\u00E9faut de l'option +config.defaultValue=Valeur par d\u00e9faut +config.defaultValue.tip=Valeur par d\u00e9faut de l'option config.description=Description -config.detected.callBack=Actions d\u00E9tect\u00E9es pour les options modifi\u00E9es -config.error.category.already.exists=La cat\u00E9gorie de nom '%1$s' existe d\u00E9j\u00E0\! -config.error.category.not.found=La cat\u00E9gorie de nom '%1$s' n'existe pas\! +config.detected.callBack=Actions d\u00e9tect\u00e9es pour les options modifi\u00e9es +config.error.category.already.exists=La cat\u00e9gorie de nom '%1$s' existe d\u00e9j\u00e0\! +config.error.category.not.found=La cat\u00e9gorie de nom '%1$s' n'existe pas\! config.key=Clef config.key.tip=Clef de l'option config.launch.callBack=Lancer -config.launch.callBack.tip=Lancer les actions n\u00E9cessaires -config.message.quit.invalid.category=La cat\u00E9gorie '%1$s' n'est pas valide\! -config.message.quit.valid.and.modified.category=La cat\u00E9gorie '%1$s' poss\u00E8dent des options modifi\u00E9es \: -config.modified=Option modifi\u00E9e (valeur originale \: %1$s) -config.no.option.selected=< Pas d'option s\u00E9lectionn\u00E9e > +config.launch.callBack.tip=Lancer les actions n\u00e9cessaires +config.message.quit.invalid.category=La cat\u00e9gorie '%1$s' n'est pas valide\! +config.message.quit.valid.and.modified.category=La cat\u00e9gorie '%1$s' poss\u00e8dent des options modifi\u00e9es \: +config.modified=Option modifi\u00e9e (valeur originale \: %1$s) +config.no.option.selected=< Pas d'option s\u00e9lectionn\u00e9e > config.option.final=Option non modifiable config.option.label=Option '%1$s' (%2$s) -config.option.modified=Valeur modifi\u00E9e < ancienne valeur \: '%1$s' - nouvelle valeur \: '%2$s' > -config.title=Pr\u00E9f\u00E9rences +config.option.modified=Valeur modifi\u00e9e < ancienne valeur \: '%1$s' - nouvelle valeur \: '%2$s' > +config.title=Pr\u00e9f\u00e9rences config.title.need.confirm=Une confirmation de votre part est requise... -config.unmodifiable=Ne peut pas \u00EAtre modifi\u00E9 +config.unmodifiable=Ne peut pas \u00eatre modifi\u00e9 config.unvalid=Option non valide (valeur originale \: %1$s, type requis \: %2$s) config.value=Valeur config.value.tip=Valeur de l'option errorUI.action.close=Fermer errorUI.message=Une erreur est survenue \! errorUI.title=Erreur... -fontsize.action.default.tip=Retour sur la taille par d\u00E9faut +fontsize.action.default.tip=Retour sur la taille par d\u00e9faut fontsize.action.down.tip=Diminuer la taille de la police fontsize.action.up.tip=Augmenter la taille de la police hidor.hideTip=Cacher hidor.showTip=Voir -i18neditor.empty.locales=< Aucune locale \u00E0 s\u00E9lectionner > +i18neditor.empty.locales=< Aucune locale \u00e0 s\u00e9lectionner > i18neditor.popup.title=Changer de langue -i18neditor.selected=Langue actuellement utilis\u00E9e \: %1$s +i18neditor.selected=Langue actuellement utilis\u00e9e \: %1$s i18neditor.unselected=Pour utiliser cette langue \: %1$s listSelector.hideList=Cacher la liste listSelector.showList=Afficher la liste @@ -79,8 +79,8 @@ numbereditor.7=7 numbereditor.8=8 numbereditor.9=9 -numbereditor.action.reset.tip=R\u00E9initialiser -numbereditor.action.show.tip=Afficher le pav\u00E9 num\u00E9rique +numbereditor.action.reset.tip=R\u00e9initialiser +numbereditor.action.show.tip=Afficher le pav\u00e9 num\u00e9rique numbereditor.clearAll=C numbereditor.clearOne=CE numbereditor.toggleSign=+/-