LabVIEW Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
moderator1983

Allow to link two arrays so that they can scroll synchronously.

Status: New

So the request here is to have an option wherein the array indicators (or controls) can be linked with another array indicator (or control) and can be scrolled synchronously.

 

There could be a property node for that (or invoke node or may be some other way), which will accept the reference of another array and thats all.

 

Sync Scroll

In above example, Array 1 is linked with Array 2, so whenever the user will scroll (or change the index of Array 2, the same change will reflect in Array 1.


I am not allergic to Kudos, in fact I love Kudos.

 Make your LabVIEW experience more CONVENIENT.


26 Comments
altenbach
Knight of NI

> Altenbach: Stop with the feature creep.

 

Not suggesting anything, just trying to clarify 😉 The original idea showed a reference and property node, and since references can go to subVIs,  I thought multiple panels was automatically included, just not mentioned yet.

 

However, I definitely want to link more than just two arrays ... (for example for nonlinear fitting we might want to link: (0) the parameter names (1) the initial parameter guesses, (2) best fit parameters, (3) parameter error estimates, (4) lower parameter confidence limit, (5) upper... etc., all 1D arrays). ... Come to think of it, I keep using tables. 😄

GregSands
Active Participant

I often want to do something like this, so kudos, even though some details still need working out.

 

For example, I would want the association to be two-way - scrolling any one array scrolls the other(s).  That doesn't really suit the property node-type syntax shown in the original idea.  If it needs a property node, perhaps it should be a VI-class Invoke Node "Link Array Indices" that accepts an array of Array References.

 

I don't really like the idea of yet another popup window either.  The whole setting of properties is plenty fragmented as it is.  What about an Array right-click menu option "Link Indices...", and then clicking on other arrays.  A click not on an array finishes the setting (or a tick/cross in the menu-bar as for "Reorder Cluster Controls").  Maybe a little visual link symbol shows on the scrollbars (at edit-time only?) to show they're linked - could cycle through different colors for each link-set. 

 

Or, a menu-option in the Group menu, which works by selecting several arrays, and then "Link".  That's the problem - there's already too many different ways of doing similar operations!

 

My preference is that linking can only be set up at edit-time, but the linking applies at run-time as well.

fabric
Active Participant

Yeah yeah - keep it simple and avoid feature creep - but...

 

...wouldn't it be cool if one of the linked items could be a scrollbar control? (Would be especially useful for easy access to multi-dimensional arrays.)

--
Chris Virgona
AristosQueue
Proven Zealot

fabric: Arrays already have their own scrollbar. Why would I need to link an array to one?

fabric
Active Participant

AQ: Plenty of reasons! Here are a few:

  • How do you scroll easily through pages of a 3D array? I'd like to be able to assign my scrollbar control to any dimension of an array.
  • If an array *control* is disabled then so is its scrollbar, and yet sometimes using an indicator is not practical. I'd generally like my users to be able to view freely even when the control is disabled. 
  • A standalone scrollbar has much better customisation potential, for example I can set the page size and increment. The built-in array scrollbars are pretty boring...
  • I'm longing for the day when the scrollbar control becomes customisable so I can make it large enough to use on a touchscreen. I'm guessing that the built-in array scrollbars will probably never become so customisable...
--
Chris Virgona
AristosQueue
Proven Zealot

> How do you scroll easily through pages of a 3D array?

 

Easy. Use the z-plane scrollbar. It is drawn point on coming straight out of your monitor, so it may be hard to see. I recommend sitting off the edge of your monitor and using a pair of 3D glasses. Fourth dimenson scrollbar shows up every few minutes. You should be able to click on it yesterday most of the time.

 

... just kidding.

 

Point 1 is good. Point 2 sounds like a terrible UI, but if it works in your environment, I'll take your word for it. 😉

Point 3... boring is good. Point 4 is off topic. 😉

 

But you've got enough argument in there that I'll buy the main thrust. Allow linking so that if a scrollbar can be said to have an index, then set the scrollbar's index to the same value as the array and vice versa.

 

 

 

johnsold
Knight of NI

I have a VI which has 7 arrays, 1D and 2D, and which can have many more rows than will fit on a screen. The boolean arrays are used to select elements from the 2D string array for further processing. All the elements need to line up or it is useless. Curretnly I have added a slider as a pseudo-scrollbar and have a big batch of property nodes.

 

This linked index idea would make this much easier.

 

Lynn

 

Link array indexes.png

magicbean
Member

What are you trying to do that you don't get by just connecting the IndexVals property nodes?

 

ArraySyncIndex.png

 

Perhaps you wanted to make array 1 track array 2 AND array 2 track array 1?

Just trying to understand your idea...

cyro
Member
There is somewhere in RAM the value (in percent?) of the scrollbar stored (maybe I32, DBL or whatever...) and the scrollbar is a simple numeric I think. Why not give the possibilty to link every available numeric to another numeric (frontpanel control, global or shared variable) so you can decide what to do and howmany numerics you want to be linked together.
Intaris
Proven Zealot

Just give us a "Scrollbar" event as a double in both directions (I mean that a property node should be available to read and write the scrollbar position AND we should be able to register for "Scrollbar" changes in the Event structure) and be done with it.  The rest you can then do rpogramatically.