Bug 292679 - The method updateFromModel of AbstractComboRidget does not work correct if the Ridget has an OutputMarker
Summary: The method updateFromModel of AbstractComboRidget does not work correct if th...
Status: RESOLVED FIXED
Alias: None
Product: Riena
Classification: RT
Component: UI (show other bugs)
Version: 1.2.0   Edit
Hardware: PC Windows Vista
: P3 normal (vote)
Target Milestone: 1.2.0.RC1   Edit
Assignee: Elias Volanakis CLA
QA Contact:
URL:
Whiteboard:
Keywords: ui
Depends on:
Blocks:
 
Reported: 2009-10-19 11:31 EDT by Thorsten Schenkel CLA
Modified: 2009-11-20 20:10 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thorsten Schenkel CLA 2009-10-19 11:31:07 EDT
If a CComboRidget has an OutputMarker and the programmer changes the selected value, the method updateFromModel will not work correct. The selected value is not displayed in the text field of the combo. The value of the text field does not change. This is because the inner class ValueChangeValidator checks whether the Ridget is output-only.
In the SWT  ExampleApplication I changed the sub-module "CCombo" so that this problem can be reproduced. Press the check box "Use always second person". The combo is now output-only and the second person of the list is selected (in the model; see console). But in the text field of the combo you will see the old value.
I have added a workaround in the method "updateFromModel" of the class AbstractComboRidget. But I commented out. I don't know if this is a good solution.
Comment 1 Elias Volanakis CLA 2009-10-20 20:05:15 EDT
Reproducible. Happens with ComboRidget too.
Comment 2 Elias Volanakis CLA 2009-10-21 15:23:55 EDT
I will address this in the next sprint (i.e. next week).
Comment 3 Elias Volanakis CLA 2009-11-20 20:10:22 EST
Thanks for reporting this. The idea for the workaround was correct. I've refined it by introducing a forceChange flag (so that marker listeners are not triggered by setOutputOnly).

Fixed in HEAD.