Jump to content

nathan-murphy

Members
  • Content Count

    18
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by nathan-murphy


  1. In any validation setting, the tolerances around measured and reported values is critical, and so is tracking the tolerances for any given parameter being measured, with any measurement device or sensor. To automate the calculation of these ranges and limits within our overall application, we must track the specifications of any of these parameters. This used to be done using a peer reviewed excel table, and was loaded into LabVIEW using the Report Generation Toolkit. This had several drawbacks, but that's not the point of this post. The point is that using Excel means that any text becomes free text and if data isn't entered correctly then it can cause issues with parsing. So I created something I call the Specification Manager. It's a small utility that is intended to only be used by validation test case developers to add new specifications to the database of available specifications that can be tested, or to add new hardware for use in the validation tool. I built this tool in about 2-3 days as a way of trying out the JKI Flat UI 2.0 and the Design Palette.

     

    Here's the home screen of the tool:

    image.png.ed23e35807da1bbf2e6f9796e90bae51.png

    Some things that I think make this a nice UI:

    • Dark background (76, 76, 76) and a nice pop of vibrant color, the icon for the tool uses the same two colors to provide consistency
    • All native windows elements are hidden as this tool is very small and simple, there's no need for a toolbar, etc.
    • Our company uses Century Gothic as a common font in many places, so I used that for some of my UI elements (title bar, specifically)
    • System Chiselled Line separating workflow components of the tool. That horizontal line doesn't look like much, but it's a visual separation of the two things you're supposed to do with this tool. 1) select a file path, 2) manipulate the individual .spec files
    • Listbox to store data - I hate working with listboxes, but I think they are the best UI element for storing continuous data. They look way better than any array I've seen when the data is simple.

    To add a new specification to the library, you press 'add' and get a dialog window that's a sort of wizard:

    image.png.16a43e3684356836ce8dec0548b2b480.png

    I used the JKI built-in buttons here to give some sort of icon to the various specifications that can be created. I also changed the color scheme of this wizard to 'light' to signal to the user that this is a dialog/configuration type window and not really part of the core functionality of the utility. If this were a project for a wider audience, I would have customized them a bit more, but as-is, I think it's okay. The symbols are kind of meaningless as the library isn't as vast as I'd like it to be. After selecting the type of specification, you enter the name of it:

    image.png.442eb20880571a998cf7c1f9ede617aa.png

    This screen continues to use consistent fonts, and buttons from the previous screen. Pressing 'Continue' gets you to the heart of what this application is intended to do, modify specifications. 

    image.png.23c9425701b8322081387e45cdd808ca.png

    (*I typed in random data, please don't double check these against the actual specifications of the 6218 - I will not be using this data in production) I used an array of customized clusters containing the JKI Flat UI 2.0 numerics and enums, then used some more of their pre-built buttons at the bottom for continued navigation. I used the same pop of color on the cancel button, mostly for fun, but also as a way of drawing immediate contrast between the other two operations that the buttons provide.

     

    That's about it!

    This is an internal-only tool, but I think that editing specifications using this small purpose-built utility will be easier than us using Excel to do the same thing. 

     

    Overall impressions of the Flat UI 2.0 library:

    Pros:

    • good selection of commonly used buttons and controls, consistent theme across numerics, strings, enums, file paths, and buttons - makes a consistent UI easy to build
    • Color customization of buttons is easy, including customization of the hover-state (which I did to the 'X' button on the home screen of the utility)

    Wishlist:

    • As with any library of icons and UI elements - a wider selection. I had a hard time finding icons for my 'Add Specification' wizard screen and had to reach pretty far
    • Design palette only launches when using the left ctrl+shift buttons, it'd be nice for it to work with either left or right

    Cons:

    • Working with the String controls and indicators was a little strange. There are actually two resizable elements in a single control, one for the frame/background and one for the actual text field. I had to be careful when resizing the control to make sure that both fields were resized correctly. Also the front panel snapping meant that the border around the text area was easy to lose if the text field itself was resized incorrectly. 

    I will probably continue to use the UI library for the internal only developer tools, but for the main applications that I'm working on there is still heavy customization specific to my company that I will continue to have to do. 

    Thanks for reading - feel free to ask any questions about the design choices or other elements of the UI for this tool.

    • Like 1

  2. I think I might be able to share this specific utility I'm working on. It's a very small piece in the big picture of what I'm working on, and I use little utilities like this to try out new toolkits, modules, or LabVIEW components to see what might be worth bringing into our more mainstream code.

    In this case, the utility I'm working on is an accuracy specification management tool. I can probably post a few screenshots and thoughts on the UI development once I finish it up.

    • Like 1

  3. Ah - yep, that worked!

    I usually try and keep my styles separate from the data types, rather than have my type defs styled a certain way, too. But I think for the convenience of not having to recreate my enum and still have it linked to the typedef then this is worth it. 

    Thanks again Jim

     

    Edit:
    I opened my classic enum typdef, replaced it with the jki one, then to avoid replacing all instances of the type def with the JKI one, I went back to my front panel that I wanted to change, used the quick drop shortcut ctrl + p and selected my typedef. That replaced just the instances with the JKI enum, then I went back to my typedef and reverted it to the boring classic style. 

    Quote

    voilà!  

     

    • Like 1

  4. I have a type def'd enum (not strict) and I want to change the style of it from classic to the JKI Flat one for my UI. Using a quick drop shortcut, I can easily change from system, to NXG, to classic, etc. The JKI flat controls don't show up in quick drop (as far as I can tell?) so I can't use the ctrl+p shortcut to replace it. I can use the right-click menu and navigate to where the control is on disk and replace it that way, but then it loses all of the items in the enumeration. Is there any way to support the same quick drop replacement shortcut to maintain enum items? (I know that I can use the Item Names property to recreate the enum, and that's what I did for my application, but it would be nice to have the same functionality for the Flat UI controls.)

     

     

    • Upvote 1

  5. 8 minutes ago, Jim Kring said:

    Sometimes the distances/padding are event tweaked by hand to be more visually balanced than geometrically balanced (e.g. to off-site for any "optical illusions").

    Story of my life when dealing with LabVIEW UI elements... 

     

    Thanks for the explanation - I'll keep that in mind when placing buttons on my UI. I tend to put icon-only buttons in the horizontal mode for space saving, or I'll put the text underneath an icon similar to the ribbon in Microsoft Applications, or the left-bar in their newer applications (Teams).

    Combination of icon and text center aligned in a Laid Out Horizontally layout, and stacked vertically in the same space:

    image.png.5f362b308fd61d81631a96cd38d59bd0.png

    Icons and Text all center aligned:

    image.png.9ce3754eb80c72cfb27d442f46f70bb3.png

     

    Of course, this all heavily depends on how the user plans on interacting with the UI. In my case, the applications I'm working on a very document centric and have lots of configurations and menus, similar to Office applications. To keep the layout familiar to the user, I mimicked the Ribbon and File Menu ideas.

    Thanks for being so receptive to the feedback. I can tell just how much painstaking pixel pushing work went into these UI elements and am really loving the look and feel (and built-in color customization!) of the new controls. 

    • Like 1

  6. When stacking buttons vertically, I noticed that the icons in the buttons are not aligned. I noticed this when comparing it to a similar menu in a built-in windows application. The icons are generally aligned with each other, and the text is all aligned to the left as well. It would be nice if there was either another set of buttons for left-align menus. In fact, it looks like I'm not the only one who thinks this:

     

    Flyout menu from the Design palette:

    image.png.d02c8a62d40bfd7c06ad1cb4587f41ca.png

     

    Buttons as dropped on my Front Panel from the Design Palette:

    image.png.cb1222e3d48d6bbbe4bf50acaac95394.png


  7. This isn't a problem that's specific to any kind of SMO or any computer. If I have an application that uses an SMO and I put a breakpoint in the Process VI, then the application finishes as normal, the development environment slows to a crawl. Closing and re-opening the project is enough to get the dev environment back to normal, but I'm wondering if anyone else using SMOs has seen this before? Any tips on how to avoid this from happening? 


  8. @Jim Kring Just tried it out. I downloaded and installed from the download link from option A, which installed 1.0.0.155 again. Then VIPM said there was an update available which installed 1.0.1.176. I entered my email address and was prompted for an offline activation. The link took me to the form with all of my information pre-filled (nice touch!) and I was able to activate with no issues! All good here now. Thanks for the quick fix

     

    • Like 1
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.