An experiment in creating compositab​le user interfaces for Config Dialogs

The attached files are saved in LV 2009. They are an experiment. Please don't go off and say, "NI says this is how you should make an options dialog."
Oh -- I guess I should mention -- this is an experiment in how to make an options dialog that can be reused, extended, and modified for hierarchial systems. In other words, I can create a UI of options for all DAQ cards, then reuse that dialog and append options specifically for M series cards, then reuse that dialog and append options for a specific card. At each level, I can choose to reuse the entire existing set of options, I can reduce or disable certain options, and I can add new options, and when I hit the OK button, out pops a single configuration object for the chosen card.
That's the goal.
This experiment achieves some portion of that. I did a lot of work with subpanels with a transparent background.
I hate the TAB key. I've got no solution to the problem of how to set up the tabbing properly through the controls of these various subpanels. Annoying. And this project did lead me to file an Idea Exchange entry for transparent subpanels: Subpanels with "Make Panel Transparent" enabled should allow mouse clicks to fall through to control...
To take a look at this experiment, unzip the attachment, open the project file, and open Caller.vi. There are detailed instructions and explanations of what you're seeing on the front panel of that VI. I've put comments in various places throughout. The code is ok quality -- it won't win any awards for following style guidelines, but most of the wires run straight. The whole thing is just to see how far I could go with this approach to compositing interfaces.
Oh, and if you learn anything from any of this, send a thank you note to user tst. He had an initial framework he was working with, which happened to hit on a day when I was able to spend some time looking into it, and his code inspired me to try this other approach. At the end of it, I don't know how useful this approach will ever be for actual production code, but it is a technique I've never seen anywhere before... perhaps someone out there will be as inspired by my experiment as I was by tst's and will find a way to make this better. Because, honestly, creating an extensible UI framework is a HARD problem, and LV has several approaches that kind of work, but none are particularly great. It would be nice to have a cannonical "this is the way NI and the CLAs say we should write an options dialog".
And now, having spent some time on "R", I need to get back to the "D" part of R&D...
Solved!
Go to Solution.
Attachments:
SubpanelEvents3.zip ‏284 KB

Just throwing out three ideas that could also come in handy here:
A "Mouse Simulator" API that can simulate mouse clicks/hovers/drags/drops on an object. For this particular application (composite UI), the top-most panel could broker clicks to lower-z-order panels
Programmatic access to control's z-order as a property (has an Idea been created for this? I would vote for it)
Make the "Inserted VI" the 'Value' of the SubPanel rather than a 'Property' so you can have an array of SubPanels that contain different UIs. Although I didn't articulate this well, that's why I got excited here.
a.lia-user-name-link[href="/t5/user/viewprofilepage/user-id/88938"] {color: black;} a.lia-user-name-link[href="/t5/user/viewprofilepage/user-id/88938"]:after {content: '';} .jrd-sig {height: 80px; overflow: visible;} .jrd-sig-deploy {float:left; opacity:0.2;} .jrd-sig-img {float:right; opacity:0.2;} .jrd-sig-img:hover {opacity:0.8;} .jrd-sig-deploy:hover {opacity:0.8;}

Similar Messages

  • A more successful experiment in creating compositable user interfaces for Config Dialogs

    A couple weeks ago I posted an experiment in creating compositable user interfaces using transparent subpanels. The approach might best be described as, "It at least was notable for being novel."
    Today, I'm posting another attempt, this one along more traditional lines, and far more successful. Particularly notable: this one can do all the arbitrary composition of the last one AND it solves the TAB order problem.
    This solution uses a picture control and renders N copies of a control. When the user tabs to a control or moves the mouse over the control, a real control slides into that position to be able to catch the events (update mouse over draw state, highlight for keyboard focus, handle typing, etc). When the Value Change occurs, a master array of data is updated and the picture control is updated.
    This is something that has been attempted in various forms in the past, but there are two aspects of this particular implementation that make it nice:
    its programmatic interface for specifying the behavior of the various objects should make it fairly easy for a user of the framework to programmatically generate their dialogs
    it handles the TAB problem without flickering, something I haven't seen in other attemps
    This idea spawns out of conversation about the previous experiment -- thanks to those of you who posted on various forums, e-mailed me, or, in a couple cases, showed up at my desk. That last one is not something I'm encouraging unless you work at NI... just saying. :-)
    Now, this experiement has already yeilded some interesting conversation. We note that as long as controls are instantiated independent of each other -- that is, no property of one control depends upon the property of another control -- this dialog system scales nicely. But in this experiment, I implemented Radio Buttons, which interact with each other -- when one is set True, the others go False. As soon as controls start interacting with each other (such as graying out one control when a checkbox is toggled, or having expandable sections, or really complex cases like updating a graph as some options change, like happens in some Express VI config dialogs) then we start needing ways to refer to the other controls. This rapidly moves us in one of two directions: naming controls or creating references. The naming approach is definitely my preference as it fits better with dataflow and I can do some interesting effects with breaking apart some of the tree. But all of this quickly starts sounding like "Please implement a XAML parser in LabVIEW." For those of you unfamiliar with XAML, in the world of UI design, it might very well be the coolest thing since sliced bread. A XAML string would indeed fit with dataflow, and we could start building that up. I hesitate to head down this road for two reasons. One, as many have noted, there's really not a good XML parsing library written in LabVIEW that can give me a useful DOM tree. Two, that's a huge project and my gut sense is that you'd have to complete a fairly large chunk of it before you'd start seeing any return on investment. But it is worth thinking about -- I might be wrong. Wouldn't be the first time. This code that I've posted today can at least get you started on the generation side if one of you decides to become industrious.
    I'm turning my attention away from this project for now... coding in G is lots of fun, and I wish I could spend more days doing it, but this has been a side project and it's time to get back to my assigned projects in text programming. Building a powerful platform for automatic UI generation in LabVIEW would be really useful -- I see lots of requests for this sort of thing, and other languages are pulling ahead of us in this domain.
    [UPDATE 5/17/2012 - There is an improved version.]
    Solved!
    Go to Solution.
    Attachments:
    ConfighThroughCtrlCreation.zip ‏558 KB

    Elijah K wrote:
    Thanks for posting this Aristos.  I would normally be one of those to go bug you at your desk, but in case I'm not the only one with this question... which particular flickering problem are you referring to?  The act of switching tabs?  In all honesty, I've never noticed...
    When you move controls around on the screen, normally you try to Defer Panel Updates while you do that. But Defer Panel Updates has an effect on control's abilities to catch certain mouse clicks, so when you're trying to move a control to catch the mouse, you have to work a lot without Defer Panel Updates, so if you're adjusting captions, etc, to match the new location, you can see flicker as properties adjust. You can move the control off-screen, as long as you have already updated the picture control to reflect the changes. It took a while to catch all the ways that the flickering can crop up. I think I got 'em all.
    Attached are the VIs saved for LV 2009. Actually, they're saved for LV 8.6, but it doesn't work in 8.6 because of a bug in the picture control that existed back then.
    Attachments:
    ComposableUI_LV2009.zip ‏391 KB

  • What r the steps to create task based user interface for interaction center

    Hi all,
                Can any one please let me know the steps to create task based user interface for interaction center? It would be great
                if anyone can share document with step by step.
    Thanks,
    Baasanthi

    Hi all,
                Can any one please let me know the steps to create task based user interface for interaction center? It would be great
                if anyone can share document with step by step.
    Thanks,
    Baasanthi

  • User interface for updating/adding attributes in OID

    Hello,
    I have not done the develop work in OAS10g (web, oid, +) though I have years experiences as DBA in OAS and Oracle database servers.
    I need to develop a user interface for users to add or update the user's attributes such as sn, manager etc.
    The IDM system is working in prod: OAS 10g r2, installed (upgraded to) with infrastructure and oid 10.1.4.3.
    OID: user attributes have been loaded with: CN, UID, mail and etc.
    The requirement
    User interface: an app based Ohttp web 10g
    I'd like the interface works like:
    The user accessing the web interface, is prompted with UID and mail. if the user correctly fills the fields, then will be prompted with the attributes which user can add or update.
    Because I have Not done any development in OAS (web, oid), I need know what skills I need to aquire. ANd how should I proceed?
    I may know the skills would be Ohttp development and OID API (LDAP), but I need these be specific as much as possible.
    Can any point the direction with examples and docs?
    TIA
    GA

    ajaybabu007 wrote:
    For managing the user related activities (create,update,lock,unlock,delete and so on) through an Web UI interface can be administrated with the Oracle Identity Management Self Service Console (http://infra_host_name:7777/oiddas) which is an inbuild component of OID/OSSO. Please provide orcladmin/<password> credentials for accessing this Web UI.
    ---ABP thanks.
    1) the app for user to add/update the attributes. we cannot give orcladmin to them
    2) though the users as their own can access the oiddas, there are only limit of user info could be updated, which cannot serve the attributes we customized and loaded in OID.

  • User Interfaces for Lists

    hi,
    How to create user interfaces for lists
    thanks.

    HI,
    The R/3 system automatically, generates a graphical user interface (GUI) for your lists that offers the basic functions for list processing, such as saving or printing the list. If you want to include additional functionality, such as pushbuttons, you must define your own interface status. To create a new status, the Development Workbench offers the Menu Painter. With the Menu Painter, you can create menus and application toolbars. And you can assign Function Keys to certain functions. At the beginning of the statement block of AT END-OF-SELECTION, active the status of the basic list using the statement: SET PF-STATUS ‘STATUS’.
    Cheers,
    Chandra Sekhar.

  • How to design the user interface for Indesign cs6 plugin ?

    Designing user interface using custom c++ library(SDK) for pluging is very tedious work .so when I search the net than i found that we can do it using Adobe Creative Suite Extension Builder but i dont know how to use it to develop user interface for plugin and to how to enable event handling in this UI .I read lots of document regarding this on net but they all created lots of confusion in my mind  so can anyone help me to know steps which i must follow to develop plugin using this or whatever technology (action script,java script etc)

    If you want to develop Extensions using Creative Suite Extension builder then i think this is not the right forum for you. Please post your specific queries regarding this at the below mentioned link
    http://forums.adobe.com/community/creativesuites/cs_sdk
    To give a brief of how to develop UI using JS you can use ScriptUI to develop your UI, it is a fast and OS independent approach to UI development. The UI created using JS is native in look. You can refer the following link for some help on ScriptUI
    http://www.kahrel.plus.com/indesign/scriptui.html
    I don't have much info regarding development in CS SDK, but i can point you to one more direction of dev called as hybrid plugins wherein the UI is created in CS SDK, and appropriate methods are exposed from the C++ plugin(enhancing the script object model) to be called up by the CS code for too and fro communication between these two modules of code.
    Hope these pointer help you in getting started.
    Thanks,
    -Manan

  • User Interface for Multiple Sensors

    Hi all, 
    I want to create an application where in i should be able to acquire data for Accelerometer, pressure, strain, LVDT and Temperature sensors. I want to create a Font Panel as shown in the attachment, i should configure any of the sensors by selecting the check box. Please find the attachment. 
    I created the prototype design using NI Signal Express, i am not able to customize the Step Set-up window as per my requirements(Shown in the attachment). 
    Any help regarding how to go about it, whether in LabVIEW or in Signal Express. I would be really glad if you any ideas.
    Regards,
    KM
    Attachments:
    LabVIEW Signal Express.vi ‏367 KB
    User Interface for Multiple Sensors.png ‏115 KB
    LabVIEW GUI.seproj ‏1156 KB

    You can certainly do what you want in LV, but you all have to create the UI manually. Beyond that, this configuration dialog is just another LabVIEW program.
    What exactly is the problem you are having? I can't open your code because NI still hasn't released the beta version of LabVIEW 2015 for Android.
    Mike..
    PS: Yes, the comment about LabVIEW 2015 is a joke! Unless of course there really is an Android version coming, in which case I just amazed myself...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • User interface for the CAF project

    hi
                 to make  user interface for the CAF  i  have  written  a simple 
      webservice application for storing the data in the database using JDBC operation
       i have  imported the webservice in the  EXTERNAL SERVICE  and  mapped
      in the required in the entity service  , every thing worked fine  but  when  i have
      imported the model  for developing the USER INTERFACE  for the  webservice
       there is no  EXECUTABLE NODE 
          can  anyone provide a clear idea  how i can proceed further .

    Couple of things - you can open the interface for any instrument or plug-in by double-clicking its insert slot on the channel strip. You can configure Logic to automatically open the interface for a plug-in when you first instantiate it in the preferences. Go to Logic Pro > Preferences > Display > Mixer, and check the box for "Open plug-in window on insertion".

  • User interface for Application Wizard Questionnaire - Order of Questionnair

    Hi
    Hi We have ECC6, eRecruitment 603 and have a query regarding the user interface for application wizard for the Application HRRCF_A_REF_APPLWIZRAD_EXT, Web dynpro component HRRCF_C_QUESTIONNR_UI. 
    We need to know if it is possible to influence the order in which the questionnaires appear for the user to complete.
    Example:  We have designed the process template to have quesitonnaires in a certain order, Reason for Application first and then Additional Information and then Equal Ops questionnaire.  But when the user applies and clicks on the road map questionnarie they do not appear in this order.
    many thanks
    Julie

    We have found that SAP note 1386825 fixes this issue.  For existing requisitions to pick up the fix they have to be resaved.

  • I do not see the user interface for the Logic software instruments. I can hear them play through my midi keyboard but I cannot see them to adjust parameters. Please advise.

    I do not see the user interface for the Logic Pro software instruments. I can hear them play through my midi keyboard but cannot see them to adjust the parameters. Please advise.

    Couple of things - you can open the interface for any instrument or plug-in by double-clicking its insert slot on the channel strip. You can configure Logic to automatically open the interface for a plug-in when you first instantiate it in the preferences. Go to Logic Pro > Preferences > Display > Mixer, and check the box for "Open plug-in window on insertion".

  • Create Eye-Catching User Interfaces

    Do you try to make your front panels look professional, feel natural, and work great?
    Are you tired of your front panels looking like a windows 95 based program?
    How would you like to make Eye-Catching, Professional, and sexy front panels that impress your clients?
    Join the UI Interest Group
    You will be able to develop Eye-Catching and professional VI front panels that make you and your program look good.
    Plus you can join in developing more themes to work with. Your involvement will not only improve the programs we all write, but will be integral in shaping the coming improvements in Labview's User Interface in future versions of labview! Join us and learn how to impress your users with your VIs or show us all how its really done. 
    Talent Wanted. 
    [will work for kudos]

    I joined (I think) but found the interface over there a little bit lacking (Irony! ). Same for the the Idea Exchange, I wish the interfaces all worked the same way.
    So just for fun here's something for ya. I posted this on LAVA a few years back and they seemed to like it...
    Richard
    Attachments:
    Nixie_Fun.vi ‏56 KB

  • User Interface for BPS Planinc

    Hi,
    What is a common way for users to execute planning applications?
    I've read about planning folders but still dont understand the user interface. (via BEx?etc. Roles?)
    We're not using any web functionality. Please suggest a user-friendly way to execute planning.

    Hi Frank,
    In planning application create planning area, then planning level. then manual planning. Under Manual Planning create layout. While creating layout you select the option of Excel or SAP ALV grid.
    Its better that you create layout with Excel and then using BPS_WB create web interface for this excel. Then user will need to use the web interface. This is easy way.
    Regards: Gaurave

  • User Interface for bulk loading images using interMedia

    I would like to create an interface where users could bulk load images to a database. Has anyone created a web (or other) interface that would perhaps call a PL/SQL procedure or SQLloader?
    Is there a way for users to upload images from there own computers in bulk? Would they need to utilize SQLPLUS?
    While I have seen the examples and plan to create a web interface for uploading images one at a time, I have been requested to find a way for the users to upload images in bulk themselves (instead of them requesting us technical people to do it).
    Thanks for any suggestions.
    Judy

    <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>Originally posted by Simon Oxbury:
    Hi,
    There's a sample on OTN that discusses loading multimedia data in bulk into the interMedia types using both SQL*Plus (with PL/SQL) and SQL*Loader. Check out the following URL: http://otn.oracle.com/sample_code/products/intermedia/htdocs/avi_bulk_loading.html
    One major difference to consider between SQL*Loader and SQL*Plus (with PL/SQL) is that SQL*Loader can load data from files on the machine running SQL*Loader, which may be a different machine than the database, although it still needs an Oracle installation. Whereas SQL*Plus with PL/SQL can load data only from directories that are accessible to the database server and that have been defined in the server using the CREATE DIRECTORY command, which requires privs. Also note there are restrictions and issues specific to both NT and Unix when it comes to access network directories from the server.
    If SQL*Loader looks like a possibility, you might want to think about a simple Java program, Perl script, or some such, to create the SQL*Loader scripts. On the other hand, if you get into Java, then you could use Java to do the upload and, at the same time, provide some level of application-specific user interaction and/or error reporting, etc. Its easy to get a list of file names in a directory using the File.list or File.listFiles methods in Java. On the other hand, if we talking LOTs of files, then SQL*Loader may turn out to be more efficient.
    In order to better understand the variety of ways in which our customers are using interMedia, we'd be very interested in knowing a little more about your application, the interMedia functionality that you are using, and how you are developing and deploying your application. If you are able to help us, please send a short email message with some information about your application, together with any comments you may have, to the Oracle interMedia Product Manager, Joe Mauro, at [email protected]. Thank you!
    Regards,
    Simon<HR></BLOCKQUOTE>
    null

  • One user interface for multiple VIs

    I searched and searched for an answer to this so if it's out there please direct me to it.
    I have an application that has roughly 10 different VIs.  These VIs are virtually the same.  All they are doing is monitoring data for the operator for instance: Temperatures, Pressures, Vibrations, etc.,.  I would like to implement a user interface where the operator could click on a button at the bottom of the screen that would take them to the temperature screen.  Once the temperature screen is displayed, I would like to be able to click on a different button that goes to the Pressure screen.  In other words, I want the operator to be able to access any screen they want from any screen they are currently viewing.  So all the buttons would be at the bottom of every screen.  And any screen would be able to access any other screen.  I just have not found a good way to do this.  Every thing I've tried always ends up coming back to a "main.vi".  
    Multiple answers are welcome!  Thanks.  

    Ben wrote:
    DSC has a feature that lets you assign protection levels to each FP control.
    Good to know, having never used DSC. Maybe something to add to my "toolbox" in the future.
    CLA, LabVIEW Versions 2010-2013

  • Creating a default User account for new users

    Today I tried creating a default setting for and account that could be used for all new users.  I did web searches after web serches and not luck.  In the old systems it was simple, but Mavericks made it difficult.  But after much hair pulling and putting several suggestions together it is just as simple as it was before.
    Step 1 Create a new user account
    Step 2 log on to that account and set it up totally, that means background picture, preferences, dock, everything
    Step 3 click on the home incon in a finder window then go to Finder view select view options and at the bottom check show library
    Step 4 go to HD>system library>user templates, you will need to select the file, Command I for info, unlock the lock, click + at bottom select your admin account, give youself read write permissions, go click on the folder you wish/need to change and get info and repeat the step above for each folder.
    Step 5 replace the library folder and any other you wish to change with the one from the new account
    Step 6 you can also place any documents on the desktop or document folder and replace them
    Step 7 create a new user account and verify that the settings and dock are correct.
    This takes about 5 minutes or so and is much easier for the non pro

    I don't always understand how things can be different from one computer to the other running the same systems and following the same steps but I have 2 iMac's and the steps above for the desktop picture worked on one but not on the other, go figure.  So as a fix the default picture was named Wave in the Desktop Picture folder so I changed the name of it to Wave1 and renamed the new photo Wave,  did not change the alias in the CoreService folder, now the second computer creates and new user account with all my perferred settings and background picture.
    As a recap of my orginal post by creating a default user account, setting up the preferences for finder, and setting up the dock, I simply replaced the preference folder in the User Template file and it works perfectly.  Remember that you can do the same with the Document folder or the desktop if you want to place them for all new users. 
    Since I am not a professional computer person I do not feel comfortable using the terminal or scripting so this works very well for the common person to create a new user template.

Maybe you are looking for

  • Running Rules in 11.1.2.2 workspace webforms - issues

    We are currently trying to migrate from 11.1.1.3 to 11.1.2.2 Our business rules were migrated to Calc Manager. Most of our rules are run from a web form with two options on the web form: "Use Members on Form" and "Hide Prompt". They have been running

  • Downloading music from a cd to iphone4

    I would appreciate help in the above topic, also how do I import music from other sources to i tunes site thanks

  • Bucketstyle questions

    Hello, i have some questions regarding bucket styles in Mapviewer Ver1033p5_B081010. I defined a collection-based bucket style with discrete values: <?xml version="1.0" ?> <AdvancedStyle>   <BucketStyle>     <Buckets>       <CollectionBucket seq="0"

  • "Peer Not Authenticated" exception.

    I am trying to connect to a SSL enabled Lotus Domino Mail Server, using JSSE. At the client side this is the exception encountered: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated      at com.sun.net.ssl.internal.ssl.SSLSessionImpl.g

  • Can i put a phone icon (like Favorites) on main menu?

    Favorites is my most frequent use of my iphone.  I would like that icon on the main menu without having to choose Phone first.  Is that possible?