Open Horizontal Menu to a Submenu from a Perspective Script

I am currently trying to create a menu that allows the user to select a certain item.

Right now I am using the Horizontal Menu component to achieve this which works well, but there are 9 submenus within this menu. I would like to find a way to make it easier for a user to switch between items on the bottom levels of this menu without having to click through all of the submenus.

My idea was to take the path from the onItemClicked event from the Horizontal Menu and use each step of the path to open the menu to that point. For example, say a user has selected:

MenuItem 1 > MenuItem 2 > ....... > MenuItem 7 > MenuItem 8 > MenuItem9

If they wanted to select another item that was within the submenus of 'MenuItem 7', they could click that part of the path to open the Horizontal Menu from that point, rather than start at the beginning.

I have been able to create the path using that event, but I do not see a way that I can force the Horizontal Menu to open into a specific submenu from a Perspective script. Maybe I am missing something or it's not possible with this component.

Hopefully, this is clear enough (please ask if anything needs clarifying). Any help would be appreciated, thanks!

EDIT:


This is an example of the menu structure I have right now, to help clarify. More items will be added to each level as we develop, but for now this is what we have. To have the page work correctly a Machine must be selected from the very last submenu.

Because users will likely be looking at several machines from one manufacturing site. I would like the user to be able to select a part of the path at the very top of the screenshot to open directly to that submenu.

In this case clicking the highlighted 'Item 1' in the path would bring you immediately to the Plant Code submenu rather than the user navigating the whole menu each time they need to select one machine.

I don't understand the navigation setup. Is this synopsis correct?

  • You have nine options on the top-level menu.
  • One or more of these has a submenu with more choices.
  • The menu structure is deep so the user has to navigate all the way down if they want to select a neighbouring menu item.

Not quite, I updated the original post with a screenshot of what the menu will look like with some more clarification that I hope will help.

That looks a fright, Ryan. I think you need to start again with a much more user-friendly design.

It seems to me that much of the menu could be arranged as a row of dropdowns.

Selecting an item on a dropdown would, if necessary, repopulate the dropdowns to the right. This is still messy though.

Possiblly a better option would be to use the Tree component as a menu. The user can see where on the tree structure they are and, when the branches are expanded, navigate with a single click. Adding this into the left docked view on the Page Configuration dialog allows the user to display the tree 'always', 'on demand' or 'auto'. so they can maximise the primary view. With the addition of an expand all and collapse all button the user could show the whole tree, scroll through and select with one further click.

If you insist on the horizontal menu, can you not move the top few levels out to some radio groups?

Have a look at good GUI principles and how modern applications are laid out. Ignition's Designer, for example, has at most two levels below any of the top levels - and at that, the second level is a list of checkboxes.