Question of Popup

I need to do a popup, like a reminder, for example system.gui.messageBox() or system.gui.confirm() or even for asking a password or text system.gui.passwordBox(). The problem is I have multiple main windows, and each window has their own popup request. I only have one display monitor and navigate to one window. Where all windows call the popup (NOT POPUP WINDOW) all popups show up at the active window. So I need to show each popup on his own main window, or just show the popup that corresponds with the active window.

How can I select the window in wich the popup has to show up?

Any comments would be very precciate.

DS.

First comment is having multiple main windows open at the same time is bad design methodology.

Second comment is you can set a Popup X/Y loc manually like here:

They are not open at the same time, Just one is active on monitor, but from the other windows are executing on gateway I think. That’s why all popups appear. Is that a bad design methodology too? I’m new with ignition and I would like to keep improving.

Thanks for the second comment, I’ll try that!

I use swap window command btw

Using swapWindows closes the current one and opens the new one, so the other doesn’t execute on the Gateway - which is not bad design practice.

I don’t really understand your query then.

You have some docked windows (e.g. navigation) and one main window open at a time. Why won’t the popup open in the centre of the main window on your one monitor?

Excuse me, I’ll try to be more specific.

I have a “Super main” window, from there I click a button and swap to another “Machines main” window (Here you can see little data from each machine, lets say 4 machines). On this “Machines main” window I click a button and swap to the “Machine1” window. It can be machine 1 or machine 2, or 3 or 4, but each machine has his own window.

The popup message (system.gui.messageBox(“Please Update Data”,“Reminder”)) is showed depending on time, so It executes 5 minutes before ending an hour. 8:55am = Call Popup, 9:55 = Call Popup, and so on…

What is happening is that each “Machine#” window has an element showing the time, and from each time element I’m making the function call. At the last 5 minutes All 4 Popups from my 4 “Machine1”, “Machine2”, etc. windows, are showing them all on the Active Window.

The idea was show a reminder on proper window, so if I have “Machine3” window open, popup from window “Machine1” does not show up on window “Machine3”.

I’m thinking on set a conditional, on every time element, if “thisWindow” is “active”, call popup, if not, do not even call it. or do something else.

Hope its explained

Thanks for the clarification.

First comment would be DRY … Don’t Repeat Yourself. If these are identical machines (1, 2, 3, 4, N), I would work on a template and have a template repeater on your “super main window”.

Second comment is where are you calling the popup timer script? From a timer component on each “main window” (respective to machine n)?

I would create a gateway timer script to run and if time is at your conditions, and yes you have a good idea; if that window (machine N) is open, then open the popup.

1 Like

Your probably do need a conditional to get the right message, but I would recommend you not use the system.gui.* functions for this. Use a normal Ignition popup window. The system.gui.* functions halt the entire gui. They should never be used by a timer or tag change event–only events caused directly by an operator, so they can be dismissed immediately by that operator.

Personally, I avoid them like the plague.

1 Like

You are right, it’s better to use a Popup Window from Ignition, I should change that before the project increases, then I’ll probably have problems on the future.

It depends on the project itself, meanwhile the extra condition could work.

The first info I got was the system library, so I used that…

Well, thank you a lot for your time and patience I really appreciate that!

Are here in the forum something like “points” to give?

1 Like

In fact, I was looking for information like this, to know the behavior of that object.
Is there any resource from inductive like this that I can read?

Definitely I’ll move to Popup Windows for this situation.

Thanks a lot, really I appreciate your comments.

Down beside reply there is the “like (heart icon)” button, you can like individual posts.

Or if you get a reply that completely solves your problem, there is another button “solution” which then shows the thread as “solved” but users can still add content to “solved” topics.

I also accept BitCoin. Jokes :slight_smile:

3 Likes

Just 1 bitcoin will suffice, we’re not greedy here :grinning_face_with_smiling_eyes:

2 Likes