From: Jan H. (JIRA) <no...@sp...> - 2010-03-31 14:18:35
|
[ https://jira.springsource.org/browse/RCP-631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=52567#action_52567 ] Jan Hoskens commented on RCP-631: --------------------------------- The same goes for the opposite: when setting a formobject, a propertyChangeListener updates some value which needs to be confirmed by the user. Hence expect the formModel to be dirty because of the property change listener. Not sure which way to go yet. Additionally I would expect a default object to be complete, hence if you set a formObject, it should contain all values. When property change listeners fire, it would only set the same default value and this won't trigger a dirty if done correctly. Or is this not the case? This might need some more thought before a complete solution pops up... > Clearing the valuemodels in AbstractFormModel#setDeliverValueChangeEvents(boolean,boolean) should occur after all ValueChangeEvents are delivered. > -------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: RCP-631 > URL: https://jira.springsource.org/browse/RCP-631 > Project: Spring Rich Client Project > Issue Type: Bug > Components: Core > Affects Versions: 1.1.0 > Reporter: Matthieu Steyt > Assignee: Geoffrey De Smet > Priority: Major > Fix For: 1.1.1 > > Attachments: AbstractFormModelTests.java.patch > > > Consider the following example: > A formmodel containing two valuemodels A and B. B has a changelistener registered in which A gets a new value. The current implementation of the setDeliverValueChangeEvents(boolean,boolean) method uses the following sequence: > 1. valueChangeEvents of A are delivered > 2. A is cleared (dirty = false) > 3. valueChangeEvents of B are delivered, as a consequence A is adapted (back to dirty) > 4. B is cleared (dirty = false) > Result: > A is dirty, while it is the intention of the method that A is cleared. > Solution: > Two for-loops instead of one. One for firing the events and one for clearing the value models. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: https://jira.springsource.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |