31
Gavin Rehkemper David Martinez Web AppBuilder for ArcGIS: Customizing and Extending

Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Gavin Rehkemper

David Martinez

Web AppBuilder for ArcGIS: Customizing

and Extending

Page 2: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Introduction

Create a Widget

WAB Communities

Create a Theme

Page 3: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Introduction

Page 4: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

GUIBuilder

widgets

Themes

Stem App

config

An App

Building an App

Page 5: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Access Type

525,364Total AppBuilder Apps

16%Shared

13%Account

33%Public

38%Private

Page 6: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Web AppBuilder (Developer Edition)

Page 7: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Widget Theme

• Execution at run time

• Configure-in, not cut/paste

• Self sufficient and

distributable

• Need container, no coding

block

• Has programing framework

of container

• Applied at run time

• Configure-in, not modify css

• Need container

• Self sufficient and

distributable

• Has programing framework

of container

Page 8: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Widgets

Page 9: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

It’s really just a web app

MyWidget.js

MyWidget.css

MyWidget.html

Page 10: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Inheriting from BaseWidget

A widget derived from the BaseWidget class

Page 11: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Dijit lifecycle Widget events

• postCreate

• startup

• …

• onOpen, onActive

• onClose, onDeActive

Page 12: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

BaseWidget Your job?

• App properties (name, icon,

localization)

• App config data

• Widget's config data

• Map object

• Widget state (open, closed,

active…)

• Events (open/signIn)

• Widget communication

• Widget UI (HTML/template)

• Widget config file (JSON)

• Widget styles (CSS)

• Localization

• Your unique business logic

(JavaScript)

Page 13: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Conventions and Structure

MyWidget

Widget.js

css/

images/

nls/

setting/

manifest.json

styles.css

es-es/

icon.png

strings.js

config.json

Widget.html

Page 14: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Getting Started

1. Download developer edition

2. Connect to organization or portal

3. Copy widget template

4. Run the builder

5. Create an app with your widget

6. Build your widget in the app

Page 15: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Configure your custom widget inside the builder

• Building a UI for the user:

- Setting.js

- Config info

- getConfig, setConfig

- Setting.html

- Usual localization pattern

- css

Page 16: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

http://esriurl.com/wab20

Create a new widget

Page 17: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Theme

Page 18: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Theme is you

Page 19: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Major Components in a Theme

• Layout

• Panel

• Style

• Controller

Page 20: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

What Composes a Theme?

• Layout

• Panel

• Style

• Controler

+

-

Page 21: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

What Composes a Theme?

• Layout

• Panel

• Style

• Controller

+

-widget

widget

Page 22: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

What Composes a Theme?

• Layout

• Panel

• Style

• Controller

+

-

widget

widget

Page 23: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

What Composes a Theme?

• Layout

• Panel

• Style

• Controller

+

-

widget

widget

Page 24: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

What Makes Up The WAB UI?

Dojo dijits ArcGIS API widgets

Jimu

widgets

WAB UI

Page 25: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

How UI Libraries Work In WAB:

Dojo dijits: claro.css

ArcGIS API for JavaScript: esri.css

Jimu: jimu.css, jimu-override.css, etc.

Theme: common.css, style.css

Page 26: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Compare to a Functional Widget

Controller Widget Functional Widget

Purpose

• Displays app information

• Defines app behaviors,

interactions, workflows, etc.

Provides one specific

functionality to the app

Folder Structure Very similar

Manifest

isController True False

isThemeWidget True False

inPanel Always false May vary

Others Very similar

\

Page 27: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Let’s create a new theme

Page 28: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Community

Page 29: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Online help documentationhttp://doc.arcgis.com/en/web-appbuilder

Developer Edition help documentationhttp://developers.arcgis.com/web-appbuilder

Web AppBuilder for ArcGIS Geonethttps://community.esri.com/community/gis/web-gis/web-appbuilder

Slides and code from this presentationhttps://esriurl.com/wab20

Helpful Resources

Page 30: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private

Other Online Resources

• Esri Solutions Widgets:

- https://github.com/Esri/solutions-webappbuilder-widgets

• Lists of Widgets:

- http://esri-es.github.io/Web-AppBuilder-Custom-Widgets/

Page 31: Web AppBuilder for ArcGIS: Customizing and Extending · Access Type 525,364 Total AppBuilder Apps 16% Shared 13% Account 33% Public 38% Private