Experience in the creation of UIs compositable configuration dialog boxes

The attached files are saved in 2009 LV. They are an experience. Please don't go out and say: "NEITHER said this is how you should do a dialog box options.»

Oh - I guess I should mention - it is an experience of how make a dialog box options that can be reused, extended and modified for hierarchical systems. In other words, I can create a user interface of the options for the DAQ cards and then reuse this dialog box and add the options specifically for M-series cards, then reuse this dialog box and add options for a specific card. At each level, I can choose to reuse the existing set of options, I can reduce or disable some options, and I can add new options and when I hit the OK button, out POPs a unique configuration for the selected map object.

That is the goal.

This experience allows to get a part of that. I did a lot of work with the sub-panels with a transparent background.

I hate the TAB key. I have no solution to the problem of how to set up the tab properly through the controls of these various sub-panels. Boring. And this project did lead me to an entry for the exchange of ideas for the transparent sub-panels of files: Sub-panels with 'make Transparent Panel' activated should allow mouse clicks switch to control...

To take a look at this experience, unzip the attachment, open the project file and open Caller.vi. There are detailed instructions and explanations of what you see on the front of this VI. I put comments in various places. The code is ok quality - he will win no reward for the following style rules, but most of the wires straight race. All this is just to see how far I could go with this approach to compositing interfaces.

Oh and if you learn something from all this, send a note of thanks for user tst. He had an initial framework that he worked with, happened to hit on a day where I could spend the time looking into it, and its code has inspired me to try this different approach. The end of it, I don't know how useful this approach will always for real production code, but it is a technique that I've never seen anywhere else... maybe someone out there will as inspired by my experience I've been by tst and will find a way to do it is better. Because, honestly, creating an extensible user interface infrastructure is a problem DIFFICULT and LV has several approaches to this kind of work, but none are particularly large. It would be nice to have a canonical "that's the way NOR and the CLAs say that we should write a dialog box options.

And now, after having spent some time on 'R', I need to return to the part "D" in R & D...

I enclose the original example, I sent to QA. It shows two other ways to arrange GUI - one by using a listbox control and using the vertically stacked sub-panels. I think that both are simpler than his approach.

Notice that we use very different approaches in how the references of dialog boxes are acquired. Note that these two examples are proof of concept and have various problems.

Anyway, if you want to see where this debate began and where my example was originally published, look here, where there is also a small video and an image.

Tags: NI Software

Similar Questions

  • A more successful experience in the creation of UIs compositable configuration dialog boxes

    A few weeks I posted an experience in creating user interfaces using sub-panels transparent compositable. The approach can be described as, "It was less remarkable for being novel."

    Today, I write another attempt, this one along more traditional lines, and a lot more successful. Notable: this can be any arbitrary composition of this last AND it solved the problem of order TAB.

    This solution uses an image control and makes copies N of a control. When the user moves a control or move the mouse over the control, a real control slides in this position to be able to catch the events (updated mouse more attract State, highlight to the keyboard focus, manage typing, etc.). If the value changes, a master data table is updated and the image control is updated.

    It is something that has been tried in various forms in the past, but there are two aspects of this particular implementation that make nice:

    1. its programming interface for specifying the behavior of objects should make it fairly easy for a user of the framework generate dialog boxes programmatically

    2. It handles the problem of TAB without flickering, something I've not seen in other attempts

    This idea creates conversation about previous experience - thanks to those of you who have posted on various forums, e-mail me, or, in some cases, showed up at my office. That last is not something I am encouraging unless you work at OR... just saying. :-)

    Now, this experiement has already donnГ an interesting conversation. We note that, as long as the controls are instantiated independently of each other - in other words, any property of a control depends on the property of another control - this system of dialogue is progressing well. But in this experiment, I implemented the option button, which interact with each other - when set to True, the other false go. As soon as the controls are starting to interact with others (such as aging a control when a checkbox is disabled, or with expandable sections or really complex cases like updating a chart as a change in options, as happens in some config dialogs Express VI) then we leave who need ways to make reference to other controls. That leads us quickly in one of two directions: name the controls or creation of references. The naming approach is certainly my preference because it fits better with the data stream and I can make interesting effects with breaking apart some of the tree. But it quickly starts sounding like "Please implement a XAML parser in LabVIEW." For those of you familiar with XAML, in the world of user interface design, it could very well be the best thing since sliced bread. A XAML string would fit well with the data flow, and we could start that accumulate. I am reluctant to go down this road for two reasons. One, many have noted, it is really not a good library written in LabVIEW that can give me a useful analysis of XML DOM tree. Two, it is a huge project and my gut sense is that you need to fill a pretty big part of it before you would start to see any return on investment. But it is worth thinking to-I could be wrong. Wouldn't be the first time. This code I posted today can at least help you get started on the side of the generation if one of you decides to become laborious.

    I'll have my attention away from this project for the time being, coding in G is a lot of fun, and I wish I could spend several days to do, but this has been a side project and it is time to return to my projects assigned in the programming of text. Building a powerful platform for the automatic generation of user interface in LabVIEW would be really useful - I see a lot of requests for this sort of thing, and other languages are ahead of us in this area.

    [Last updated 17/05/2012 - there is an improved version.]

    This isn't a question. It doesn't have an answer.

  • Not visible in the shared disk Cluster Storage Configuration dialog box

    When installing the 10 g to Oracle clusterware dialog "Cluster Storage Configuration" shows no shared disks.

    We use:

    Windows Server 2003

    HP Eva 4400

    Glad you liked the doc - Please feed back any info on the doc direct me

    they do not need to be logical for OCR devices and vote - I'm not 100% sure devices ASM - but a best practice is to create the logical volumes for all

    Philip...

  • The System Configuration dialog box; Vista OS: Is it possible to resize the dialog box? If this is not the case, why not plan such an option please?

    Windows Vista; The System Configuration dialog box; dialog resize.

    You can not, this is a dialog box and is not scheduled to be resizable.
     
    --
    ..
    --
    "hyperluckylink" wrote in message
    News: 054b 0592 - 5a9a - 4 c 69-af57-39f8d626f1be...
    > Windows Vista; The System Configuration dialog box; dialog resize.
     
     
  • To display the taskbar and Start Menu Properties dialog box

    To display the taskbar and Start Menu Properties dialog box, click on? in the context menu of the taskbar.

    Hello

    1 are. which option you referring?

    2. what you trying to accomplish?

    I suggest to check the following links and check if it helps.

    Taskbar of Windows: http://windows.microsoft.com/en-us/windows7/products/features/windows-taskbar

    The new taskbar of Windows 7: http://windows.microsoft.com/en-US/windows7/help/better-stronger-faster-the-windows-7-taskbar

    Hope this information is useful.

  • What is the best way to create a dialog box

    Hello

    What is the best way to create a dialog box? I tried subclassing of step, but this way the window appears in the windows task bar.

    Thanks in advance, see you soon,.

    not appearing is not on the windows taskbar

    Also called dialogStage.initOwner (parentStage)
    http://docs.Oracle.com/JavaFX/2/API/JavaFX/stage/stage.html#initOwner%28javafx.stage.window%29

  • How to save the .txt file without opening a dialog box.

    Hello..

    How to save the .txt file without opening a dialog box.

    It is impossible to Flash running in the browser.

  • question of remote server in the site Configuration dialog box.

    Hello

    I received client ftp information so that I can connect to its server to download files.

    The new CS5 box installation site is a bit different (hard)...

    I set up the folder on my desktop to download and set up the site (directions).

    Problem: under the "Servers" tab, there name address remote connection and tests... mine has two lines of info.

    The top one is my ftp from my personal site.

    Below, it is the only one that I created just to get the download and I gave her a false name.

    I have to remove the top? Because when I go to download it downloads files in my personal site - not customers. Or, should I uncheck "remote" from the top and activate at the bottom.

    I don't want to affect my site at all. Please explain how this new method works... How can I control + choose what server I want content to download from.

    I mean, if I had to remove this dialog box mine, then switch back to the my site dialog box, my connection to the remote server are deleted as well?

    Thank you!

    Too bad. I have it.

    I hesitated to experiment, but it seems that you can select a "remote" at the same time, so all I had to do was click on the customer.

  • Article not saved when the item is in a modal dialog box of jquery

    Hi all


    I followed the instructions here:
    http://shijesh.WordPress.com/2010/04/10/jQuery-modal-form-in-Apex-4/
    to create a modal jquery dialog, this is the code that I added in the html header:
    <link rel="stylesheet" href = "http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/
    redmond/jquery-ui.css" type="text/css" />
    
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"> </script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"> </script>
    <script type="text/javascript">
    $( function() {
       $('#ModalForm').dialog(
       {
            modal : true ,
            autoOpen : false ,
            width : 425,
            closeText : 'Close',
            stack : false,
            resizable : false,
            buttons  : {
                Cancel : function() {
                         closeForm();
                    } ,
                Save : function() {
                    updateMEMOVELD();
                }
                       }
       });
    });
    
    function openForm()
    {
        $('#ModalForm').dialog('open');
    }
    
    function closeForm()
    {
        //$('#ModalForm input[type="textarea"]').val('');
        $('#ModalForm').dialog('close');
    }
    
    function updateMEMOVELD () 
    {
       var get = new htmldb_Get(null, &APP_ID.,    
                        'APPLICATION_PROCESS=f_memo', 0);
       get.add('P9_MEMOVELD',$v('P9_MEMOVELD'));
       var gReturn= get.get();
       //alert(gReturn);
       //alert($v('P9_DATUM'));
      $s('P9_MEMOVELD',gReturn);
      alert($v('P9_MEMOVELD'));
      $s('P9_MEMOVELD_COPY',$v('P9_MEMOVELD'));  
      $('#ModalForm').dialog('close');
    }
    </script>
    my situation is a little different, my modal doesn't have to perform a sql update, just to change a field
    the user will then record in the main form
    for some reason any field never gets updated in the db
    I even created an application on the application called f_memo process:
    BEGIN
      APEX_UTIL.SET_SESSION_STATE('P9_MEMOVELD',:P9_MEMOVELD);
      htp.p(:P9_MEMOVELD);
    END;
    Why my domain is not send to the db?
    It works when I remove this from the header of the region:
    < d i v id="ModalForm" title="Add Person" style=" d isplay:n one  "   >
    but then of course I have more a modal dialog box



    What's wrong?


    I put the code online at apex.oracle.com
    workspace XONIXRS
    login/password demo/demo
    Run the application
    Click lijst (invoices) without (in the region of the right sidebar)
    Then click on the button Search (search)
    a report is displayed, click on edit on the first line (200900017)
    now, a form appears, click the memo of pure and simple button
    now the modal shows upward, change the field and click Save
    Click ok (for warning) and then click on save the invoice
    you stay on the same page
    Now click on town
    and then click on edit on the first line (200900017) new
    then click on note even once, you will see that the memo has not been changed

    How comes?

    KR
    Martin

    The problem is that the creation of a region of a modal rise this area of the html code. Take a look at the DOM when you run your page and not the html source code, because that does not reflect the changes to the DOM is the loading of the page. This means that your memo field is far from the FORM tags and actually only submit to the session state. The issue is not addressed when you send page! You can follow through your debugging page. Memo is not saved and untreated.
    Try saving the value of session state is not enough, it does not really matter in this case. The time that you submit the page, session state is crushed by the submitted values of the elements.
    So what I did:


    • Move P9_MEMOVELD to the FACTUUR region, as well as all other db fields

    • change the type of hidden

    • the protected value not

    • in modal region to create a new page P9_MEMOVELD_POP, type textfield element

    • Set the source to always use a page element as a source, with the source P9_MEMOVELD

    • change of function updatememoveld:

      function updateMEMOVELD ()
      {
         /*
         var get = new htmldb_Get(null, &APP_ID.,
                          'APPLICATION_PROCESS=f_memo', 0);
         get.add('P9_MEMOVELD',$v('P9_MEMOVELD'));
         var gReturn= get.get();
         //alert(gReturn);
         //alert($v('P9_DATUM'));
        $s('P9_MEMOVELD',gReturn);
        alert($v('P9_MEMOVELD'));
        $s('P9_MEMOVELD_COPY',$v('P9_MEMOVELD'));
        */
        $s('P9_MEMOVELD',$v('P9_MEMOVELD_POP'));
        $('#ModalForm').dialog('close');
      }
      

      If you want or need the session state as a whole belongs to you, it depends on if you are using this also dynamically on the page and therefore to influence results, but I don't think it will be (it's a Memo field...)



    Additional notes:

    • Be careful with the jquery libraries! The standard libraries are included, but you add previous versions too! 1.4.2 this could cause problems of...

    • Use your models better. Why did you would wrap a region in the div tags? Change or add a model of region to be DIV tags You can then easily assign a static id in this region and target. This will save you from enveloping the wrappers wrapped (cause it is what looks like the code that is generated in the end).

  • Print the brochure-page editing and print dialog box questions

    Hi people,

    I have a small organic seed in Southern California company and I am looking to do our first seed catalog using what I would describe as a "zine" format: a letter-sized document that is folded, resulting in a booklet composed of half pages (I don't know if there is a more technical term to do this (, please correct me). I use InDesign 5 and Mac OS X Snow Leopard.


    When I started doing the document, it seemed logical to start with my page as a 'half letter' size, because I had read about the "Print booklet" feature of Adobe that would automatically print the pages in the order appropriate for folding. After doing a few pages of my catalog, I decided to do a test run this function, as I suspected things may be more difficult that it seemed. I ran against two problems while doing so, and I hope someone here can help give me an idea.


    The first problem is that I can't get the pages to impose properly by adopting a system of alternative numbering on the pages themselves. To explain: I chose '2-top stitching horse' in the settings of the printed booklet. I have a paper of 10 pages of 5 blocks spread. In the menu document, I put my layout to start on page 2 so that gaps appear side by side in the pages. However, I also want page numbers on my zine so I started a new section number (which I gave an A prefix) on what is ultimately the fourth page of the layout. This numbering comes as '1' on the fourth page and produced consecutively from here (pages 4-10, on the spread in the page layout area are labeled 1,2,3,4,5,6,7 on the pages themselves). It seems that booklet printing think my second section (A) on page 1 is where it should start stitching horse formatting. The help section on booklet written print Adobe, 'If you have split the document into sections of page numbers, you should enter section page numbers (for example, Sec2:11) "in the range field.". However, they recommend only do that if you want specific pages to the format ranges, while I would like to format the entire document. However, I tried to do that, suspicious that the first three pages were not formatted properly. However, I could not yet find a way to clarify my section A in the range box. I typed in things like "SecA:1" but I get a message that says: "one or more of the specified pages aren't valid page names." I note when I stripped the formatting of the document the print booklet feature requires the pages in the correct order. Thus, this problem is not the end of the world. However, what I lost is the ability to have numbers of pages printed on my document, unless I want to manually add to each page (and then having to deal with reformatting if I ever add or remove pages of the document in the future).


    The second and more important problem that I have is to get the pages to print even close correct. I have a printer Brother HL - 5340 D laser has a two-sided feature, and I thought there would be a way to print just two pages of my catalog (half-letter pages) on a letter page size, side by side, double faces and in the right order for folding. After trying a number of different options (by changing the page size and the page orientation in the print area), I was not able to get the printer to print these pages, with success, or even in the right size and orientation - or even on the set of law, indeed. Once I played around with all the settings I managed to pull of "Tray1" (and created a preset in the OS X print settings), but I can't understand how I got this opportunity to stick. Of course, Adobe recommends using their own printer on the Brother driver dialog box, but duplex, for example, is impossible without ebb in the print based on the OS setting. I turned, something that has worked well with other InDesign documents I created. In this case, however, I have not been able for duplex printing to work.


    I wonder if there are conflicts being created between two printer settings, or maybe I just made a mistake starting my catalog with a letter paper size "half" and now try to print two of my pages letter half on a sheet of letter-sized (and double-sided, at that). As a neophyte InDesign (six months experience) I still wonder if there is something really obvious that I'm missing.


    Does anyone have a picture of my situation?

    Waiting patiently. Thanks people...


    Quin

    chirrchirr wrote:

    Peter,

    See the screenshot above (two positions to the top) where I show the "spreads" I made in the document. I have 56 pages in 29 spreads

    The number of "spreads" appearing in the pages Panel is misleading since several ov them don't have only one page. I do not see the whole Board, of course, but my guess is that all the "spreads" we do not have two pages. Normall is the first and the last spread that are singles, but you have done strange things with the numbering.

    In any case, is printing print booklet 28 pages. The only way that can happen if additional blank pages are added is if you did not include the original White you have created. You have to go into setup to display the print dialog box and select include blank pages there.

  • Relationship between the build version in an About dialog box

    I have a request that I use the build version number auto increment feature.  And it's cool, it does ensure that I keep my build changing every time numbers!

    But I also have an about page of the dialog box where I also version number, so the customer doesn't have to go to exe, make a right click, version, etc..

    Currently, before any construction, I'll update a text box with the version number for the next generation... but this is a real pain and sometimes I forget (fortunately sound always something I check before release however).

    Is there anyway I can bind textbox value to the number of version automatically, so that I don't have to do anything manually?

    Hello

    tried THIS ?

    Best regards

  • Series HP Photosmart Prem C310: Scan option not available in the scanners on Mac and Printers dialog box

    I had a problem with my connection Wireless to my printer. I deleted my printer to my preferences system (Printers & Scanners dialog box) by mistake. I was able to add the printer to my Printers & Scanners using the IP address of the printer dialog. The work of connection to printer and I am able to print. However, I lost the option of detection (the Open Scan option does not appear in the Printers & Scanners dialog box). I installed a driver from Apple and I also installed a driver of HP. The driver available for my printer model appears to be a patch only.

    Here is a screenshot of my Printers & Scanners dialog. Before I deleted my printer, she had a scanning tab.

    I tried to find a full version of the HP software for the printer but fails.

    Hello

    By consulting the user guide once more tried to locate all the other parameters that may apply, I could personally find not 1 but of course there might be there... as any router have different options and many...

    Have you checked with your ISP that you have the latest firmware for your router? any update of the firmware can help a lot with this kind of questions.

    It is the only router, right? It has no additional effect as a range extender. etc?

    You get power from the strong wifi signal for your printer and computer?

    Please let me know the results with the USB for the moment, the software is there as we have strengthened it even installed earlier...

    Please keep me with any change, I'll try to think of other measures to try while waiting...

    See you soon,.

    Shlomi

  • How to apply the font to Yes/No confirmation dialog box?

    Hello everyone,

    Every time I call it "Dialog.ask (...)", it will appear a dialog box with a default font.

    I would replace the provided default font.

    Can someone please suggest a few ideas...

    Thanks in advance...

    Vinay...

    The FontManager allows you to tune your application policies:

    http://www.BlackBerry.com/developers/docs/5.0.0api/NET/rim/device/API/UI/FontManager.html#setApplica...

    If this does not work, try the same with system fonts:

    http://www.BlackBerry.com/developers/docs/5.0.0api/NET/rim/device/API/UI/FontManager.html#setSystemF...

    E.

  • I use an iMac with El Capitan and Photoshop CS6. I'm trying to add a shadow to a text on a picture. I followed the instructions to double the text layer but not dropshadow dialog box appears and I can't. Where would it be?

    Double click on the text on the right side of the display panel does not cause a dialog box open. I just need to know where the dialog box is so I can add the drop shadow

    Please make sure that you double-click on the text layer in the layer panel not the name of the layer. With the text, it can be difficult if the name is too long. You can also right-click on the text layer in the Panel and bring up the contextual menu and select 'blending Options '.

  • Message box in function that returns a list deletes the created list... (Dialog box)

    Hello

    I work with a complex dialogue, its purpose is to manage a section in the PDF file.

    I use a "mclv" object in the dialog box to represent data entries in the PDF file in order to manage the result in another section.

    I created a function that creates the list based on a previous section in the PDF object, the function works perfectly well.

    But I have a small question, the function used to create the list of the dialog box object performs a check with the former front list created, as appropriate,

    and if in any case it is different from the old list, I need to warn the user that the list has changed and if there were any changes applied to the result it will be returned to zero and must be recreated.

    But when the poping that message box, all lists are deleted and nothing is displayed in the objects 'mclv.

    If I remove the message box, the lists are all very well...

    Is there anyone who have come across something like this before? If so, any solution to this problem?

    I asked my question a bit too quickly, I already found a work around

    But I still don't understand why he behaves like that tho...

    I just thought how to work around this problem.

    If anyone has encountered this problem can use this solution:

    Instead of having the message inside the function to return box, I declared a global Boolean variable to the Script object

    If the message box must be displayed, the Boolean value is set to True

    Once in the initialize event of the dialog box, if the value Boolean true I call the message box and reset the value Boolean false

Maybe you are looking for