jacobson3 / VI-Peek

MIT License
4 stars 3 forks source link

Class Method Missing Implementations #35

Open jacobson3 opened 2 years ago

jacobson3 commented 2 years ago

The example below shows the example project "Board Testing - Benefits of Object-Oriented Design.lvproj" and you can see that the "Get Components.vi" shows only 1 implementation when it is selected in the peek window itself but when it is selected on an open BD it correctly shows multiple children and implementations. DD_Bug

jacobson3 commented 2 years ago

In the example above, even when only 1 implementation is shown in the tree, the Dynamic Dispatch VI Type class that is built in the EHL does contain all 5 of the actual implementations meaning the issue likely has something to do with how the MHL is choosing to display this class

jacobson3 commented 2 years ago

The root issue is that the tag value for dynamic dispatch VIs is generated from the LVClass reference so two methods of the same class will generate the same tag as a parent. As a result, if a user clicks on a DD method and then in the same peek window clicks on a different method of the same class, the methods will all be added under the previous item in the stack only to be deleted moments later (Above, the Get Components VI for the DAQ board design does get added to the project, but it actually gets added right underneath the Check Image Matches Design VI of the generic board class.

One simple method is to just delete children of the previous stack item before adding children to the current stack item as shown below.

swap

@qalldredge This is code that you had been working on so do you think swapping the two labeled VIs above will have any bad side effects (it doesn't seem to).