How to pause any control actions based on a namespace variable value?

I have a multi screen OMI application. I am trying to find a way to pause any controls including navigation when I make any setpoint changes to an attribute. I need this because I am running some scripts on the object instances which won't get fired if the navigation changes before the new values have taken effect. I believe something like this already happens in InTouch, where if you make button click or value change, the whole system freezes until the change has taken effect. But, in System Platform OMI that's not the case.

I am currently setting a namespace variable names "Please Wait" and hope to use this to pause any controls and also show a "Please Wait" graphic on all screens. But I want to reduce my work and set this graphic display from the layouts itself instead of having to add them to each and every graphic in my system. 

Any guidance would be appreciated.

Parents
  • Hi, 

    As I understand it you want to build a solution that prohibits any user interaction and avoid closing of a symbol that has to complete its task before allowing interaction again.

    I do not know that there is such a setting for the full OMI application (setting readonly does not apply in your case), but you might be able to avoid interaction by setting the available components to disable for the time it takes to complete.

    As an example you could create a layout script that disables the navigation control and enable it again once ready.

    MyContent.NavTreeControl1.IsEnabled = false;

    But I would guess it requires some work to make it failproof, and if you have other symbols available you need to implement your disable / waiting graphics on those as well.

    You could perhaps make sure that you open a popup symbol that is Modal, this requires the popup to be closed before you can interact with anything else.

    When a modal symbol is open you cannot interact with anything else than this modal dialog inside your program, as long as the modal symbol is open. In Windows Most dialogs are modal, for example the File-Save As dialogs are modal.

Reply
  • Hi, 

    As I understand it you want to build a solution that prohibits any user interaction and avoid closing of a symbol that has to complete its task before allowing interaction again.

    I do not know that there is such a setting for the full OMI application (setting readonly does not apply in your case), but you might be able to avoid interaction by setting the available components to disable for the time it takes to complete.

    As an example you could create a layout script that disables the navigation control and enable it again once ready.

    MyContent.NavTreeControl1.IsEnabled = false;

    But I would guess it requires some work to make it failproof, and if you have other symbols available you need to implement your disable / waiting graphics on those as well.

    You could perhaps make sure that you open a popup symbol that is Modal, this requires the popup to be closed before you can interact with anything else.

    When a modal symbol is open you cannot interact with anything else than this modal dialog inside your program, as long as the modal symbol is open. In Windows Most dialogs are modal, for example the File-Save As dialogs are modal.

Children
No Data