There is a way to refresh with a command Human UI Window?
Can you describe the purpose of the refresh? It is rare that you would want to “refresh” a window, but rather refresh your data that populates the window. Please describe your use case so that I can understand your specific challenge.
I attached an explain video about it.
Ahhh – I think I see what’s going on.
A few things:
- Not entirely sure what your use case is for disconnecting the elements from the AddElements component – my guess is that you’re somehow trying to “freeze” updates to the value listeners, but this is best accomplished another way. The only reason that the HUI elements don’t disappear completely is because the AddElements button fails to collect required data and aborts before making any modifications to the WPF window.
- The “Show” toggle will operate on a persistent WPF in memory, which is why you still see the elements after disconnecting the elements from AddElements, even when using Show/Hide. However, when a user clicks the X button on the window, it actually closes and disposes of the window, and the only way to get it back is to regenerate the window, which happens the next time you “Show” the window. Because you are not adding any elements, it is blank.
To “freeze” the UI, you can do a couple of things. Instead of disconnecting your components, feed the output of the merge into a Show/Hide Elements, and use the Disable input to disable all the inputs. Alternatively, if you want to freeze the values from the value listeners from executing business logic, you can use Heteroptera’s Stream/Freeze Gate, which should be controlled by some other condition. Not knowing exactly what you’re trying to accomplish, it’s hard to say what the best paradigm to use would be, but in general I try to err on the side of using UI/UX paradigms that are clearly communicated and don’t leave a user wondering “why isn’t this slider working??”
P.S. I tend to almost always hide the X button on HUI windows because regenerating the interface is a royal PITA and requires either a Rhino command or some other paradigm to get it back. Alternatively, if I am controlling a subsidiary window from another window, I will use the Show/Hide window, which does not dispose of the window, just hides it.