ArcGIS Pro SDK for.net Advanced User Interfaces in Add-ins. Wolfgang Kaiser

Similar documents
ArcGIS Pro SDK for.net: Advanced User Interfaces in Add-ins. Wolfgang Kaiser

ArcGIS Pro SDK for.net Intro and Pro Add-in Programming Patterns. Wolfgang Kaiser

ArcGIS Pro SDK for.net: Asynchronous Programming and MVVM Patterns in Pro. Wolfgang Kaiser

ArcGIS Pro SDK for.net: UI Design and MVVM

ArcGIS Pro SDK for.net Beginning Pro Customization. Charles Macleod

ArcGIS Pro SDK for.net Customize Pro to Streamline Workflows. Wolfgang Kaiser

ArcGIS Pro Extensibility - Building and Deploying Addins with the new DotNet SDK

ArcGIS Pro SDK for.net: Add-in Fundamentals and Development Patterns. Wolf Kaiser, Uma Harano

Configurations. Charles Macleod Wolfgang Kaiser

ArcGIS Pro SDK for.net UI Design for Accessibility. Charles Macleod

Developing Add-Ins for ArcGIS Pro (.NET) Toronto Esri Canada UC Presented by: Gandhar Wazalwar & Kern Ranjitsingh October 11, 2018

Windows Presentation Foundation (WPF)

WPF and MVVM Study Guides

Configuring and Customizing the ArcGIS Viewer for Silverlight. Katy Dalton

Customizing the Operations Dashboard for ArcGIS

ArcGIS Runtime SDK for.net Building Apps. Antti Kajanus David Cardella

Implementing MVVM in Real World ArcGIS Server Silverlight Applications. Brandon Copeland LJA Engineering, Inc.

Beginning Editing and Editing UI Patterns. Thomas Emge Narelle Chedzey

Desktop Workflows: An Introduction to ArcGIS Pro. David Watkins, Mark Smithgall

Visual Studio 2015: Windows Presentation Foundation (using VB.NET Language) Training Course Outline

ArcGIS Viewer for Silverlight Advanced Topics

Advanced Customization. Charles Macleod, Steve Van Esch

03 Model-View-ViewModel. Ben Riga

ArcGIS Runtime SDK for.net Building Apps. Rex Hansen

ArcGIS Pro SDK for.net Advanced Pro Customization. Charles Macleod

ArcGIS Runtime SDK for.net Getting Started. Jo Fraley

Note: This demo app created for this lab uses the Visual Studio 2015 RTM and Windows Tools SDK ver

Building WPF Apps with the new ArcGIS Runtime SDK for.net. Antti Kajanus Mike Branscomb

Migrating from ArcMap to ArcGIS Pro. David Watkins Scott Noulis

ArcGIS Runtime SDK for Qt: Building Apps. Koushik Hajra and Lucas Danzinger

Portable Class Libraries ---

Practical WPF. Learn by Working Professionals

Migrating to ArcGIS Pro. John Sharrard, Esri Solutions Engineer

What s New Essential Studio User Interface Edition

Windows Presentation Foundation Visual Studio.NET 2008

Workspace Desktop Edition Developer's Guide. Best Practices for Views


ArcGIS Pro: What s New in Editing and Data Management

Building Next Generation GUIs using Microsoft Expression Interactive Designer

Wpf Button Click Event Firing Multiple Times

Agenda. Configuration. Customization. Customization without programming. Creating Add-ins

An Introduction to Google Blogger

No Programming Required Create web apps rapidly with Web AppBuilder for ArcGIS

For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to

Creating Web Mapping Applications. Nikki Golding

Migrating your WPF Apps to the New ArcGIS Runtime SDK for.net. Mike Branscomb Antti Kajanus

Week 8: Data Binding Exercise (Bookstore)

Index. Application programming interface (API), 38. Binary Application Markup Language (BAML), 4

Web Mapping Applications with ArcGIS. Bernie Szukalski Derek Law

An introduction to ArcGIS Runtime

ArcGIS Runtime SDK for.net: Building Xamarin Apps. Rich Zwaap Thad Tilton

Windows Presentation Foundation Programming Using C#

DOT NET SYLLABUS FOR 6 MONTHS

CPSC 481 Tutorial 10 Expression Blend. Brennan Jones (based on tutorials by Bon Adriel Aseniero and David Ledo)

Getting Started with ArcGIS Runtime SDK for the Microsoft.NET Framework. Morten Nielsen Mike Branscomb Antti Kajanus Rex Hansen

ArcGIS Runtime: Building Cross-Platform Apps. Rex Hansen Mark Baird Michael Tims Morten Nielsen

Windows Presentation Foundation for.net Developers

ICAP - Intelligence Configuration for ArcGIS Pro. Natalie Feuerstein Dan Barnes Joe Bayles

Office as a development platform with Visual Studio Daniel Moth Developer and Platform Group Microsoft

New ArcGIS Server Application Developers? Experience in Programming with Java? Knowledge of Web Technologies? Experience with the Java WebADF?

Essentials of Developing Windows Store Apps Using C#

ArcGIS SDK for Windows Phone and ArcGIS for SharePoint. Jo Fraley Nikki Golding

Developers Road Map to ArcGIS Desktop and ArcGIS Engine

Windows Presentation Foundation. Jim Fawcett CSE687 Object Oriented Design Spring 2018

Building Extensible XAML Client Apps

Pro XAML with C# From Design to Deployment on WPF, Windows Store, and Windows Phone. Buddy James. Lori Lalonde

Building a mobile enterprise application with Xamarin.Forms, Docker, MVVM and.net Core. Gill

ArcGIS for Developers: An Introduction. Moey Min Ken

Fundamentals of XAML and Microsoft Expression Blend

Getting Started with the ArcGIS Runtime SDKs. Dave, Will, Euan

ArcGIS Runtime: Building Cross-Platform Apps. Mike Branscomb Michael Tims Tyler Schiewe

This document contains a general description of the MVVMStarter project, and specific guidelines for how to add a new domain class to the project.

Deep Dive on How ArcGIS API for JavaScript Widgets Were Built

ArcGIS App Strategies Ben

Hands-On Lab. Building Applications in Silverlight 4 Module 6: Printing the Schedule. Printing the Schedule

Developing Mobile Apps with the ArcGIS Runtime SDK for.net

ArcGIS Viewer for Microsoft Silverlight An Introduction

Operations Dashboard for ArcGIS Monitoring GIS Operations. Michele Lundeen Esri

Telerik Corp. Test Studio Standalone & Visual Studio Plug-In Quick-Start Guide

Developing Native Windows Phone 7 Applications for SharePoint

ArcGIS Online: Item Administration and Group Sharing. Brendan O Neill Caitlin Hillis

Introduction. Part I: Silverlight Fundamentals for ASP.NET Developers 1

NE Fundamentals of XAML and Microsoft Expression Blend

ExecuTrain Course Outline MOC 6460A: Visual Studio 2008: Windows Presentation Foundation

Microsoft Windows Apps Dev w/microsoft.net Framework 4. Download Full Version :

ArcGIS GeoEvent Server: Leveraging Stream Services. Ken Gorton RJ Sunderman

SharePoint Designer 2013 Branding & Workflows

Web AppBuilder Presented by

ArcGIS Pro SDK for.net: An Overview of the Geodatabase API. Colin Zwicker Ling Zhang Nghiep Quang

CHANNEL9 S WINDOWS PHONE 8.1 DEVELOPMENT FOR ABSOLUTE BEGINNERS

Building Extensible XAML Client Apps

ArcGIS Pro Editing: An Introduction. Jennifer Cadkin & Phil Sanchez

CPSC Tutorial 9 Blend & Animations

Getting Started with ArcGIS Runtime SDK for Java SE

Prism Composite Application Guidance

This tutorial is designed for software developers who want to learn how to develop quality applications with clean structure of code.

Android PC Splash Brothers Design Specifications

ArcGIS Viewer for Flex Advanced Topics

[MS10553]: Fundamentals of XAML and Microsoft Expression Blend

Microsoft CSharp

Transcription:

ArcGIS Pro SDK for.net Advanced User Interfaces in Add-ins Wolfgang Kaiser

Session Overview MVVM Model View ViewModel - View and View Model Implementation in Pro - Dockpane Example - MVVM concepts - Multi threading considerations - Styling / themes Newly added Framework Elements Gallery Plug-in

MVVM Pattern in Add-ins MVVM and variants are de-facto pattern for WPF UI implementations Pro MVVM is built on top of ActiPro (http://www.actiprosoftware.com/products/controls/wpf ) The Basic Pattern is: - ViewModel declared in DAML and implemented in code - View referenced in DAML and implemented as WPF UserControl - Model is optional Note: To customize the Pro UI, you must use its MVVM Framework. Substitutes are not allowed.

MVVM Pattern in Add-ins Model-View-ViewModel (MVVM) Pattern used for many of the Framework elements - Dockpane - Pane - Custom Control - Embeddable Control - Property Page

MVVM Implementation in Add-ins MVVM implementation in Add-ins follows the same Pattern used in WPF /.Net - Model: Classes that represent the data consumed by the app - View: User interface (UI) elements the user interacts with (XAML) - ViewModel: Classes that wrap data (coming from a model) and provide business logic for the UI (views) Implement your Add-in UI just as you implement a user control in WPF/.Net - You can use many available online WPF MVVM snippets Differences in MVVM for Add-ins versus WPF applications: - Multi-threading considerations - ArcGIS Pro Styling

MVVM Key Concepts The MVVM pattern separates the User Interface (XAML) layout and design from the business logic (code) Data Binding : UI elements in a view are bound to the properties which are exposed by the ViewModel. Examples: View UI - XAML ViewModel Code behind c# <Button Command="{Binding RetrieveMapsCommand}"/> public ICommand RetrieveMapsCommand => _retrievemapscommand; <TextBlock Text="{Binding Heading} /> public string Heading { get { } set { } } <ComboBox ItemsSource="{Binding AllMaps}" SelectedItem="{Binding SelectedMap,Mode=TwoWay} /> public ReadOnlyObservableCollection<Map> AllMaps => _Maps; public Map SelectedMap { get { } set { } }

Demo: New Dockpane Create a new dockpane and show MVVM components

Multi-threading considerations ArcGIS Pro Framework s managed threading model: - Framework provides QueuedTask to guarantee that UI actions happen in a sensible order without corruption Updating UI collections from a worker thread - Locking is required when sharing objects across threads Recommended pattern for updating collections from a worker thread - Found in.net BindingOperations helper class: BindingOperations.EnableCollectionSynchronization

Add-in Styling New at 1.4 is Dark Theme and High Contrast In order for your Add-ins to blend when the theme is toggled they must be styled correctly - Note: It is not required that your Add-ins blend with Pro though it is desirable in most cases Style Guide: https://github.com/esri/arcgis-pro-sdk/wiki/proguide-style-guide

Demo: Dockpane Bookmarks Show Multi threading, styles, data binding 3 - Advanced UI Demo

Framework Elements Newer Framework elements used to give a dockpane a polished look - Burger button using Pro Framework s ContextMenu class - Circular animation - Message label - Search textbox - Waiting cursor xmlns:controls="clr-namespace:arcgis.desktop.framework.controls;assembly=arcgis.desktop.framework"

Framework Element: Burger Button Add Context menu in config.daml <menus> <menu id="dockpanebookmarkadvanced_bookmark_menu" caption="change view" contextmenu="true"> <button refid="dockpanebookmarkadvanced_bookmarkoutline_menubutton" /> <button refid="dockpanebookmarkadvanced_bookmarkgallery_menubutton" /> </menu> </menus> Bind an instance of context menu to the BurgerButton s PopupMenu attribute. <extensionscontrols:burgerbutton PopupMenu="{Binding BurgerButtonPopupMenu}"/> public System.Windows.Controls.ContextMenu BurgerButtonPopupMenu { get { return FrameworkApplication.CreateContextMenu(MenuId); } } Implement Popupmenu options in the Framework button class OnClick method.

Demo: Dockpane Bookmarks Show Additional Framework Elements 4 - UI Controls FeatureTest data

Gallery Container control, displays a collection of related items in rows and columns If too many items are in the gallery an expand arrow is provided Contents are populated at run time Individual gallery items are modelled using GalleryItem class Style with a GalleryTemplate.xaml

Gallery Shown as a split-button with a dropdown that exposes gallery Do any content initialization in the Gallery code-behind OnDropDownOpened - GalleryItems are created at runtime - Use Add method to add items to gallery - Whenever a gallery item is clicked, the Gallery OnClick is called with the clicked GalleryItem as a parameter class Gallery1 : Gallery { protected override void OnDropDownOpened() { //Handle populating gallery content foreach (var dataitem in lstwebmapitems) Add(dataItem); } private void Initialize() { //TODO: Init content

Gallery DAML gallery definition: <!-- Config.daml <galleries> <gallery id="timenavigation_bkmgallery"... rows="4" itemsinrow="4" # of rows and columns datatemplatefile=...timebkmgallerytemplate.xaml" Data template templateid="timebkmitemtemplate"> Resource key <button refid="esri_mapping_createbookmark" /> Child button </gallery> <! TimeBkmGalleryTemplate.xaml <DataTemplate x:key="timebkmitemtemplate"> <StackPanel Orientation="Vertical... <Image Source="{Binding Icon}... <TextBlock Text="{Binding Text}...

Gallery Galleries can also be defined as inline Inline shows gallery items directly in the ribbon (not in a dropdown) Set the inline attribute on the gallery reference to true (Done automatically for you via the inline gallery template) <groups> <group id= Time_Group" caption="map Time"> <gallery refid="time_inlinegallery1" inline="true" size="large"/> </group>

Demo: Gallery Inline gallery control that hosts a collection of webmaps.

Many Pro SDK Resources SDK home page main resource page Esri Training instructor-led Esri training course Documentation Wiki primary documentation site with concept and guide docs, and much more Community Samples ready to use code solutions categorized by functional area Snippets code snippets by functional area GeoNet Pro SDK Group developer community API Reference full API reference FAQ answers to common questions Blog posts focused on the Pro SDK

Pro SDK Training Extending ArcGIS Pro with Add-Ins Esri Instructor-led training course on the Pro SDK Great way to get a comprehensive introduction Online offerings very interactive and productive Esri.com/training

SDK Sessions Day Time ArcGIS Pro SDK for.net Sessions Room Tuesday, 24 th 13:00-13:45 Intro and Pro-Add-in Programing Patterns B 07 - B 08 09:00-09:45 Intro and Pro-Add-in Programing Patterns B 05 Wednesday, 25 th 10:00-10:45 Customize Pro to Streamline Workflows C 01 11:00-11:45 Advanced UI Development B 05 15:00-15:45 Map Exploration A 03 - A 04 Thursday, 26 th 12:00-12:45 Customize Pro to Streamline Workflows B 09

Thank You to Our Generous Sponsor