Bonjour,

Je n'arrive pas a faire un binding sur un JXRadioGroup.

Mon jXRadioGroup :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
    static {
        NIVEAU = new Niveau[2];
        Niveau niveau = new Niveau(1, "Niveau 1");
        NIVEAU[0] = niveau;
        niveau = new Niveau(2, "Niveau 2");
        NIVEAU[1] = niveau;
    }
 
private org.jdesktop.swingx.JXRadioGroup jXRadioGroup;
jXRadioGroup = new org.jdesktop.swingx.JXRadioGroup<Niveau>();
jXRadioGroupPlan.setValues(NIVEAU);
Mon binding :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
binding = Bindings.createAutoBinding(AutoBinding.UpdateStrategy.READ_WRITE, 
                  optionExpeN1, BeanProperty.create("gestionPlan"), jXRadioGroup, 
                  BeanProperty.create("selectedValue"));
binding.setConverter(new NiveauConverter());
            bindingGroup.addBinding(binding);
Mon converter :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
    private class NiveauConverter extends Converter<Integer,Niveau> {
 
        @Override
        public Niveau convertForward(Integer value) {
            return NIVEAU[value.intValue() - 1];
        }
 
        @Override
        public Integer convertReverse(Niveau value) {
            for (int i = 0; i < NIVEAU.length; i++) {
                if (value == NIVEAU[i]) {
                    return i + 1;
                }
            }
            LOG.warn("Pas de niveau trouvé pour : " + value);
            return null;
        }
    }
J'obtiens une exception sur mon logger :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
2010-04-22 11:41:18,930 [ERROR] CreaExpeView - org.jdesktop.beansbinding.PropertyResolutionException: Exception invoking method public void org.jdesktop.swingx.JXRadioGroup.setSelectedValue(java.lang.Object) on org.jdesktop.swingx.JXRadioGroup[jXRadioGroup,9,22,121x76,layout=javax.swing.BoxLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.TitledBorder@18e8541,flags=9,maximumSize=,minimumSize=,preferredSize=]
Par contre il ne semble pas passer par le converter.
Je n'arrive pas a comprendre d'ou cela peut venir... Du coup si vous avez une idée...