Author: chatellier Date: 2011-04-29 13:05:47 +0000 (Fri, 29 Apr 2011) New Revision: 3299 Log: Suppression des PCL des entites (dans un cas, c'est incoh?\195?\169rent : population des especes) Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java 2011-04-29 13:02:44 UTC (rev 3298) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java 2011-04-29 13:05:47 UTC (rev 3299) @@ -84,6 +84,19 @@ /** Map entity key to {@link TopiaEntity}. */ protected HashMap<String, TopiaEntityContextable> currentEntities = new HashMap<String, TopiaEntityContextable>(); + /** Intance unique de PCL pour pouvoir être ajouter et supprimé au bon moment. */ + protected PropertyChangeListener entityPCL = new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + if (log.isDebugEnabled()) { + log.debug("PropertyChanged : " + + evt.getPropertyName() + + " New Value : " + evt.getNewValue()); + } + topiaChanged(); + } + }; + public InputContentUI<?> getInputContentUI() { return inputContentUI; } @@ -185,7 +198,7 @@ } /** - * Create new {@link type} entity. + * Create new {@code type} entity. * * @param type */ @@ -319,6 +332,8 @@ return response; } + + /** * Add entity to check for modification. * @@ -335,26 +350,7 @@ public void addCurrentEntity(TopiaEntityContextable currentEntity, String key) { if (currentEntity != null) { editable = true; - currentEntity - .addPropertyChangeListener(new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - if (log.isDebugEnabled()) { - log.debug("PropertyChanged : " - + evt.getPropertyName() - + " New Value : " + evt.getNewValue()); - } - topiaChanged(); - } - }); - // chatellier 20090602 , pas sur du code suivant - // plutot ne rien faire, si une autre entite de la meme - // clé est ajoutée, elle sera ecrasée - //TopiaEntity entity = getEntity(currentEntity.getClass()); - //if (entity != null) { - // currentEntities.remove(entity); - //} - + currentEntity.addPropertyChangeListener(entityPCL); this.currentEntities.put(key, currentEntity); } } @@ -381,6 +377,13 @@ * Reset state. */ public void reset() { + // il faut absolument supprimer les property change listener + // sinon, lors de la selection d'une espece, à la creation + // d'une population, le PCL est declanché, et l'abre + // croit qu'il y a eu une modification et il boucle + for (TopiaEntity entity : currentEntities.values()) { + entity.removePropertyChangeListener(entityPCL); + } currentEntities.clear(); noModif(); }
participants (1)
-
chatellier@users.labs.libre-entreprise.org