JDave Posted August 11, 2007 Report Share Posted August 11, 2007 There is no way of currently determining the event of selecting the current value from a ring/enum popup. Either a different event needs to occur stating that the ring is done, or we get a Value Change even when nothing changed. Then you would need to compare the values to check if the value changed or not. At the least you would need a property to check whether the ring selection area is active or not. USE CASE : Consider if you wanted to display a ring dynamically on the front panel for the user to select data from. To subsequently hide this ring one would need to know when the selection is complete. If the selection is to keep the current value, there is no event notifying that the ring selection is done. Quote Link to comment
Yair Posted August 12, 2007 Report Share Posted August 12, 2007 Displaying and hiding a ring is not a common UI behaviour. If you want to do that, I suggest you initially set your ring to a default invalid value, since you want to force the user to select a value. It seems to me that this is not a good way to go about this, though. Usually, you would want to show the user all the previous selections they made and let them select things out of order. If this makes the panel too crowded, you can use a tab control regularly, or hide the tabs and create a wizard interface with Next and Back buttons. Quote Link to comment
silmaril Posted August 14, 2007 Report Share Posted August 14, 2007 ZITAT(yen @ Aug 11 2007, 01:42 AM) Displaying and hiding a ring is not a common UI behaviour. Right, it's not common, but that doesn't mean it has to be bad I'm doing the same with enums in my current project. I am displaying quite a large table to the user. Every time the user clicks on a cell, the appropriate control for this column is set to the last value from the cell, moved into the right place and given the focus. I am doing this for different data types (some are just simple string controls, some are enums). Now I had exactly the same problem: how do I know when the user is finished editing without changing the value? I solved this by using the "Mouse Down" events of both the table and the pane to make the edit-controls vanish whenever the user clicks anywhere else. This works great as long as we have a real "mouse user". If the user likes pressing the tab key to jump to the next input field, he will be disappointed. I think this could be solved using "Key Pressed" filter events, but it seemed to much effort to add this just for one button. What we really need are "Got Focus" and "Lost Focus" events for controls! :thumbup: Quote Link to comment
JDave Posted August 14, 2007 Author Report Share Posted August 14, 2007 QUOTE(yen @ Aug 10 2007, 04:42 PM) Displaying and hiding a ring is not a common UI behaviour. Maybe it should be... QUOTE(silmaril @ Aug 13 2007, 06:13 AM) Right, it's not common, but that doesn't mean it has to be bad I'm doing the same with enums in my current project. I am displaying quite a large table to the user. Every time the user clicks on a cell, the appropriate control for this column is set to the last value from the cell, moved into the right place and given the focus. I am doing this for different data types (some are just simple string controls, some are enums). Now I had exactly the same problem: how do I know when the user is finished editing without changing the value? This is exactly the type of scenario I am looking at. I am developing a generic tool to handle tabular controls that contain multiple data types. Surely that is a common UI requirement. QUOTE(silmaril @ Aug 13 2007, 06:13 AM) What we really need are "Got Focus" and "Lost Focus" events for controls! :thumbup: This would be good, but clicking on the current value of a ring doesn't lose the focus. It would be a workaround for clicking elsewhere or tabbing, but I am looking for something that appears more 'built-in' or seamless. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.