UI Interest Group Documents

cancel
Showing results for 
Search instead for 
Did you mean: 

Windows 8 Style UI demo

I finally had time this afternoon to post a back burner project I've been working on on and off (mostly off) for a couple of months.  Some things are still rough around the edges but rather than wait for it to be perfect I figured I'd put it out there just in case someone finds it useful.  Hopefully I'll find time to continue to work on it.

My goal was to create an application in LabVIEW that looks and feels like a Windows 8 style application.  I also hoped to build such an application on top of the Actor Framework in such a way that others could use some of my base classes in their applications. 

The code is attached - unzip and run "Launcher.vi" in the Win8uiDemo folder. [LabVIEW 2012 - I'm relying on Actor Framework (I used 4.1 but it should work with 4.0) so I don't plan to back-save to any previous versions.]

Quick Video Demo

Win8uiFramework quasi-UML Class Diagram

Win8uiFramework.png

Win8uiDemo quasi-UML Class Diagram

Win8uiDemo.png

Comments
Thoric
Trusted Enthusiast Trusted Enthusiast
Trusted Enthusiast
on

That's astonishing! I can't wait to get my proverbial teeth into this!

Well done sir!

Thoric (CLA, CLED, CTD and LabVIEW Champion)


pallen
Active Participant
Active Participant
on

The video is really impressive.  Can't wait to check out the code. 

---------------------
Patrick Allen: FunctionalityUnlimited.ca
battler.
Active Participant
Active Participant
on

Code is broken for me.  Using LV 2012 on Win 7 64.

Active Participant
Active Participant
on

Do you care to elaborate? Won't compile? Missing dependencies? Incorrect behavior? Errors getting thrown?

Not applicable
on

I ran the Launcher.vi from C:\Users\David\Desktop\Working\Simons Windows 8 UI Demo\Win8uiDemo and got the following missing dependency:

Actor Framework Debug.png

Opening the LabVIEW Project shows the following files as missing:

Win 8 Project.png

Active Participant
Active Participant
on

David, you probably need this: https://decibel.ni.com/content/docs/DOC-23398

Not applicable
on

Thanks for the link David. Still getting lots of errors, as shown below. I'll try and sort through them later, and see what may be causing the problems on my PC (Wiindows 8 - 64bit).

LV W8 Error.png

Thoric
Trusted Enthusiast Trusted Enthusiast
Trusted Enthusiast
on

Oh dear, I'm afraid it's broken for me too. I've got Actor Framework 4.1.0, and when I load this project all the Launch Actor VIs appear to be being called with an extra (invalid) input. I'm not yet familiar with the Actor Framework so I'm not really in a position to investigate this, but does this snapshot help?

Launch_Actor_extra_input.jpg

Thoric (CLA, CLED, CTD and LabVIEW Champion)


Drew.Rankin
Member
Member
on

Same here. Broken. Looks like the XControl is the culprit for the most part. It is also looking for files in the Emission Monitoring UI Working Copy.

BrokenArrow.PNG

I have gotten the demo to work by disconnecting the following VI's from their library:

Does It Fit.vi

Draw Text with Subscripts.vi

Find Max Font Size.vi

Find Subscript Text.vi

Find Text Origin.vi

Also, I had to replace the String XControl in the SensorViewSmall and SensorViewDetailed classes with the XControl in the project along with removing the property nodes for the string control in the Actor Core.vi's of those classes. The strings in the XControls don't look quite right now because of the missing functionality, but the demo does work!

Drew

SimonH
NI Employee (retired)
on

Hmmm, looks like my SCC might have exported an older revision -- I thought I had fixed all these things.  Don't waste any time getting it to work, I'll figure it out and repost.

SimonH
NI Employee (retired)
on

OK should be fixed now folks. I tested by moving from one VM to another so hopefully it's good.

Sorry for the bad post.

@Thoric - that's an artifact of me switching from the Debug AF to the release AF.  Launcher.vi in the Win8uiFramework library (i.e. not the one to run for the demo) is probably still broken like that.  Just delete the broken wire and it will run fine if you want to play with that one.

@DavidCorney, @Drew.Rankin - at some point in development I messed up the library association of the XControl.  Apparently I exported the messed up version.  It should be fixed in the zip file now.

DanyAllard
Active Participant Active Participant
Active Participant
on

wow, it's a realy good example of using Actor Framework

Thank you Simon for this

LabVIEW ChampionArchitect
vishots.com
Member
Member
on

Simon, I'm impressed. Great Job!

Brandyn
Member
Member
on

This is awesome! Great job!!!!!

Certified LabVIEW Architect
Certified Professional Instructor
Thoric
Trusted Enthusiast Trusted Enthusiast
Trusted Enthusiast
on

This is truly inspirational - thank you muchly for sharing this with us all !

Thoric (CLA, CLED, CTD and LabVIEW Champion)


crelf
Trusted Enthusiast Trusted Enthusiast
Trusted Enthusiast
on

Mmmmmmmm coffee...





Copyright © 2004-2023 Christopher G. Relf. Some Rights Reserved. This posting is licensed under a Creative Commons Attribution 2.5 License.
OwenGomsh
Member
Member
on

Thanks

Edjsch
Active Participant
Active Participant
on

Is there supposed to be audio? There is none for me which makes it difficult to understand what's going on.

~Samuli
Member
Member
on

Really nice job Simon!

Style is Everything
ThiCop
Trusted Enthusiast
Trusted Enthusiast
on

Hey Simon,

This week I had an Application Assistance with a customer that had made a small demo where he integrated your "Windows 8 UI" in combination with a Measurement Abstraction Layer..

Just to let you know that customers seem to be very eager to use this..

Kind Regards,
Thierry C - CLA, CTA - Senior R&D Engineer (Former Support Engineer) - National Instruments
If someone helped you, let them know. Mark as solved and/or give a kudo. 😉
SimonH
NI Employee (retired)
on

ThiCop,

That's great to hear.  With some of the more complicated posts I make I'm never sure if people are able to use the code I post.  The old adage of "it's easier to write code than read code" definitely kicks in with larger projects like this one.

Not applicable
on

I can't see any code attachement. The only attachment I see is a  "socialgroup_image_small (4.3 K)? I'm logged in with my NI profile, but I don't think I'm a "member" of the UI interest group.

When I click "log in or register" and enter my NI profile user name and password, I get logged in as a "restAPI" in this group, and still no download link to the code?

NOTE: I am NOT "restapi" and I do not know where it came from or the NI e-mail address that is associated with it. I use my own e-mail and password to log in.. this is really weird.

SimonH
NI Employee (retired)
on

It looks like our website is experiencing some issues.  All of the images on this thread are missing and have been replaced by odd images.

Robert_J_Loomis_III
Member
Member
on

Nice job! Looking forward to looking through the code

Cube404
Member
Member
on

Just for your project, I am installing Labview 2012 DS, which I delayed over 3 months.

Keep it up Simon

matt.baker
Active Participant
Active Participant
on

Great example!

Haha, love the Pac-Man 'Error Eater' icon.

I have managed to port the actor framework and message maker tool to LV 2009 and get some of this working.

Thanks.



Using LV2018 32 bit

Highly recommended open source screen capture software (useful for bug reports).

https://getsharex.com/
Prash_32
Member
Member
on

Its Superb.. Great work..:)

cirrusio
Active Participant
Active Participant
on

This is very nice, Simon.  I am currently looking at how we can use a similar architecture for a project that I am working on.

I have one question though related to the implementation: in Stop Core.vi of the Viewable Actor, you fire the user event Stop to kill the viewable Actor Cores and then immediately destroy the user event; is there any possiblility that you will run into a race condition with this (i.e. is it possible to destroy the event before the event handler can get to it)?  I do something similar but have always had the actual UI handle the destruction of the event.  Your method looks a lot cleaner, but I have always been concerned about the main UI not receiving the event.

Cheers, Matt

SimonH
NI Employee (retired)
on

Matt,

There's no danger of a race condition. Once the event is generated, all the event structures registered for it will get the event, even if it takes them a while to get back around to processing the event. You are safe to immediately destroy the event refnum without impacting the event structures.

I'll be honest though -- I did need to check in with R&D to make sure this was the case. You had me worried for a few minutes there.

~Simon

andremakoski
Member
Member
on

wonderfull!!!

Is it possible to generate a 2011 version?

TomFantasia
Member
Member
on

Just came across this.  Absoluteley amazing. 

kwkengineer
Member
Member
on

Simon - I'm attempting to re-use your framework, but hit a snag while incorporating the Sensor Definition library.  It is coupled to your uiDemo lib.  I found the methods in Sensor.lvclass which sends messages to the uiDemo. If you have time to improve the framework, maybe consider removing this coupling.

Good work!

battler.
Active Participant
Active Participant
on

Hi Simon,

What resources (hopefully brief) did you use for designing UI to Windows 8 style?  What fonts and layout style etc..

The Windows 8 User Experiences guideline I found is very long..

Thanks.

nolsqn
Active Participant
Active Participant
on

amazing work man thumbs up

Regards
MyLabSQL
Member
Member
on

Good job simon!

I finally managed to create an application using this code.

Thank you for sharing here.

http://www.produkweb.com/images/wolsmotion-trial.jpg

Aventador
Member
Member
on

Pure Excellence ! Mind blowing work. . . Hats Off. .

-------------------------------------------------------------------------------
Subramanian
LabVIEW Developer


Life may control my car, but I steer it ! !
eokeefe
Member
Member
on

Thanks for posting this, Simon, I've been struggling with AF for a very long time Between this and NI's Hands-On tutorial there aren't really any better ways of learning AF! Thanks again Simon.

Amiri
Member
Member
on

Great demo, thank you.  I've seen this before, did you present this at an NI Week?

What tools did you use to create the UML? 

Is there one (or two) UML tools that LabVIEW developers out there prefer? 

I'm trying to get into this UML stuff, but am not sure where to start, open to suggestions.  GOOP? Symbio? StarUML?

egraham
Member
Member
on

I've heard that NI uses yEd for diagrams and UML. I've grown particularly fond of Gliffy.

VenuGopal@57
Member
Member
on

Mindblowing example i didnt know we can do this sort of vi's in Labview. can i take this example as a jump start to Actor Framework?  Guide me Folks  Thanking You All,  Venu

Venugopal
Ajay_MV
Active Participant
Active Participant
on

Man..! That's really astonishing... I didn't get a chance to look at this for almost 2+ years though I use Win 8/10.  Even after then, it I said "huwoohh.." when I saw the video..

--
Ajay MV


xband
Member
Member
on

This is very nice.  I opened it with no problems in Lv2013.  Though I have no idea how to exploit this structure for my Crio project.  I'm looking for UI examples for touchscreen computers with a CRio-9081.

Would also like to use something similar for a 9035.

Thanks for any insight.

Jim

AliA15
Member
Member
on

Amazing work

ewaqas
Member
Member
on

Great Work !  Can someone explain the development flow if it is not restricted?

thank you

Waqas

rupesh.v
Member
Member
on

its very awesome designed...thanks for sharing .... 

Contributors