diff --git a/samples/appcache-features.html b/samples/appcache-features.html index af2fdf4..3599c7e 100644 --- a/samples/appcache-features.html +++ b/samples/appcache-features.html @@ -203,7 +203,6 @@ var EXTENT_BUFFER = 0; //buffers the map extent in meters // Misc. - var appCacheManager; var loading = document.getElementById("loader-gif"); // Variables for modal popup @@ -291,25 +290,37 @@ //on a mobile device. busStopFeatureLayer.setRenderer(new SimpleRenderer(defaultSymbol)); + initFeatureUpdateEndListener(); + initMapLoadListener(); + + map.addLayer(busStopFeatureLayer); + } + + function initFeatureUpdateEndListener(){ + //While loading application ONLINE busStopFeatureLayer.on("update-end",function(evt){ - // Set click listeners - on(btnGetTiles,"click",downloadTiles); - on(btnOnlineOffline, 'click', goOnlineOffline); + if(offlineFeaturesManager == null || _isOnline){ - if(offlineFeaturesManager == null){ + // Set click listeners + on(btnGetTiles,"click",downloadTiles); + on(btnOnlineOffline, 'click', goOnlineOffline); initOfflineFeaturesMgr(evt,function(success){ if(success){ - initMapListeners(); + initPanZoomListeners(); + setFeatureLayerClickHandler(); + setModalPopupClickListeners(); + } + else{ + alert("There was a problem initializing the map for offline."); } }); } - - setFeatureLayerClickHandler(); - setModalPopupClickListeners(); }); + } + function initMapLoadListener(){ map.on("load",function(evt){ _currentExtent = evt.map.extent; @@ -325,12 +336,6 @@ if(_isOnline == false){ - // Set the map to the - -// var featureLayer = JSON.parse(localStorage.offlineLayerDef); -// var featuresArray = JSON.parse(localStorage.offlineFeature); -// var geometryType = "esriGeometryPoint"; - if(offlineFeaturesManager == null){ initOfflineFeaturesMgr(null,function(success){ console.log("Offline Feature Manager initialized."); @@ -342,11 +347,15 @@ } } }); - - map.addLayer(busStopFeatureLayer); } - function initMapListeners(){ + /** + * ********************************************** + * EVENT LISTENER MANAGEMENT CODE + * ********************************************** + */ + + function initPanZoomListeners(){ updateOfflineUsage(); updateStatus(); @@ -395,7 +404,7 @@ map.addLayer(busStopFeatureLayer); } else{ - alert("Sorry there was a problem retrieving feature layer options object. " + optionsObj); + alert("There was a problem retrieving feature layer options object. " + optionsObj); } }) } @@ -415,7 +424,8 @@ // IMPORTANT!!! // A proxy page may be required to upload attachments. - // If you are using a CORS enabled server you may be ablew to set the proxyPath to null. + // If you are using a CORS enabled feature service you can ignore this. + // If your feature service is not CORS-enabled then you will need to configure this. // Refer to "Using the Proxy Page" for more information: https://developers.arcgis.com/en/javascript/jshelp/ags_proxy.html offlineFeaturesManager.proxyPath = null; @@ -457,7 +467,7 @@ callback(false); alert("Unable to initialize the database. " + error); } - },/* This is the options property */featureLayerJSON); + },/* This is the optional offline configuration property */featureLayerJSON); } @@ -483,7 +493,7 @@ saveBtn.onclick = function(evt){ - // Best practice is to uncomment these for production use. + //You may need to uncomment this forced offline check for production use. //forceInternalOfflineCheck(); popup.graphic.attributes.ROUTES = stopRoutes.value;