Bonjour, je reviens avec encore trois problèmes similaires

Je suis sous Ancestris 13, avec l'éditeur Cygnus. Je souhaite créer une nouvelle source.
Si l'événement a déjà une source, je clique sur le + et je choisi nouvelle source. C'est un peu une demande de flemmard, mais comme la dernière source est sélectionnée par défaut, ça m'oblige à remonter toute la liste pour sélectionner « nouvelle source ». Est-ce qu'il serait possible d'avoir un petit bouton pour ce cas-là ?
Une fois la nouvelle source ajoutée, je peux remplir les champs ou ajouter une photo, mais le bouton « Indique le dépôt de la source » reste grisé, et je dois d'abord sélectionner une autre personne et revenir avant de pouvoir ajouter les informations du dépôt. Je crois que ça avait déjà été corrigé avant, mais ce n'est plus le cas. Est-ce qu'il est possible de le rendre cliquable dès qu'un des champs est rempli, ou qu'on a sélectionné une image ?
Par contre, si l'événement n'a pas encore de source, je peux en ajouter une directement en remplissant les champs ou en ajoutant une image. Si je sélectionne une image, le bouton « Indique le dépôt de la source » devient cliquable, mais reste grisé même en remplissant tous les autres champs si aucune image n'est ajoutée à la source. Comme avant, il faut cliquer sur une autre personne, et revenir, avant de pouvoir utiliser ce bouton. Ou alors, ajouter une image bidon et la supprimer, mais je tombe dans le même cas qu'en-dessous. Est-ce qu'il est possible de le rendre cliquable dès qu'on écrit dans les champs ?
Si j'ai sélectionné une image, je peux alors cliquer sur le bouton «Indique le dépôt de la source ». Dans la nouvelle fenêtre, quand j'essaye de sélectionner un dépôt, j'obtiens l'icône de sens interdit, avec le message suivant :
java.lang.NullPointerException: Cannot invoke "genj.gedcom.Source.getDisplayTitle(boolean)" because "entry" is null
at ancestris.modules.editors.standard.tools.RepoChooser$SourceListCellRenderer.getListCellRendererComponent(RepoChooser.java:1278)
at java.desktop/javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicListUI.paintImpl(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicListUI.paint(Unknown Source)
at java.desktop/javax.swing.plaf.ComponentUI.update(Unknown Source)
at java.desktop/javax.swing.JComponent.paintComponent(Unknown Source)
at java.desktop/javax.swing.JComponent.paint(Unknown Source)
at java.desktop/javax.swing.JComponent.paintToOffscreen(Unknown Source)
at java.desktop/javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
at java.desktop/javax.swing.RepaintManager.paint(Unknown Source)
at java.desktop/javax.swing.JComponent._paintImmediately(Unknown Source)
at java.desktop/javax.swing.JComponent.paintImmediately(Unknown Source)
at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
[catch] at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.WaitDispatchSupport$2.run(Unknown Source)
at java.desktop/java.awt.WaitDispatchSupport$4.run(Unknown Source)
at java.desktop/java.awt.WaitDispatchSupport$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.desktop/java.awt.WaitDispatchSupport.enter(Unknown Source)
at java.desktop/java.awt.Dialog.show(Unknown Source)
at org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:1074)
at org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:1124)
at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:1096)
at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:106)
at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEventAccess(NbMutexEventProvider.java:123)
at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:77)
at org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:71)
at org.openide.util.Mutex.readAccess(Mutex.java:199)
at org.netbeans.core.windows.services.NbPresenter.show(NbPresenter.java:1081)
at java.desktop/java.awt.Component.show(Unknown Source)
at java.desktop/java.awt.Component.setVisible(Unknown Source)
at java.desktop/java.awt.Window.setVisible(Unknown Source)
at java.desktop/java.awt.Dialog.setVisible(Unknown Source)
at ancestris.util.swing.DialogManager$ADialog.show(DialogManager.java:374)
at ancestris.modules.editors.standard.IndiPanel.chooseRepository(IndiPanel.java:4105)
at ancestris.modules.editors.standard.IndiPanel.repoEditButtonActionPerformed(IndiPanel.java:2032)
at ancestris.modules.editors.standard.IndiPanel$67.actionPerformed(IndiPanel.java:1603)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.desktop/java.awt.Component.processEvent(Unknown Source)
at java.desktop/java.awt.Container.processEvent(Unknown Source)
at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Cela n'arrive que si c'est une nouvelle source, qu'il n'y en avait pas avant, et que je viens de la créer, sans être allé sur le profil d'une autre personne avant. Comme dans le cas où le bouton n'est pas cliquable, si je vais d'abord sur une autre personne et que je reviens, je n'ai aucune erreur.