ArcGIS Runtime SDK for iOS: AGSPopupManager.h Source File
ArcGIS Runtime SDK for iOS  100.9
AGSPopupManager.h
Go to the documentation of this file.
1 /*
2  COPYRIGHT 1995-2020 ESRI
3 
4  TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL
5  Unpublished material - all rights reserved under the
6  Copyright Laws of the United States and applicable international
7  laws, treaties, and conventions.
8 
9  For additional information, contact:
10  Environmental Systems Research Institute, Inc.
11  Attn: Contracts and Legal Services Department
12  380 New York Street
13  Redlands, California, 92373
14  USA
15 
16  email: contracts@esri.com
17  */
18  //Required for Globals API doc
20 
21 #import <Foundation/Foundation.h>
22 #import <ArcGIS/AGSDefines.h>
23 #import <ArcGIS/AGSField.h>
24 
25 
26 
32 
38 typedef NS_ENUM(NSInteger, AGSPopupFeatureTypeChangeMode) {
41 };
42 
48 typedef NS_ENUM(NSInteger, AGSPopupValidationErrorCode) {
57 };
58 
60 @class AGSPopupField;
61 @class AGSPopup;
62 @class AGSFeatureType;
63 @class AGSDomain;
64 @class AGSFeatureTemplate;
65 @class AGSSymbol;
66 @class AGSSketchEditor;
68 
69 @protocol AGSPopupManagerDelegate;
70 @protocol AGSCancelable;
71 
72 #pragma mark -
73 #pragma mark Notifications / (Events)
74 #pragma mark -
75 
80 
85 
92 @interface AGSPopupManager : NSObject
93 
94 #pragma mark -
95 #pragma mark initializers
96 #pragma mark -
97 
98 
104 -(instancetype)initWithPopup:(AGSPopup *)popup;
105 
106 
107 #pragma mark -
108 #pragma mark properties
109 #pragma mark -
110 
114 @property (nullable, nonatomic, weak, readwrite) id<AGSPopupManagerDelegate> delegate;
115 
123 @property (nonatomic, unsafe_unretained, readonly) AGSPopup *popup;
124 
128 @property (nullable, nonatomic, strong, readonly) AGSPopupAttachmentManager *attachmentManager;
129 
130 
131 #pragma mark display properties
132 
133 
137 @property (nullable, nonatomic, strong, readonly) AGSFeatureType *featureType;
138 
142 @property (nonatomic, copy, readonly) NSArray<AGSPopupField*> *editableDisplayFields;
143 
147 @property (nonatomic, copy, readonly) NSArray<AGSPopupField*> *displayFields;
148 
149 
150 #pragma mark Strings that the popup view controller will use in the UI
151 
152 
156 @property (nullable, nonatomic, copy, readonly) NSString *title;
157 
165 @property (nullable, nonatomic, copy, readonly) NSString *customDescriptionHTML;
166 
170 @property (nullable, nonatomic, copy, readonly) NSString *editSummary;
171 
175 @property (nullable, nonatomic, strong, readonly) AGSSymbol *symbol;
176 
177 #pragma mark Properties for what UI the popup view controller should show
178 
179 
187 @property (nonatomic, assign, readonly) BOOL shouldAllowEdit;
188 
195 @property (nonatomic, assign, readonly) BOOL shouldAllowDelete;
196 
203 @property (nonatomic, assign, readonly) BOOL shouldAllowEditGeometry;
204 
211 @property (nonatomic, assign, readonly) BOOL shouldAllowEditAttachments;
212 
219 @property (nonatomic, assign, readonly) BOOL shouldShowAttachments;
220 
225 @property (nonatomic, assign, readonly) BOOL shouldShowMedia;
226 
231 @property (nonatomic, assign, readonly) BOOL shouldShowEditSummary;
232 
237 @property (nonatomic, assign, readonly) BOOL shouldShowCustomDescriptionHTML;
238 
239 #pragma mark editing properties
240 
244 @property (nonatomic, assign, readonly, getter=isEditing) BOOL editing;
245 
251 @property (nullable, nonatomic, strong, readonly) AGSSketchEditor *currentSketchEditor;
252 
256 @property (nonatomic, assign, readonly, getter=isGeoElementValid) BOOL geoElementValid;
257 
258 
259 #pragma mark -
260 #pragma mark methods
261 #pragma mark -
262 
263 
264 #pragma mark Value Helper Methods
265 
276 -(nullable NSString*)stringForTemplatedString:(NSString*)templatedString;
277 
283 -(nullable NSNumber*)numberFromString:(NSString*)stringValue field:(AGSPopupField*)popupField ;
284 
293 -(nullable NSNumber*)numberFromString:(NSString *)stringValue field:(AGSPopupField *)popupField error:(NSError**)error;
294 
305 -(NSString*)formattedValueForField:(AGSPopupField*)popupField;
306 
312 -(nullable id)valueForField:(AGSPopupField*)popupField;
313 
314 
315 #pragma mark Field Helper Methods
316 
317 
321 -(nullable AGSPopupField*)fieldForName:(NSString*)fieldName;
322 
326 -(AGSFieldType)fieldTypeForField:(AGSPopupField*)popupField;
327 
331 -(nullable AGSDomain*)domainForField:(AGSPopupField*)popupField;
332 
336 -(NSInteger)lengthForField:(AGSPopupField*)popupField;
337 
341 -(BOOL)fieldIsNullable:(AGSPopupField*)popupField;
342 
346 -(BOOL)fieldIsTypeIDField:(AGSPopupField*)popupField;
347 
351 -(NSString *)labelForField:(AGSPopupField *)popupField;
352 
353 #pragma mark Async Methods
354 
366 - (id<AGSCancelable>)evaluateExpressionsWithCompletion:(void(^)(NSArray<AGSPopupExpressionEvaluation *> * __nullable results, NSError * __nullable error))completion;
367 
368 #pragma mark -
369 #pragma mark Editing Methods
370 #pragma mark -
371 
372 
373 #pragma mark methods for starting, cancelling, finishing editing
374 
375 
380 -(BOOL)startEditing;
381 
386 -(void)cancelEditing;
387 
392 -(void)finishEditingWithCompletion:(void(^)(NSError * __nullable error))completion;
393 
394 
395 #pragma mark methods for updating the value in the geo-element when user changes values
396 
404 -(BOOL)updateValue:(nullable id)newValue field:(AGSPopupField*)popupField validationError:(NSError**)validationError;
405 
411 -(BOOL)featureTypeChangeRequiresUserNoficationForTemplate:(nullable AGSFeatureTemplate*)featureTemplate ;
412 
417 -(BOOL)featureTypeChangeRequiresUserNotificationForTemplate:(nullable AGSFeatureTemplate*)featureTemplate;
418 
423 -(BOOL)updateFeatureTypeWithTemplate:(nullable AGSFeatureTemplate*)featureTemplate changeMode:(AGSPopupFeatureTypeChangeMode)changeMode validationError:(NSError**)validationError;
424 
425 
426 #pragma mark methods for getting validation errors and messages
427 
428 
432 -(nullable NSError*)validationErrorForField:(AGSPopupField*)popupField;
433 
437 -(nullable NSError*)validationWarningForField:(AGSPopupField*)popupField;
438 
443 -(nullable NSString*)rangeValidationTextForField:(AGSPopupField*)popupField;
444 
445 @end
446 
454 @optional
455 
459 -(nullable AGSSketchEditor*)sketchEditorForPopupManager:(AGSPopupManager*)popupManager;
460 
464 -(void)popupManager:(AGSPopupManager*)popupManager validityDidChange:(BOOL)geoElementValid;
465 
469 -(void)popupManager:(AGSPopupManager*)popupManager featureTypeDidChange:(nullable AGSFeatureType*)featureType;
470 
471 @end
472 
473 
AGSPopupFeatureTypeChangeMode
Definition: AGSPopupManager.h:38
AGSSketchEditor * currentSketchEditor
Definition: AGSPopupManager.h:251
AGSFeatureType * featureType
Definition: AGSPopupManager.h:137
BOOL shouldShowEditSummary
Definition: AGSPopupManager.h:231
Definition: AGSPopupManager.h:50
BOOL shouldShowMedia
Definition: AGSPopupManager.h:225
Definition: AGSPopupManager.h:52
A symbol used to display a graphic or a feature.
Definition: AGSSymbol.h:51
AGS_EXTERN NSNotificationName _Nonnull const AGSPopupManagerFeatureTypeDidChangeNotification
Definition: AGSPopupManager.h:84
NSArray< AGSPopupField * > * editableDisplayFields
Definition: AGSPopupManager.h:142
NSString * title
Definition: AGSPopupManager.h:156
Manages attachments belonging to a popup.
Definition: AGSPopupAttachmentManager.h:39
BOOL shouldAllowEditGeometry
Definition: AGSPopupManager.h:203
Definition: AGSPopupManager.h:54
Definition: AGSPopupManager.h:51
An object that represents the result of an attempt to evaluate popup expression.
Definition: AGSPopupExpressionEvaluation.h:31
AGSPopupAttachmentManager * attachmentManager
Definition: AGSPopupManager.h:128
NSArray< AGSPopupField * > * displayFields
Definition: AGSPopupManager.h:147
A delegate of AGSPopupManager.
Definition: AGSPopupManager.h:453
Definition: AGSPopupManager.h:56
BOOL shouldAllowEditAttachments
Definition: AGSPopupManager.h:211
A Popup which displays a geo-element&#39;s information.
Definition: AGSPopup.h:35
BOOL shouldShowCustomDescriptionHTML
Definition: AGSPopupManager.h:237
Definition: AGSPopupManager.h:53
AGS_EXTERN NSNotificationName _Nonnull const AGSPopupManagerGeoElementValidityDidChangeNotification
Definition: AGSPopupManager.h:70
BOOL editing
Definition: AGSPopupManager.h:244
Definition: AGSPopupManager.h:55
AGS_EXTERN NSString *const AGSPopupValidationErrorDomain
Definition: AGSPopupManager.h:31
NSString * customDescriptionHTML
Definition: AGSPopupManager.h:165
Represents all of the information needed to create a feature.
Definition: AGSFeatureTemplate.h:56
id< AGSPopupManagerDelegate > delegate
Definition: AGSPopupManager.h:114
Definition: AGSPopupManager.h:39
BOOL geoElementValid
Definition: AGSPopupManager.h:256
#define AGS_EXTERN
Definition: AGSDefines.h:22
BOOL shouldAllowDelete
Definition: AGSPopupManager.h:195
Definition: AGSPopupManager.h:49
BOOL shouldShowAttachments
Definition: AGSPopupManager.h:219
Encapsulates properties of types of features in a feature layer.
Definition: AGSFeatureType.h:33
Information about a field in a popup.
Definition: AGSPopupField.h:43
A popup manager.
Definition: AGSPopupManager.h:92
information about a field&#39;s domain
Definition: AGSDomain.h:29
AGSPopupValidationErrorCode
Definition: AGSPopupManager.h:48
BOOL shouldAllowEdit
Definition: AGSPopupManager.h:187
AGSSymbol * symbol
Definition: AGSPopupManager.h:175
A class that allows the user to sketch geometries on the map.
Definition: AGSSketchEditor.h:68
AGSFieldType
Definition: AGSField.h:30
NSString * editSummary
Definition: AGSPopupManager.h:170
Definition: AGSPopupManager.h:40
A protocol exposed by operations that allow cancellation.
Definition: AGSCancelable.h:32