LogoLogo
OverviewDemos and ResourcesContact
  • What is Engine?
  • Key Concepts
    • Drivers
    • Modules
    • Systems
    • Zones
    • Settings
    • Interfaces
    • Triggers
  • Security
  • Deployment
    • System Architecture
    • Single Sign-On
      • Configuring Engine for SAML2
      • SAML2 with Azure AD
      • SAML2 with ADFS
      • SAML2 with Auth0
      • SAML2 with GSuite
      • OAuth2
  • Integrations
    • Supported Integrations
    • Directory Services
      • Microsoft Office365
    • IoT
      • Device Drivers
      • Node-RED
      • Azure IOT Hub
    • Location Services
      • Locating Users on a Network
      • SVG Map Creation
      • Cisco CMX
      • Cisco Meraki RTLS
      • Desk Sensors
  • Administration
    • Backoffice
      • Systems
      • Devices
      • Drivers
      • Zones
      • Triggers
      • Metrics
      • Users
      • Domains
        • Applications
  • Developer Guide
    • Development Environment
    • Building Drivers
      • Discovery and Metadata
      • State
      • Scheduling Actions
      • Response Tokenisation
      • Device Drivers
      • SSH Drivers
      • Service Drivers
      • Logic Drivers
      • Testing
      • Live Monitoring
      • Logging
      • Security
      • Utilities and Helpers
    • User Interfaces
      • Composer
      • Virtual Systems
      • Widgets
      • Settings.json
  • API
    • Authentication
    • Control
      • Systems
      • Modules
      • Dependencies
      • Zones
      • Websocket
        • Commands
          • bind
          • unbind
          • exec
          • debug
          • ignore
        • Heartbeat
        • Errors
  • Support
    • Service Desk
Powered by GitBook
On this page
  • Nuanced Behaviour
  • 1. They are user aware
  • 2. They provide instantaneous feedback
  • 3. They are scope aware

Was this helpful?

  1. Developer Guide
  2. User Interfaces

Widgets

PreviousVirtual SystemsNextSettings.json

Last updated 6 years ago

Was this helpful?

ACA provides an extensive range of widgets designed with control interfaces in mind.

Links to the available components and documentation can be found on the

Nuanced Behaviour

Widgets must be designed to meet the expectations of the user. We recommend using our widgets before looking at third party libraries for the following reasons:

1. They are user aware

When a page loads, widgets are often loaded with default values while they wait for the official value from the server. You don’t want these default values triggering change events and the defaults being sent to the server.

Only a users actions should send requests to the server

Default values or value updates coming from the server should not trigger change events that would have the value sent to the server.

2. They provide instantaneous feedback

Let’s use a volume slider as an example.

  • The slider needs to update its value as it is being moved.

  • Users require the real world volume to change as they move the slider to find their preferred level.

The server will also be sending value updates during the period of interaction. These should be ignored while the user is touching the slider to avoid jumping around, which users find disconcerting.

3. They are scope aware

To reduce required bandwidth, we recommend that you only bind to values required to display the current screen. This is quite trivial with Angular as bindings are created and destroyed with life cycle hooks.

  • Tabs and pop-ups are the most common offenders

  • ACA widgets avoid this pitfall

Angular is optimised for redraw which means might not occur as expected.

project page
life cycle events