Search the Community
Showing results for tags 'lvoop assistant'.
Found 1 result
A while back AQ issued a request to finish some code located in <resource>\Framework\Providers\LVClassLibrary\NewAccessors The with great power come great responsibility line always stuck in my head and it was on my to-do list however, it took me a while to look at it (plus my scripting skills have improved slightly since then ). Basically the code operates on a Class which has other Classes as Data Members (composition) and allows the end user to create an API that wraps the required Data Member methods (delegation): I have now finished off the existing code and bolted on a UI and included it with LVOOP Assistant. I made this a separate thread for a few reasons (not discussed here). Feedback on this feature would be really appreciated. I thought I'd put it out for testing and to get feedback. The aim of this tool is to speed up development. This wasn't my first choice in how to design the GUI etc... integrating it into the current LVOOP GUI's that ship with LabVIEW would be grand, but these are locked. So this way was by far the easiest for me. My next mission is to see if I can get this natively included with LabVIEW Instructions: Class A contains other Classes as Data Members Nesting of Data Members (stored in clusters) is also supported Public methods are may be selected In this case Class B is Friends with A - which means A can have B's community-scoped on their block diagram Private and Protected scoped methods are not supported as Private would break Protected is not logical as LabVIEW does not allow a Child as a Data Member of a Parent The script is accessed through the Project Provider by right-clicking on a Class (that contains data members) and selecting LVOOP Assistant >> Create Element Wrappers The GUI will appear and allow the end user to select the Data Member that will be worked on as well the methods that will be wrapped Public methods and green, Community methods are blue Click a method to check/uncheck it, or use the buttons to batch check/uncheck etc... In the example Data Member 2 is chosen - which is an instance of Class B, which has the following methods Clicking OK creates the following methods for Class A What is happening from a scripting perspective is that Class B's method is copied Converted to a Class A method Class A's BD is cleared, then the method is delegated to Class B. Here is a demonstration (no sound) <!-- copy and paste. Modify height and width if desired. --> <object id="scPlayer" width="957" height="652" type="application/x-shockwave-flash" data="http://content.screencast.com/users/jgcode/folders/LVOOP%20Assistant/media/d749a41d-0411-46de-a9ac-2df37c6dc6f9/jingswfplayer.swf" > <param name="movie" value="http://content.screencast.com/users/jgcode/folders/LVOOP%20Assistant/media/d749a41d-0411-46de-a9ac-2df37c6dc6f9/jingswfplayer.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#FFFFFF" /> <param name="flashVars" value="thumb=http://content.screencast.com/users/jgcode/folders/LVOOP%20Assistant/media/d749a41d-0411-46de-a9ac-2df37c6dc6f9/FirstFrame.jpg&containerwidth=957&containerheight=652&content=http://content.screencast.com/users/jgcode/folders/LVOOP%20Assistant/media/d749a41d-0411-46de-a9ac-2df37c6dc6f9/LVOOP%20Assistant%20-%20CEW.swf&blurover=false" /> <param name="allowFullScreen" value="true" /> <param name="scale" value="showall" /> <param name="allowScriptAccess" value="always" /> <param name="base" value="http://content.screencast.com/users/jgcode/folders/LVOOP%20Assistant/media/d749a41d-0411-46de-a9ac-2df37c6dc6f9/" /> Unable to display content. Adobe Flash is required.</object> Enjoy! -JG Example Code in LabVIEW 2011 cew example_LV2011.zip