SlideShare a Scribd company logo
1 of 29
Download to read offline
Conditional Logic,
Variables, & Raised Events
  Presented by Loren Baxter & Fred Beecher
Conditional Logic: WTF is it?

  Conditional logic allows you to prototype dynamic
interactions that respond to user input and actions in
                       real time.
WTF do you use it for?
 Forms                            Streamlining Prototypes

  •   Dynamic feedback             •   Reducing the number of
      messages                         dynamic panels/states
                                       required to prototype
  •   Conditional visibility of        advanced interactions
      functionality

  •   In-field labels               •   Dynamically configuring
                                       navigation masters that
 Advanced Interactions                 appear on all pages

  •   Predictive search            •   Dynamically supporting
                                       different functionality for
  •   Faceted browsing                 different logins (user types)

  •   Filtering & sorting

  •   Personalization
Variables: Isn’t that programming?


 Variables allow you to remember data entered or
selections made by users on one page and use it on
                 one or more pages
Stuff you can do with variables
  •   Store & display usernames       •   Use a shipping address
                                          entered on one page as a
  •   Store states, e.g., whether a       billing address on another
      user is logged in or not            page
  •   Store user types to control
                                      •   Keep track of which pages
      what features are displayed         have been visited during a
  •   Display the selected option         session
      of a dropdown from one
      page within the text of         •   Store user preferences to
                                          mimic sessions
      another page
Raised events? Okay, seriously.

Raised events allow you to create custom interactions
attached to different instances of the same master...

   and if you understand any of that we’re very
impressed and think that you should give the rest of
                     this talk.

   Seriously though.We’ll explain for real. Promise.
Conditional Logic
How to create conditions
You can create one condition per case. Multiple conditions on the
same interaction require multiple cases.
 1. Double-click any interaction to create a new case
 2. Click on “Add Condition” at the top of the case properties dialog
 3. Use the Condition Builder dialog to specify the components of your
    condition
 4. Choose to match all components or any component
Conditions can be set on...
•   The value of a variable
•   Whether a given checkbox or radio button is selected
•   The current selection(s) in drop lists and list boxes
•   Text displayed in a text field or text area
•   The currently displayed state of a dynamic panel (awesome!)
•   Whether a dynamic panel is currently visible (super awesome!)
•   The number of characters in a text field or area (weird but useful)
•   The number of characters in a variable (weird but occasionally useful)
Enough talk! Let’s do stuff!
Login form with feedback
1. Create dynamic panels for each field, with
   one state per error message

2. Set the panels to hidden

3. Add a case for each possible error to the
   OnClick interaction on the Login button, plus
   one for no error

4. If there is an error, change the state of the
   appropriate panel to the appropriate state

Wait... what if I want to display multiple errors at
once?

   We’ll talk about that in the Logic Tricks section
                     coming up.
A little more complex this time...
Login form w/inline validation
1. Create the firsrt field and validation panel.

2. Create all the states of the validation panel.

3. Set up OnLostFocus logic on the first field.

4. Repeat for each new field, including case
   specific errors and logic.

5. Set up logic on submit button.appropriate
   panel to the appropriate state
Conditional Logic Tricks
•   Executing more than one case at a time
•   Choosing which case to execute dynamically
•   Affecting the logic in the OnPageLoad interaction of a master through
    the OnPageLoad interaction of the pages they’re assigned to
Executing Multiple Cases
                Multiple file upload with
                feedback
                1. Create the first file upload field in a dynamic
                   panel.

                2. Create all states for the DP.

                3. Set up the "Browse File" interaction to place
                   text in the field.

                4. Copy the DP a few times, update all labels
                   and values (there are more than you think!)

                5. Set the Upload button to check each field for
                   text and set panel states accordingly. Be sure
                   to change ELSE IF to IF.
Letting the User Choose
               Choosing cases manually
               1. Create the "Weather" panel with empty, day,
                  and night states.

               2. Place the "Check Weather" button.

               3. Create two onclick cases for the button, label
                  each one.

               4. Be sure not to set any conditions.
Variables
Variables let you do 3 things
1. Store a text value
2. Read that value
3. Check how many characters the value is


             But before you do anything, you need to create them!
How to create variables
There are two ways...
 1. Go to Wireframe > Manage Variables or
 2. Click on “Add New...” at the bottom of the variable list on the
    Condition Builder dialog or the Set Variable dialog




Variable names must contain 25 characters or less and be alphanumeric
Variables have issues, just like us
 Issues                             Solutions

  •   Internet Explorer chokes if    •   Don’t use IE, or...
      you use too many variables
                                     •   Limit yourself to 25
                                         variables

  •   Navigating through your        •   You can’t do much about
      prototype with the                 this other than be aware of
      generated site map clears          it if your prototype starts
      variable values                    having problems

  •   Variable values can stick      •   Add a hidden button on the
      around between user tests          first page of your prototype
                                         that does nothing but set all
                                         variable values to blank
Enough talk! Let’s do stuff!
Persistent font size selector
1. Create the page structure and fill in
   homepage.

2. Create a DP that contains the diff font sizes.

3. Set up the font size buttons to change the
   DP and set the FontSize variable.

4. Use onPageLoad to set the proper DP state.

5. Make the Article pages similarly and link it all
   together.
Telling people who they are
Persistent username display
1. Create the login UI

2. Make clicking the Log In button store the
   username in a variable and go to another
   page.

3. Create a master with a text panel that will
   display the username

4. Assign that master to every page

5. On OnPageLoad of the master, make it so
   the text panel shows the username if the
   username variable isn't blank
Variable Tricks
•   Inserting variable text into text panels, fields, & areas
•   Recursively inserting variable text into text panels, fields, & areas
•   “Borrowing” variables temporarily
•   Affecting the logic in the OnPageLoad interaction of a master through
    the OnPageLoad interaction of the pages they’re assigned to


         Make sure to check out Loren & Jeff ’s Tips & Tricks panel for
                        INSANE variable weirdness!
Getting Fancier with Variables
Entering a pin via keypad
1. Create the keypad and textfield.

2. Set up the CurrentDigits variable.

3. Create the button logic:

  •   Check for four digits

  •   Insert the new digit

  •   Check for success condition

4. Copy the logic to each button, update the
   specifics.
OnPageLoad Order
•   Masters have OnPageLoad too!
•   When a page loads, the page’s OnPageLoad interaction is executed
    before the OnPageLoad of any masters on the page
•   This lets you streamline dynamic prototypes by allowing you to put
    complex logic & cases on a master once rather than on multiple pages


Okay, so how?
1. On master OnPageLoads, create conditions based on the value of a
   variable
2. On page OnPageLoads, set the value of the variable that master
   OnPageLoads are evaluating
OnPageLoad Order - Example
OnPageLoad - Master   Static accordion navigation
                      1. Create a side-nav master composed of one
                         single-state dynamic panel per main nav item
                      2. Add a transparent rectangle with the link
                         text to the panel state (define selected style)
                      3. Create a second panel & add the sub-
                         navigation links to it & set it to hidden
                      4. Create a variable called NavVar
                      5. Add one case for each main nav item to the
                         master’s OnPageLoad interaction
                      6. Make each case conditional on a different
                         value of NavVar
                      7. On each case, set it to make the nav link
OnPageLoad - Page        selected, show the subnav panel, & move the
                         panels below it down
                      8. Set the appropriate value of NavVar on each
                         page’s OnPageLoad interaction
Raised Events
Crappy name, awesome feature
Raised events allow you to make masters that can affect objects
outside of them through custom interactions
Part 1: Raise an event                             Interactions Pane - Widget on Master

1. Add the “Raise Event” action to any
   interaction on a widget within a master

2. Add an event, paying attention to syntax, and
   select it

Part 2: Use the custom interaction                 Interactions Pane - Master Instance

1. Drag an instance of the master to a page and
   select it

2. Check out the interactions pane... the event
   you raised shows up as an interaction!

3. Assign actions to the interaction like normal
Uses for raising events
1. Re-using interactive functionality that needs to affect widgets outside
   itself
2. Re-using interactive functionality that needs to work slightly
   differently in each instance
3. Creating & maintaining a tightly controlled pattern library
Faceted Navigation
Facet Master & Item List   1. Create a master composed of one single-
                              state dynamic panel per facet
                           2. Add a transparent rectangle with the link
                              text to the panel state (define selected style)
                           3. Create a second panel with enough states to
                              accommodate all values that can be selected.
                              Add value links to the default state.
                           4. Add the Raise Event action to EVERY value
                              link
                           5. Add actions for affecting the facets to
                              appropriate value links (setting panel states,
                              moving panels, hiding, toggling selected)
                           6. Add Facets master to a page
                           7. Create a results list dynamic panel
                           8. Assign Set Panel State actions to the raised
                              events to allow choosing a facet value to
                              switch the state of the results panel
Loren Baxter            Fred Beecher
loren.baxter@gmail.com   fbeecher@gmail.com
    @lorenbaxter           @fred_beecher

More Related Content

What's hot

Artificial intelligence and IoT
Artificial intelligence and IoTArtificial intelligence and IoT
Artificial intelligence and IoTVeselin Pizurica
 
Service Oriented Architecture (SOA) [5/5] : SOA Best Practices
Service Oriented Architecture (SOA) [5/5] : SOA Best PracticesService Oriented Architecture (SOA) [5/5] : SOA Best Practices
Service Oriented Architecture (SOA) [5/5] : SOA Best PracticesIMC Institute
 
Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)WSO2
 
Introduction to Aneka, Aneka Model is explained
Introduction to Aneka, Aneka Model is explainedIntroduction to Aneka, Aneka Model is explained
Introduction to Aneka, Aneka Model is explainedDr Neelesh Jain
 
Introduction to IOT & Smart City
Introduction to IOT & Smart CityIntroduction to IOT & Smart City
Introduction to IOT & Smart CityDr. Mazlan Abbas
 
Internet of Things (IoT) and Big Data
Internet of Things (IoT) and Big DataInternet of Things (IoT) and Big Data
Internet of Things (IoT) and Big DataGuido Schmutz
 
Introduction to IoT Security
Introduction to IoT SecurityIntroduction to IoT Security
Introduction to IoT SecurityCAS
 
Machine Learning and Internet of Things
Machine Learning and Internet of ThingsMachine Learning and Internet of Things
Machine Learning and Internet of ThingsSofian Hadiwijaya
 
IoT Security, Threats and Challenges By V.P.Prabhakaran
IoT Security, Threats and Challenges By V.P.PrabhakaranIoT Security, Threats and Challenges By V.P.Prabhakaran
IoT Security, Threats and Challenges By V.P.PrabhakaranKoenig Solutions Ltd.
 
Intrusion detection system ppt
Intrusion detection system pptIntrusion detection system ppt
Intrusion detection system pptSheetal Verma
 
Cloud of things (IoT + Cloud Computing)
Cloud of things (IoT + Cloud Computing)Cloud of things (IoT + Cloud Computing)
Cloud of things (IoT + Cloud Computing)Zakaria Hossain
 
VTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
VTU Open Elective 6th Sem CSE - Module 2 - Cloud ComputingVTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
VTU Open Elective 6th Sem CSE - Module 2 - Cloud ComputingSachin Gowda
 

What's hot (20)

Virtualization
VirtualizationVirtualization
Virtualization
 
AI Lecture 6 (logical agents)
AI Lecture 6 (logical agents)AI Lecture 6 (logical agents)
AI Lecture 6 (logical agents)
 
Artificial intelligence and IoT
Artificial intelligence and IoTArtificial intelligence and IoT
Artificial intelligence and IoT
 
Service Oriented Architecture (SOA) [5/5] : SOA Best Practices
Service Oriented Architecture (SOA) [5/5] : SOA Best PracticesService Oriented Architecture (SOA) [5/5] : SOA Best Practices
Service Oriented Architecture (SOA) [5/5] : SOA Best Practices
 
Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)
 
Introduction to Aneka, Aneka Model is explained
Introduction to Aneka, Aneka Model is explainedIntroduction to Aneka, Aneka Model is explained
Introduction to Aneka, Aneka Model is explained
 
Introduction to IOT & Smart City
Introduction to IOT & Smart CityIntroduction to IOT & Smart City
Introduction to IOT & Smart City
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Edge Computing
Edge ComputingEdge Computing
Edge Computing
 
Introduction to Internet of Things (IoT)
Introduction to Internet of Things (IoT)Introduction to Internet of Things (IoT)
Introduction to Internet of Things (IoT)
 
Virtualization in cloud computing
Virtualization in cloud computingVirtualization in cloud computing
Virtualization in cloud computing
 
Internet of Things (IoT) and Big Data
Internet of Things (IoT) and Big DataInternet of Things (IoT) and Big Data
Internet of Things (IoT) and Big Data
 
Introduction to IoT Security
Introduction to IoT SecurityIntroduction to IoT Security
Introduction to IoT Security
 
Machine Learning and Internet of Things
Machine Learning and Internet of ThingsMachine Learning and Internet of Things
Machine Learning and Internet of Things
 
IoT Security, Threats and Challenges By V.P.Prabhakaran
IoT Security, Threats and Challenges By V.P.PrabhakaranIoT Security, Threats and Challenges By V.P.Prabhakaran
IoT Security, Threats and Challenges By V.P.Prabhakaran
 
security and privacy-Internet of things
security and privacy-Internet of thingssecurity and privacy-Internet of things
security and privacy-Internet of things
 
Intrusion detection system ppt
Intrusion detection system pptIntrusion detection system ppt
Intrusion detection system ppt
 
Cloud of things (IoT + Cloud Computing)
Cloud of things (IoT + Cloud Computing)Cloud of things (IoT + Cloud Computing)
Cloud of things (IoT + Cloud Computing)
 
VTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
VTU Open Elective 6th Sem CSE - Module 2 - Cloud ComputingVTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
VTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
 
Wireshark
Wireshark Wireshark
Wireshark
 

Viewers also liked

Axure Predictive Search Demo
Axure Predictive Search DemoAxure Predictive Search Demo
Axure Predictive Search DemoJonathan Lupo
 
How to fake a database/backend in Axure... and more
How to fake a database/backend in Axure... and moreHow to fake a database/backend in Axure... and more
How to fake a database/backend in Axure... and moreSandra González
 
How to Extend Axure's Animation Capability
How to Extend Axure's Animation CapabilityHow to Extend Axure's Animation Capability
How to Extend Axure's Animation CapabilitySvetlin Denkov
 
Managing Visual Design in Axure
Managing Visual Design in AxureManaging Visual Design in Axure
Managing Visual Design in AxureFred Beecher
 
Level-Up Your Axure Skills: A Deep Dive into the Prototyping Powerhouse
Level-Up Your Axure Skills: A Deep Dive into the Prototyping PowerhouseLevel-Up Your Axure Skills: A Deep Dive into the Prototyping Powerhouse
Level-Up Your Axure Skills: A Deep Dive into the Prototyping PowerhouseDaniel Newman
 
Prototyping invision vs axure
Prototyping invision vs axurePrototyping invision vs axure
Prototyping invision vs axureAndrii Rusakov
 
Card sorting exercise
Card sorting exerciseCard sorting exercise
Card sorting exerciseHiraminDallas
 
Axure for dummies, that don't even know they are
Axure for dummies, that don't even know they areAxure for dummies, that don't even know they are
Axure for dummies, that don't even know they areOscar Gonzalez Garza
 
Sorting Things Out: An Introduction to Card Sorting
Sorting Things Out: An Introduction to Card SortingSorting Things Out: An Introduction to Card Sorting
Sorting Things Out: An Introduction to Card SortingStephen Anderson
 
Guerilla Usability Testing
Guerilla Usability TestingGuerilla Usability Testing
Guerilla Usability TestingAndy Budd
 
Django - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosDjango - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosIgor Sobreira
 
advance auto parts 2004_ar
advance auto parts 2004_aradvance auto parts 2004_ar
advance auto parts 2004_arfinance48
 
Rx for Ad Agencies Suffering From Direct, Digital and Social Media Confusion...
Rx for Ad Agencies Suffering From Direct,  Digital and Social Media Confusion...Rx for Ad Agencies Suffering From Direct,  Digital and Social Media Confusion...
Rx for Ad Agencies Suffering From Direct, Digital and Social Media Confusion...Clive Maclean
 
Fetish Furniture Portfolio
Fetish Furniture  PortfolioFetish Furniture  Portfolio
Fetish Furniture PortfolioCharles Powers
 
omnicare annual reports 1999
omnicare annual reports 1999omnicare annual reports 1999
omnicare annual reports 1999finance46
 
SPrOokjes Aoc Terra 05042011
SPrOokjes Aoc Terra 05042011SPrOokjes Aoc Terra 05042011
SPrOokjes Aoc Terra 05042011Johan Lapidaire
 
liz claiborne CodeofEthicsandBusinessPractices2003
liz claiborne CodeofEthicsandBusinessPractices2003liz claiborne CodeofEthicsandBusinessPractices2003
liz claiborne CodeofEthicsandBusinessPractices2003finance48
 

Viewers also liked (20)

Axure Predictive Search Demo
Axure Predictive Search DemoAxure Predictive Search Demo
Axure Predictive Search Demo
 
How to fake a database/backend in Axure... and more
How to fake a database/backend in Axure... and moreHow to fake a database/backend in Axure... and more
How to fake a database/backend in Axure... and more
 
How to Extend Axure's Animation Capability
How to Extend Axure's Animation CapabilityHow to Extend Axure's Animation Capability
How to Extend Axure's Animation Capability
 
Managing Visual Design in Axure
Managing Visual Design in AxureManaging Visual Design in Axure
Managing Visual Design in Axure
 
Level-Up Your Axure Skills: A Deep Dive into the Prototyping Powerhouse
Level-Up Your Axure Skills: A Deep Dive into the Prototyping PowerhouseLevel-Up Your Axure Skills: A Deep Dive into the Prototyping Powerhouse
Level-Up Your Axure Skills: A Deep Dive into the Prototyping Powerhouse
 
Prototyping invision vs axure
Prototyping invision vs axurePrototyping invision vs axure
Prototyping invision vs axure
 
Card sorting exercise
Card sorting exerciseCard sorting exercise
Card sorting exercise
 
Axure for dummies, that don't even know they are
Axure for dummies, that don't even know they areAxure for dummies, that don't even know they are
Axure for dummies, that don't even know they are
 
Sorting Things Out: An Introduction to Card Sorting
Sorting Things Out: An Introduction to Card SortingSorting Things Out: An Introduction to Card Sorting
Sorting Things Out: An Introduction to Card Sorting
 
Guerilla Usability Testing
Guerilla Usability TestingGuerilla Usability Testing
Guerilla Usability Testing
 
Tootsie
TootsieTootsie
Tootsie
 
Django - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosDjango - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazos
 
advance auto parts 2004_ar
advance auto parts 2004_aradvance auto parts 2004_ar
advance auto parts 2004_ar
 
Rx for Ad Agencies Suffering From Direct, Digital and Social Media Confusion...
Rx for Ad Agencies Suffering From Direct,  Digital and Social Media Confusion...Rx for Ad Agencies Suffering From Direct,  Digital and Social Media Confusion...
Rx for Ad Agencies Suffering From Direct, Digital and Social Media Confusion...
 
Fetish Furniture Portfolio
Fetish Furniture  PortfolioFetish Furniture  Portfolio
Fetish Furniture Portfolio
 
jose juan
jose juanjose juan
jose juan
 
omnicare annual reports 1999
omnicare annual reports 1999omnicare annual reports 1999
omnicare annual reports 1999
 
SPrOokjes Aoc Terra 05042011
SPrOokjes Aoc Terra 05042011SPrOokjes Aoc Terra 05042011
SPrOokjes Aoc Terra 05042011
 
Development and Testing of a Conceptual Framework for Asking about Intoxication
Development and Testing of a Conceptual Framework for Asking about IntoxicationDevelopment and Testing of a Conceptual Framework for Asking about Intoxication
Development and Testing of a Conceptual Framework for Asking about Intoxication
 
liz claiborne CodeofEthicsandBusinessPractices2003
liz claiborne CodeofEthicsandBusinessPractices2003liz claiborne CodeofEthicsandBusinessPractices2003
liz claiborne CodeofEthicsandBusinessPractices2003
 

Similar to Conditional Logic, Variables, & Raised Events in Axure

Axure rp 6.5 教育訓練 day2
Axure rp 6.5 教育訓練 day2Axure rp 6.5 教育訓練 day2
Axure rp 6.5 教育訓練 day2Tim Huang
 
Win8 development lessons learned jayway
Win8 development lessons learned jaywayWin8 development lessons learned jayway
Win8 development lessons learned jaywayAndreas Hammar
 
5 free tools for web accessibility testing
5 free tools for web accessibility testing5 free tools for web accessibility testing
5 free tools for web accessibility testingJohn McNabb
 
Beginning jQuery Mobile
Beginning jQuery MobileBeginning jQuery Mobile
Beginning jQuery MobileTroy Miles
 
Hsc IT Chap 3. Advanced javascript-1.pdf
Hsc IT Chap 3. Advanced javascript-1.pdfHsc IT Chap 3. Advanced javascript-1.pdf
Hsc IT Chap 3. Advanced javascript-1.pdfAAFREEN SHAIKH
 
WPF (Windows Presentation Foundation Unit 01)
WPF (Windows Presentation Foundation Unit 01)WPF (Windows Presentation Foundation Unit 01)
WPF (Windows Presentation Foundation Unit 01)Prashanth Shivakumar
 
Visual Basic IDE Introduction
Visual Basic IDE IntroductionVisual Basic IDE Introduction
Visual Basic IDE IntroductionAhllen Javier
 
Visual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdfVisual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdfsheenmarie0212
 
React learning in the hard way
React   learning in the hard wayReact   learning in the hard way
React learning in the hard wayChen Feldman
 
React more than just components
React   more than just componentsReact   more than just components
React more than just componentsChen Feldman
 
Intro to Axure 7 - User Vision Breakfast Briefing
Intro to Axure 7 - User Vision Breakfast BriefingIntro to Axure 7 - User Vision Breakfast Briefing
Intro to Axure 7 - User Vision Breakfast BriefingStephen Denning
 
Axure 7 breakfast briefing slides
Axure 7 breakfast briefing slidesAxure 7 breakfast briefing slides
Axure 7 breakfast briefing slidesUser Vision
 
Javascript spaghetti stirtrek_5_17
Javascript  spaghetti stirtrek_5_17Javascript  spaghetti stirtrek_5_17
Javascript spaghetti stirtrek_5_17Jared Faris
 
Better Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternBetter Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternSargis Sargsyan
 
Fm pro migrator quickeys installation
Fm pro migrator quickeys installationFm pro migrator quickeys installation
Fm pro migrator quickeys installationfmcloud
 
Getting Started with Selenium
Getting Started with SeleniumGetting Started with Selenium
Getting Started with SeleniumDave Haeffner
 

Similar to Conditional Logic, Variables, & Raised Events in Axure (20)

Axure rp 6.5 教育訓練 day2
Axure rp 6.5 教育訓練 day2Axure rp 6.5 教育訓練 day2
Axure rp 6.5 教育訓練 day2
 
Win8 development lessons learned jayway
Win8 development lessons learned jaywayWin8 development lessons learned jayway
Win8 development lessons learned jayway
 
5 free tools for web accessibility testing
5 free tools for web accessibility testing5 free tools for web accessibility testing
5 free tools for web accessibility testing
 
Beginning jQuery Mobile
Beginning jQuery MobileBeginning jQuery Mobile
Beginning jQuery Mobile
 
Hsc IT Chap 3. Advanced javascript-1.pdf
Hsc IT Chap 3. Advanced javascript-1.pdfHsc IT Chap 3. Advanced javascript-1.pdf
Hsc IT Chap 3. Advanced javascript-1.pdf
 
Unit2
Unit2Unit2
Unit2
 
WPF (Windows Presentation Foundation Unit 01)
WPF (Windows Presentation Foundation Unit 01)WPF (Windows Presentation Foundation Unit 01)
WPF (Windows Presentation Foundation Unit 01)
 
Dreamweaver8
Dreamweaver8Dreamweaver8
Dreamweaver8
 
Visual Basic IDE Introduction
Visual Basic IDE IntroductionVisual Basic IDE Introduction
Visual Basic IDE Introduction
 
Visual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdfVisual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdf
 
React learning in the hard way
React   learning in the hard wayReact   learning in the hard way
React learning in the hard way
 
iOS storyboard
iOS storyboardiOS storyboard
iOS storyboard
 
##dd12 sviluppo mobile XPages
##dd12 sviluppo mobile XPages##dd12 sviluppo mobile XPages
##dd12 sviluppo mobile XPages
 
React more than just components
React   more than just componentsReact   more than just components
React more than just components
 
Intro to Axure 7 - User Vision Breakfast Briefing
Intro to Axure 7 - User Vision Breakfast BriefingIntro to Axure 7 - User Vision Breakfast Briefing
Intro to Axure 7 - User Vision Breakfast Briefing
 
Axure 7 breakfast briefing slides
Axure 7 breakfast briefing slidesAxure 7 breakfast briefing slides
Axure 7 breakfast briefing slides
 
Javascript spaghetti stirtrek_5_17
Javascript  spaghetti stirtrek_5_17Javascript  spaghetti stirtrek_5_17
Javascript spaghetti stirtrek_5_17
 
Better Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternBetter Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component Pattern
 
Fm pro migrator quickeys installation
Fm pro migrator quickeys installationFm pro migrator quickeys installation
Fm pro migrator quickeys installation
 
Getting Started with Selenium
Getting Started with SeleniumGetting Started with Selenium
Getting Started with Selenium
 

Recently uploaded

Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Delhi Call girls
 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdftbatkhuu1
 
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130Suhani Kapoor
 
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...Call Girls in Nagpur High Profile
 
Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Call Girls in Nagpur High Profile
 
Fashion trends before and after covid.pptx
Fashion trends before and after covid.pptxFashion trends before and after covid.pptx
Fashion trends before and after covid.pptxVanshNarang19
 
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai DouxDubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Douxkojalkojal131
 
Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...
Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...
Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...nagunakhan
 
VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...
VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...
VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...Suhani Kapoor
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation decktbatkhuu1
 
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girls
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call GirlsCBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girls
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girlsmodelanjalisharma4
 
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...Pooja Nehwal
 
DragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxDragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxmirandajeremy200221
 
VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...
VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...
VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...Suhani Kapoor
 
Design Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxDesign Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxTusharBahuguna2
 
WAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past QuestionsWAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past QuestionsCharles Obaleagbon
 
Chapter 19_DDA_TOD Policy_First Draft 2012.pdf
Chapter 19_DDA_TOD Policy_First Draft 2012.pdfChapter 19_DDA_TOD Policy_First Draft 2012.pdf
Chapter 19_DDA_TOD Policy_First Draft 2012.pdfParomita Roy
 
VIP Kolkata Call Girl Gariahat 👉 8250192130 Available With Room
VIP Kolkata Call Girl Gariahat 👉 8250192130  Available With RoomVIP Kolkata Call Girl Gariahat 👉 8250192130  Available With Room
VIP Kolkata Call Girl Gariahat 👉 8250192130 Available With Roomdivyansh0kumar0
 

Recently uploaded (20)

Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdf
 
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
 
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
 
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
 
young call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Service
young call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Service
young call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Service
 
Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Top Rated  Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated Pune Call Girls Saswad ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
 
Fashion trends before and after covid.pptx
Fashion trends before and after covid.pptxFashion trends before and after covid.pptx
Fashion trends before and after covid.pptx
 
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai DouxDubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
 
Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...
Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...
Punjabi Housewife Call Girls Service Gomti Nagar \ 9548273370 Indian Call Gir...
 
VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...
VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...
VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation deck
 
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girls
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call GirlsCBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girls
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girls
 
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...
 
DragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxDragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptx
 
VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...
VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...
VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...
 
Design Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxDesign Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptx
 
WAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past QuestionsWAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past Questions
 
Chapter 19_DDA_TOD Policy_First Draft 2012.pdf
Chapter 19_DDA_TOD Policy_First Draft 2012.pdfChapter 19_DDA_TOD Policy_First Draft 2012.pdf
Chapter 19_DDA_TOD Policy_First Draft 2012.pdf
 
VIP Kolkata Call Girl Gariahat 👉 8250192130 Available With Room
VIP Kolkata Call Girl Gariahat 👉 8250192130  Available With RoomVIP Kolkata Call Girl Gariahat 👉 8250192130  Available With Room
VIP Kolkata Call Girl Gariahat 👉 8250192130 Available With Room
 

Conditional Logic, Variables, & Raised Events in Axure

  • 1. Conditional Logic, Variables, & Raised Events Presented by Loren Baxter & Fred Beecher
  • 2. Conditional Logic: WTF is it? Conditional logic allows you to prototype dynamic interactions that respond to user input and actions in real time.
  • 3. WTF do you use it for? Forms Streamlining Prototypes • Dynamic feedback • Reducing the number of messages dynamic panels/states required to prototype • Conditional visibility of advanced interactions functionality • In-field labels • Dynamically configuring navigation masters that Advanced Interactions appear on all pages • Predictive search • Dynamically supporting different functionality for • Faceted browsing different logins (user types) • Filtering & sorting • Personalization
  • 4. Variables: Isn’t that programming? Variables allow you to remember data entered or selections made by users on one page and use it on one or more pages
  • 5. Stuff you can do with variables • Store & display usernames • Use a shipping address entered on one page as a • Store states, e.g., whether a billing address on another user is logged in or not page • Store user types to control • Keep track of which pages what features are displayed have been visited during a • Display the selected option session of a dropdown from one page within the text of • Store user preferences to mimic sessions another page
  • 6. Raised events? Okay, seriously. Raised events allow you to create custom interactions attached to different instances of the same master... and if you understand any of that we’re very impressed and think that you should give the rest of this talk. Seriously though.We’ll explain for real. Promise.
  • 8. How to create conditions You can create one condition per case. Multiple conditions on the same interaction require multiple cases. 1. Double-click any interaction to create a new case 2. Click on “Add Condition” at the top of the case properties dialog 3. Use the Condition Builder dialog to specify the components of your condition 4. Choose to match all components or any component
  • 9. Conditions can be set on... • The value of a variable • Whether a given checkbox or radio button is selected • The current selection(s) in drop lists and list boxes • Text displayed in a text field or text area • The currently displayed state of a dynamic panel (awesome!) • Whether a dynamic panel is currently visible (super awesome!) • The number of characters in a text field or area (weird but useful) • The number of characters in a variable (weird but occasionally useful)
  • 10. Enough talk! Let’s do stuff! Login form with feedback 1. Create dynamic panels for each field, with one state per error message 2. Set the panels to hidden 3. Add a case for each possible error to the OnClick interaction on the Login button, plus one for no error 4. If there is an error, change the state of the appropriate panel to the appropriate state Wait... what if I want to display multiple errors at once? We’ll talk about that in the Logic Tricks section coming up.
  • 11. A little more complex this time... Login form w/inline validation 1. Create the firsrt field and validation panel. 2. Create all the states of the validation panel. 3. Set up OnLostFocus logic on the first field. 4. Repeat for each new field, including case specific errors and logic. 5. Set up logic on submit button.appropriate panel to the appropriate state
  • 12. Conditional Logic Tricks • Executing more than one case at a time • Choosing which case to execute dynamically • Affecting the logic in the OnPageLoad interaction of a master through the OnPageLoad interaction of the pages they’re assigned to
  • 13. Executing Multiple Cases Multiple file upload with feedback 1. Create the first file upload field in a dynamic panel. 2. Create all states for the DP. 3. Set up the "Browse File" interaction to place text in the field. 4. Copy the DP a few times, update all labels and values (there are more than you think!) 5. Set the Upload button to check each field for text and set panel states accordingly. Be sure to change ELSE IF to IF.
  • 14. Letting the User Choose Choosing cases manually 1. Create the "Weather" panel with empty, day, and night states. 2. Place the "Check Weather" button. 3. Create two onclick cases for the button, label each one. 4. Be sure not to set any conditions.
  • 16. Variables let you do 3 things 1. Store a text value 2. Read that value 3. Check how many characters the value is But before you do anything, you need to create them!
  • 17. How to create variables There are two ways... 1. Go to Wireframe > Manage Variables or 2. Click on “Add New...” at the bottom of the variable list on the Condition Builder dialog or the Set Variable dialog Variable names must contain 25 characters or less and be alphanumeric
  • 18. Variables have issues, just like us Issues Solutions • Internet Explorer chokes if • Don’t use IE, or... you use too many variables • Limit yourself to 25 variables • Navigating through your • You can’t do much about prototype with the this other than be aware of generated site map clears it if your prototype starts variable values having problems • Variable values can stick • Add a hidden button on the around between user tests first page of your prototype that does nothing but set all variable values to blank
  • 19. Enough talk! Let’s do stuff! Persistent font size selector 1. Create the page structure and fill in homepage. 2. Create a DP that contains the diff font sizes. 3. Set up the font size buttons to change the DP and set the FontSize variable. 4. Use onPageLoad to set the proper DP state. 5. Make the Article pages similarly and link it all together.
  • 20. Telling people who they are Persistent username display 1. Create the login UI 2. Make clicking the Log In button store the username in a variable and go to another page. 3. Create a master with a text panel that will display the username 4. Assign that master to every page 5. On OnPageLoad of the master, make it so the text panel shows the username if the username variable isn't blank
  • 21. Variable Tricks • Inserting variable text into text panels, fields, & areas • Recursively inserting variable text into text panels, fields, & areas • “Borrowing” variables temporarily • Affecting the logic in the OnPageLoad interaction of a master through the OnPageLoad interaction of the pages they’re assigned to Make sure to check out Loren & Jeff ’s Tips & Tricks panel for INSANE variable weirdness!
  • 22. Getting Fancier with Variables Entering a pin via keypad 1. Create the keypad and textfield. 2. Set up the CurrentDigits variable. 3. Create the button logic: • Check for four digits • Insert the new digit • Check for success condition 4. Copy the logic to each button, update the specifics.
  • 23. OnPageLoad Order • Masters have OnPageLoad too! • When a page loads, the page’s OnPageLoad interaction is executed before the OnPageLoad of any masters on the page • This lets you streamline dynamic prototypes by allowing you to put complex logic & cases on a master once rather than on multiple pages Okay, so how? 1. On master OnPageLoads, create conditions based on the value of a variable 2. On page OnPageLoads, set the value of the variable that master OnPageLoads are evaluating
  • 24. OnPageLoad Order - Example OnPageLoad - Master Static accordion navigation 1. Create a side-nav master composed of one single-state dynamic panel per main nav item 2. Add a transparent rectangle with the link text to the panel state (define selected style) 3. Create a second panel & add the sub- navigation links to it & set it to hidden 4. Create a variable called NavVar 5. Add one case for each main nav item to the master’s OnPageLoad interaction 6. Make each case conditional on a different value of NavVar 7. On each case, set it to make the nav link OnPageLoad - Page selected, show the subnav panel, & move the panels below it down 8. Set the appropriate value of NavVar on each page’s OnPageLoad interaction
  • 26. Crappy name, awesome feature Raised events allow you to make masters that can affect objects outside of them through custom interactions Part 1: Raise an event Interactions Pane - Widget on Master 1. Add the “Raise Event” action to any interaction on a widget within a master 2. Add an event, paying attention to syntax, and select it Part 2: Use the custom interaction Interactions Pane - Master Instance 1. Drag an instance of the master to a page and select it 2. Check out the interactions pane... the event you raised shows up as an interaction! 3. Assign actions to the interaction like normal
  • 27. Uses for raising events 1. Re-using interactive functionality that needs to affect widgets outside itself 2. Re-using interactive functionality that needs to work slightly differently in each instance 3. Creating & maintaining a tightly controlled pattern library
  • 28. Faceted Navigation Facet Master & Item List 1. Create a master composed of one single- state dynamic panel per facet 2. Add a transparent rectangle with the link text to the panel state (define selected style) 3. Create a second panel with enough states to accommodate all values that can be selected. Add value links to the default state. 4. Add the Raise Event action to EVERY value link 5. Add actions for affecting the facets to appropriate value links (setting panel states, moving panels, hiding, toggling selected) 6. Add Facets master to a page 7. Create a results list dynamic panel 8. Assign Set Panel State actions to the raised events to allow choosing a facet value to switch the state of the results panel
  • 29. Loren Baxter Fred Beecher loren.baxter@gmail.com fbeecher@gmail.com @lorenbaxter @fred_beecher