Jump to content


Photo

Add Palette to Library or Class Bug


  • Please log in to reply
1 reply to this topic

#1 hooovahh

hooovahh
  • Members
  • 65 posts

Posted 17 April 2017 - 02:21 PM

So I thought I'd try out the Add Palette to Library or Class option when building a package and I found a few limitations, but first let me mention a bug that I think prevents it from working properly.

 

I tested the feature by building a package and checking the box, then selecting a .lvclass file that is in my source.  I then built the package and installed it.  But when I right clicked on a class constant or a member of the class the root palette didn't show up like I expected.  I opened the installed class and saw what in my case was the "functions_Hooovahh_CAN.mnu" file added to the root of the class.  I also opened the class in a text editor and saw the line:

 

<Property Name="NI.Lib.DefaultMenu" Type="Str">functions_hooovahh_can.mnu</Property>

 

The problem I see is that this is a case sensitive operation.  I editing the text in my class file to read:

 

<Property Name="NI.Lib.DefaultMenu" Type="Str">functions_Hooovahh_CAN.mnu</Property>

 

Then closed and reopened LabVIEW and my root menu now shows up if I right click a node on the block diagram.  This was built with VIPM 2016 SP1 2016.0.1 build 1991.

 

In addition to this I think this feature is a bit limiting.  This feature only works if you are building a package with one class or library in it.  My reuse library is build in ways that mirror the NI palettes, and as a result having a palette like "File I/O" means there are several subpalettes each potentially with their own library.  Being limited to only selecting one library for a package means this just doesn't work properly.  What I think would be a neat feature is to look at the members of a class or library, then figure out what is the most root palette created that a member belongs to, and then add that mnu to the library and adding the default menu there.  I think I can do this in a post-install VI but think others might benefit from a simple one click checkbox which would do this for you.  It is also possible that I'm the only one that has more than one library or class in a package.


  • 0
"40 dollars!? This better be the best damn beer ever.. [drinks beer] You got lucky. "
"Whoah, someone smells stinky! Oh, its me. "

#2 hooovahh

hooovahh
  • Members
  • 65 posts

Posted 18 April 2017 - 03:25 PM

So if anyone is interested in the second half of my post, I've attached a VI that does what I was suggesting.  It takes a list of Installed Files which the Post-Install VI can return.  Then for all Libraries and Classes it looks at the members, and find where they are on the palette and finds the most root MNU file installed and sets the default menu to this palette.  So for instance if you have a palette with an Advanced subpalette, all members in that Advanced palette will actually point to the root palette when you right click which is think is a normal work flow since the right click doesn't give bread crumbs to navigate up, only down.

 

I intend on using this in my package building instead of the built in function because of its support for multiple classes and libraries within a package.

Attached Files


Edited by hooovahh, 18 April 2017 - 03:31 PM.

  • 0
"40 dollars!? This better be the best damn beer ever.. [drinks beer] You got lucky. "
"Whoah, someone smells stinky! Oh, its me. "