Zoom and pan in the vision client


No definite plans, although we do know people want it.

There are some real difficult technical barriers that have to do with Swing input components and zooming that we haven’t figured out how to work around.

I realize its been a while since the was originally posted, but are there any plans in the future to add zoom and pan ability? Maybe in the Template Canvas or part of Perspective? Would be very useful.

It might end up being possible in Perspective because browsers know how to zoom, but I doubt this will ever happen in Vision.

1 Like

I’ve been poking around with a pan & zoomable subclass of BasicContainer – doesn’t work yet, and the designer interface is clunky, but I expect it be fully functional. Everything within it will have to use anchored layout, though. Relative layout in a zoomable view makes my head hurt.


Sounds interesting! We used a template canvas and modified the width/height/position values of the canvas dataset to give the effect of a 2x/4x/8x zoom on a button click. We used the scroll bars on the container and mouse movement for panning. Would much rather have a smooth zoom. Good luck on your project.

Has anything changed in the last 2 years? The only complaint I have with Ignition is that it always takes me a few clicks to remember ignition can’t grab and pan the screen. It would be incredible to middle click and pan like you can do in AI, Autocad, Bluebeam, SW and other programs.

1 Like

No, I ran into an unfortunate API limitation due to the Designer Nav Tree’s assumptions about the hierarchy of Swing components. Only the BasicContainer class can contain other designable components, and those designable components are enumerated in the designer with Swing’s own getComponents() methods. Designable content enumeration should have been a dedicated interface for the Nav Tree, IMNSHO, as the re-used interface interferes with any type of layered (scrollable/zoomable) container.

In my investigations, I instrumented calls to the various getComponent*() methods to identify the callers, and then confirmed that a layered container was possible by lying to various calls from the Nav Tree’s utility functions. Too fragile and too slow (getting tracebacks on every getComponent call) to deploy anything for real.

IA would have to factor out all relevant designer calls to getComponent*() into something like getVisionComponents*() so that a subclass of BasicContainer could override those. Someone else would have to create and vote on a suitable entry at ideas.inductiveautomation.com as I cannot log into that site.

1 Like

I hope it finally happens in perspective module with a special container

1 Like