AVEVA OMI includes support for touch gestures on touch-enabled devices. Touch interactions are supported natively in a number of OMI apps. You can copy pre-built code from these controls to reuse in your apps, as well constructing touch support by using the TouchSupport assemblies and one of the public interfaces included with the ViewApp API.
The following OMI apps are already enabled for touch, and contain support for single-finger flick and swipe-to-scroll gestures:
- Navigation Tree Control
- Navigation Tree Search Result List
- Navigation Breadcrumb Control - dropdown items list
- Content Presenter
- Titlebar - language list
- Alarm App - Area Hierarchy tree
Touch Interface
The public interface for touch is:
- ISupportTouch.cs
namespace ArchestrA.Client.ViewApp { /// <summary> /// The interface to support the touch related events /// </summary> public interface ISupportTouch { /// <summary> /// Process touch event /// </summary> /// <param name="touchEvent">The occurred touch event</param> /// <param name="touchArgs">The touch parameter</param> /// <returns>The touch process result</returns> TouchResult ProcessTouch(TouchType touchEvent, TouchArgs touchArgs); } }
The touch support classes within the touch framework are:
- GestureDirection.cs
- InteractionMode.cs
- ManipulationTouchArgs.cs
- TouchArgs.cs
- TouchResult.cs
- TouchSupport.cs
- TouchType.cs
- TouchUtil.cs
With touch enabled, users can use touch to:
- Select nodes in the navigation controls (NavTreeControl and NavBreadcrumbContol). Users can expand the tree or breadcrumb by touching the node and by scrolling (dragging) horizontally and vertically.
- Acknowledge alarms. Users can select from the listed touch-enabled acknowledgement buttons.
The “Is Touchscreen” property within a Screen Profile lets you enable a touch safety lock (Touch Lock). When enabled, touch events are only recognized by the application if the touch lock is pressed while the touch event occurs. This helps avoid accidental touches from being processed. To enable the Touch Lock, set Touch Lock Level to Two handed Operation in the Screen Profile.
When Touch Lock is enabled, a user must press the Touch Lock icon while performing a touch gesture. Otherwise, the gesture is ignored and it is not registered as a touch event.