From 564980736a753d7a2c11d2b080b00d9e3de1aefe Mon Sep 17 00:00:00 2001 From: Rachael Ellen <36415565+Rachael-E@users.noreply.github.com> Date: Wed, 4 Dec 2019 14:16:40 +0000 Subject: [PATCH 1/7] use correct arcgis version (#424) --- kml/create-and-save-kml-file/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kml/create-and-save-kml-file/build.gradle b/kml/create-and-save-kml-file/build.gradle index 011b2b4175..e9d4c1859c 100644 --- a/kml/create-and-save-kml-file/build.gradle +++ b/kml/create-and-save-kml-file/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0-2512' + arcgisVersion = '100.6.0' } javafx { From 55daed96bf743081b410c8f8d84330d10600a62a Mon Sep 17 00:00:00 2001 From: Jonathan Lavi Date: Mon, 9 Dec 2019 09:04:05 +0000 Subject: [PATCH 2/7] remove reference to toggling coordinates (#426) --- ogc/browse-wfs-layers/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/ogc/browse-wfs-layers/README.md b/ogc/browse-wfs-layers/README.md index 564b4bb4e1..13096a0f1e 100644 --- a/ogc/browse-wfs-layers/README.md +++ b/ogc/browse-wfs-layers/README.md @@ -12,8 +12,6 @@ Services often have multiple layers available for display. For example, a featur A list of layers in the WFS service will be shown. Select a layer to display it. -Some WFS services return coordinates in X,Y order, while others return coordinates in lat/long (Y,X) order. If you don't see features rendered or you see features in the wrong location, use the checkbox to swap the coordinate order and reload. Note: the WFS service in this sample does not require coordinate swapping. - ## How it works 1. Create a `WfsService` object with a URL to a WFS feature service. From cf2f9503cddc7ee23ba80df2ba8bd7ed431b2de0 Mon Sep 17 00:00:00 2001 From: Tyler Schiewe Date: Thu, 19 Dec 2019 11:16:30 -0800 Subject: [PATCH 3/7] 100.7.0 (#425) * update api version * change api version to 100.5.0 * change version to 100.5.0 * start updates for java 11 * update java 11 parts * add dependencies for all platforms * Delete module-info.java * Update README Update README to alert Java 11 users to potential exceptions which may occur when running the project. Providing a suggested workaround from the OpenJavaFX docs. * Update README.md * add an integrated mesh layer sample * update arcgis version * use javafx plugin * remove jar task config * update arcgis version * move stage show * add point cloud data to sample data downloads * view point cloud data offline sample * Update build.gradle * change camera viewpoint * remove unused imports * update image * update api version * edit about the data and additional info sections * fix comment * Removed errant full stop * Open Mobile Scene Package (#318) * Gradle script includes path to download mspk file (further work required here) and implementation of sample in Java * Create README.md * Create OpenMobileScenePackage.png * Update typo in README * Updated gradle to point to correct data on AGOL * Update to sample code following review * Updates to ReadMe following review * Additional update to read me to include isDirectReadSupported.get * Updated from markdown to HTML * Remove id tags from HTML * Map reference scale (#319) * Create MapReferenceScaleSample.java * Set up MVC structure for sample * Set up basic map with MVC structure * Added label which updates scale of map as it changes * Set up means to change the map view to the selected reference scale * Set up check boxes for map layers * Update MapReferenceScaleController.java * Update MapReferenceScaleController.java * Allow string in combobox, split to return double to feed into map reference scale * Link checkbox with map layer to set reference scale * Method descriptions and remove unused imports * Fix indents * Create MapReferenceScale.png * Create README.md * Convert markdown to HTML * Addressed comments from review. ComboBox now double, vBoxes will load after map has loaded * Add a method to handle setting the reference scale when interacting with the combobox and the scale sync button. * Code updates following review removed unneeded label, added if loaded statement, and refactored map reference scale. Also updated Readme to account for behavior change. * move checkbox logic in with instanceof check * Update MapReferenceScaleController.java * Corrected title for sample * Merge master into dev (#322) * Camera controller US english update (#320) * Replace "aeroplane" with "plane" in README and code * Update image to show corrected spelling * Fix grammar * Updates to Tiled Layer to show support for .tkpx files (#321) * Updates to tiled layer, including .tpkx support * Update tile cache readme to include support .tpkx * Allow downloading of non zip sample data (#324) * Allow downloading of non zip sample data * point scene layer sample (#323) * point scene layer sample * Merge master into Dev (#329) * Camera controller US english update (#320) * Replace "aeroplane" with "plane" in README and code * Update image to show corrected spelling * Fix grammar * Updates to Tiled Layer to show support for .tkpx files (#321) * Updates to tiled layer, including .tpkx support * Update tile cache readme to include support .tpkx * Update slider to show values from 1-5 rather than 0-5 (#328) * remove online elevation data source (#327) * remove online elevation data source * remove unneeded ArcGISScene object * View content beneath terrain surface (#325) * Initiating sample with Scene URL * add done loading listener for changes * portal item entry for data * Add readme and image * Update ViewContentBeneathTerrainSurfaceSample.java * update build and refactor float code * Update ViewContentBeneathTerrainSurfaceSample.java * Add layer view state changed listener * Update ViewContentBeneathTerrainSurface.png * Address comments following review * update comment for add done loading listener on to scene * Update README.md * remove unused imports * group layers sample (#331) group layers sample * update version, delete extra copy of samples data * Play kml tours (#332) * play a kml tour sample * Generate offline map with local basemap (#330) * added dialog box for choosing which basemap to use * Update GenerateOfflineMapWithLocalBasemap.java * Update GenerateOfflineMapWithLocalBasemap.java * Update build.gradle * refactoring and neatening up the code * Update GenerateOfflineMapWithLocalBasemap.java * Ensure that the file exists before prompting user to find local file * Move standard code into private methods to draw attention to new API functionality * Add image and README * Update GenerateOfflineMapWithLocalBasemap.java * Update build.gradle * code restructuring (#333) * code restructuring * comment edits * Update image and readme * update description of generateOfflineMapDialog class * convert fields to local variables * convert readme from md to html * Merging Master into Dev (#345) * Browse wfs layers (#336) browse wfs layers sample * Raster rendering rule (#343) * create class, bring in image service raster, display it * zoom to extent of raster service * add functionality to apply hard-coded raster rendering rule * build and populate renderingruleInfoListView * change rule ListView for DropDown * make raster rendering rule apply on selection in drop-down * refactor imageServiceUrl * refactor applying rendering rule into separate function * refactor populating drop down and building HashMaps into own functions * remove HashMap, find rule through list index@ * improve comments * private final String imageServiceUrl * Add screenshot and update ReadMe * fix screenshot link in README * new screenshot * use string directly as argument for ImageServiceRaster * README from MD to HTML * bring methods back into start * use ComboBox and string converter * add vbox, label to show rendering rule descr. * rearrange imports * remove imageServiceRaster.loadAsync(); * add newline to label, update screenshot * change indentation to 2 spaces * Update README.md - remove html IDs and img alt * add load status indicator * fix imports * make ArgGISMap local * remove ComboBox.setEditable(False); * syntax, adding stylesheet * variable for ImageServiceRaster uri, update readme * formatting terminology in 'how it works' * readme markdown formatting * remove unused imports * comment for auto select of first rule * default selection now shows description * variable naming, remove unused code, factoring, comments * revise readme * comments, uri variable instantiated at first use * improve readme use-case * readme formatting, typos * tag formatting, typos * Merge `master` into `dev` (#350) * Browse wfs layers (#336) browse wfs layers sample * Raster rendering rule (#343) * Get elevation at a point (#341) * GetElevationAtAPoint - update screenshot (#348) * Token authentication (#347) * Update build.gradle * Allows user to click a value on slider to change exaggeration (#351) (#353) * Allows user to click a value on slider to change exaggeration * remove value changed listener, move annotation to correct place, add space before bracket * merge master into dev for ClosestFacilityStatic (#358) * Allows user to click a value on slider to change exaggeration (#351) * Closest facility static (#346) * merge master into dev (#362) * Clean up readme (#356) * fix/spatial-operations-reset-button (#359) * Edit and sync features (#352) * merge master into dev (#368) * patch-closest-facility-static-readme (#363) * delete sample calculate distance 3D (#365) * Patch/ClosestFacilityStatic- Edit readme 'how to use' (#364) * merge master into dev - oAuth Sample patch (#369) * Tschie/split (#387) separate samples into individual gradle projects, convert readmes to markdown, add readme metadata files * fix naming * Routing around barriers (#354) * build class with scene * render street map and add controls panel * add ui elements * add stops with lables on mouse click * add toggle of checkboxes * create pin symbols, number the stops incrementally * solve route task and display it, display instructions * can add barriers to map, switch between adding stops and barriers * implement barriers in routing, implement reset button * set the mode to adding stops on sample start * clear routes / barriers on right click * clear previous route when calculating new route * rearrange code for readability * symbol colours, fix remove last barrier * improve deleting stops and barriers * ui improvements, comments * improve comments/code structure, pin design * split sample into MVC structure with fxml * edit ui and comments * arrange code, comments, ui improvements * add display of travel time and distance * ui tweaks, add screenshot * add how it works, add use case * move variables from class to function scope * variable naming * README to html * revise readme * revise readme * add code comments * tidy imports * show route length in miles * whitespace * improve return compositesymbol * improve string formatting in route info * remove TODO * route length shows in km * remove unneeded TODOs * comment formatting * comment wording * comment wording * var naming, refactoring * fix bad routing condition, remove unused imports * comments and refactoring * barrier/route symbols to instance variables * create route task at launch * improve route solving and UI * whitespace * functions -> in-line code * readme edits * variables to method scope * fxml formtting, commenting, ui improvements * fxml line breaks * change 2nd order lists to ul * add normalizing geometry code * fxml refactor * reset title pane, pin image to class var * improve route info fetch * route/stop lists -> linked lists * improve removing stops/barriers * refactor click handling * refactor click handling * improve deleting stops/barriers * refactor adding/deleting stops * fixes * comments * indentation * formatting sample file * update README.md, comments * determine route automatically * use renderer for route graphics * bug fixes, refactoring * formatting * README.md to MD * remove extra backtick * add gradle wrapper * set main class to launcher * update README.md * Find service areas for multiple facilities (#367) * create basic class with ui elements, symbols * load in feature table, layer, and zoom to extent * solve service area task and display * UI improvements * imports * add facilities to task through featuretable * formatting * refactoring, ui fixes * comments and formatting * rm comment * add readme and screenshot * readme and comment edits * rename, remove reset button * rename, reduce service area * update readme to mirror design * comments * remove unused SimpleFillSymbol * graphics changes * change basemap to grey canvas * refactoring and variable naming * refactoring * readme wording * comments * screenshot * 3/5min service areas, yellow/red color * comments, bigger facility symbols * remove unneeded code, comment improvements, loop indices * describe both cutoffs in readme * service area comment * readme to html * smaller service areas, new screenshot * update readme for new service areas * update README.md, sample title * implement review changes * update settings.gradle * update build.gradle * package and folder names * Sample title: Area -> Areas * add gradle wrapper * fix main class name * implement review changes * update README.md, comments * update screenshot * update screenshot * Fix comment in ColormapRendererSample.java (#391) * Patch/create and save map - default challenge handler (#388) * implement default challenge handler * Update CreateAndSaveMapController.java fix typo * Update README.md * update README.md, code formatting * remove ShowMessage() method * review changes, update README to standard format * code formatting * Read symbols from mobile style file (#357) * create basic sample class with stage and map * split into main class, controller, fxml * load and search stylx file * click adds symbol to map * add styles to preview * add style to combobox, build preview on select * auto-build symbol preview and add on click * add slider to control size * add color selection dropdown * preview symbols in combobox * color only affects first symbol layer * code formatting, change first color to yellow * fix symbol and graphic sizing bug * improve variables * comboboxes to listviews * UI improvements and comments * refactoring and comments * make preview not resize with slider * refactoring * add readme * allow empty symbol selection, resize preview, fix mouse clicks * fix size slider preview * add labels and reset button * ui improvements * formatting and comments * add red color option, add screenshot * fxml formatting * formatting * formatting * refactoring * comments and refactoring * fxml refactor * formatting * comments and refactoring * swap SymbolLayerInfo class for HashMap * comments * use SymbolStyleSearchResult directly to access symbols * comments and refactoring * implement slider functionality through fxml * formatting * improve use case * use case wording * improve updateSymbolSize() * Revert "improve updateSymbolSize()" This reverts commit 372e73c09825265a016adfb59400ca849d3043c0. * refactor mouse click into fxml * add default switch case * inner classes to bottom of the file * reorder for consistency * whitespace * listview array instead of list * refactoring * ui improvements * readme improvements * review corrections * commen * change colour options * slider reacts to click and to drag * implement review changes * update README.md * inner classes to private, override methods * Update README.md * add gradle wrapper * fix data download * implement review changes * review changes, implement color picker * code formatting * Update geopackage sample (#374) * patch-closest-facility-static-readme (#363) * delete sample calculate distance 3D (#365) * Patch/ClosestFacilityStatic- Edit readme 'how to use' (#364) * patch oAuth sample custom challengehandler (#366) * implement fix for javafx webengine * formatting * add fix for create and save map sample * markdown to html formatting * update read geopackage design * update readme code snippets * improve comments * remove unneeded comments * comment wording * implement review corrections * whitespace * remove unrelated files * implement review changes * remove css stylesheet * clean up some comments * add readme metadata file * Patch/oauth default challenge handler (#375) * oauth with default challenge handler * code formatting and comments * correct redirect uri * remove fxml, formatting * revert gradle-wrapper.jar * comments * readme updated for def challenge handler * implement review changes * rename class file to match docsgst * rename package * implement default challenge handler * restore build.gradle * Revert "restore build.gradle" This reverts commit 35c1df0c3df53e1748ee44db0cb388085fa066b6. * Revert "implement default challenge handler" This reverts commit bd984783687fa1e2653f366fe9a99ff74bed6055. * fix screenshot file name * revert package and class name * update README.md * revert sample name, update README.metadata.json * implement review changes * remove extra comma * Routing around barriers - add isStillSincePress to mouse events (#394) * add isStillSincePress to mouse events * remove error log from error dialog * oauth - README.metadata.json formatting (#395) * formatting * mmpk to class member (#398) * Patch/dictionary symbol style update constructor (#393) * update DictionarySymbolStyle constructor * update README.md and comments * update Item ID * update constructor in remaining samples * update README.md, README.metadata.json * optimise imports * update xml files to remove control points * get Mil2525d xml from AGOL where applicable * remove xml in resources * fix typo on mil2525d * Patch/geometry engine simplify - add isSimple check (#399) * add isSimple check * update Readme.md * update comments, update metadata.json * Integrated windows auth (#370) * patch-closest-facility-static-readme (#363) * delete sample calculate distance 3D (#365) * Patch/ClosestFacilityStatic- Edit readme 'how to use' (#364) * patch oAuth sample custom challengehandler (#366) * implement fix for javafx webengine * formatting * add fix for create and save map sample * markdown to html formatting * working sample * comments, formatting, UI improvements * UI, screenshot, readme * readme formatting * code formatting * ui improvements, screenshot * comments, formatting * readme tags * javadoc comments * ui improvements * ui improvements * refactoring * comments * address review suggestions * smaller UI * update screenshot * listview holds portal item ids * Update README.md, comments * update README.md * fix package and path names * delete irrelevant files * readme to MD * add README.metadata.json * updated README.metadata.json * remove public search, refactoring * whitespace * cell factory to class, fxml tidying * error handling, comments, refactoring * error handling * remove loading/portal info text * class member to local var * update Readme.md for UI changes and review suggestions * refactoring * fix typo * Move construction of portal query parameters to its own line * small UI improvements, update screenshot * update README.md for screenshot link (#403) * Integrated windows auth - update README.metadata.json (#402) * update RAEDME.metadata.json * update tags in README.metadata.json * move local data download logic to settings.gradle (#401) * patch-closest-facility-static-readme (#363) * delete sample calculate distance 3D (#365) * Patch/ClosestFacilityStatic- Edit readme 'how to use' (#364) * patch oAuth sample custom challengehandler (#366) * implement fix for javafx webengine * formatting * add fix for create and save map sample * markdown to html formatting * corrects WKID to 4326 (#389) * corrects WKID to 4326 * use SpatialReferences.getWgs84 * move local data download logic to settings.gradle * move data download logic to settings.gradle * fix data paths * fixing data download for mil2505 xml file for sample viewer v2504 (#404) * update DictionarySymbolStyle constructor * update README.md and comments * update Item ID * update constructor in remaining samples * update README.md, README.metadata.json * optimise imports * update xml files to remove control points * get Mil2525d xml from AGOL where applicable * remove xml in resources * move data download to settings.gradle, fix paths * fix typo * fix directory name * fix local data folder * put native libraries in .arcgis folder * Honor mmpk expiration (#397) * initial commit * working sample * refactoring * refactoring, comments * copyright statement in Launcher class * data download to settings.gradle * change expiration display to static date, CSS edits * update screenshot * expiration message to sentence case * fix settings.gradle. Again. * plement review suggestions * formatting * update README.metadata.json * comments * Set annotation sublayer visibility (#396) * show scale in label * load mmpk * add checkboxes with labels * activate checkboxes, change checkbox text color dynamically * update label color * fix checkboxes, comments * optimise imports, copyright comment * labels and screenshot * update screenshot * update runtime build, update README.md * mmpk to class member * formatting and comments * javadoc comments * restore show_callout files * move downloading of sample data to settings.gradle * fix package naming * move scale label to control panel, check mmpk contains maps * fix checkbox text colours * UI fixes and label colouring * data download in settings.gradle * update README.md * update screenshot for UI changes * fix settings.gradle * fix settings.gradle * formatting * README.metadata.json redirect url to blank string * update README.md * Tschie/preplanned map (#405) * download preplanned map sample * refactoring * add ref to update parameters * method/enum name for update option * method/enum name for update option * update runtime version, imports * inner class to private * add auth manager to handle OAuth challenge * mark portal as requires authentication * update README.md * add screenshot alt text * update README.md * update README.md * update README.md for scheduled updates workflow * update link to guide * update README.md * update use case * improve 'how it works' * add preview of area of interest * improve drawing area of interest * update use case wording, references in additional information * fix deleting temp files, add button 'return to web map' * add numbering to list view * zoom to area on select, refactoring * update listener adding/removing * refactoring * disable/enable showWebMapButton approprately * add README.metadata.json * fix function naming * add confirmation popup when deleting * refactoring, use commons library to delete * fix commons-io dependency * 'show web map' button width * reorder imports * improve viewpoint change, button updates * smaller UI * refactoring and comments * javadoc comments and formatting * remove stray q file * address review corrections * review changes and refactoring * refactoring * whitespace * web map -> online map * further information -> additional information * mmpk to class member * change button text * selecting view online map pans to selected area * formatting * update README.md * copyright statements * remove commented code * try to simplify a bit * simplify sample * don't hide graphics overlay on download * add snippet * update How to use the sample section * Update DownloadPreplannedMap.png * Slim up the use case * remove fxml comments * remove redirect from for new sample * ignore iml files * Create and save kml file (#406) * create folder structure, add readme, metadata.json * split to mvc and add fxml file * ui and button events * UI and sketch mode * add basic kml sketching * show and hide style window after sketch complete * UI toggling based on app state * refactoring * add applying style * add saving * add combobox item list cell * show preview in combobox * JavaDoc comments * comments and refactoring * UI improvements * copyright in list cell factory * Center labels in UI * update README.md * add screenshot * improve saving * tidy ui, wait for map to load to enable ui * formatting * formatting fxml * optmise imports * remove unused css classes * improve file saving * refactor sample and improve UI * refactoring and comments * simplify UI (#407) * simplify UI * reuse file chooser * update readme, metadata, and image * add comments * remove unused imports * Apply scheduled updates to preplanned map area (#392) * initial commit * fix launcher * add apache commons dependencies, fix runtime version * update runtime version * update gradle script * review changes * add README.metadata.json * remove gif * update screenshot * mmpk to class member * update README.metadata.json * add second check for updates after applying * refactor checking for update * title typo, widen UI * update runtime build * remove error message details, refactoring * remove unused imports * move downloading from build to settings.gradle * update README.metadata.json * remove unneeded sync direction code * remove unneeded imports * update runtime version * replace UI with alert * update screenshot and readme.md * fix alert typo * remove progress indicator, add javadocs * remove update checks and update automatically * update README.metadata.json * Revert "remove update checks and update automatically" This reverts commit b9ee5ec630a52d1fd986cd4c531b47a37d45e8b6. * Revert "update README.metadata.json" This reverts commit 74e6859785e0737b24833e7d98a24e8b8adbda8e. * minor cleanup * Rewording * Patch/apply scheduled updates (#412) * remove rollback on fail * create new instance when reopen mmpk * update comments * clean up imports * Data parent directory (#413) * Specify samples-data directory in File constructors * remove sout * add missing parent directory * add missing parent dir * Revert "add missing parent dir" This reverts commit 29c5abe24bce0f227a88225808558c3f5b593e89. * add missing parent dir * change canonicalPath to absolutePath * specify parent directory in File constructor * avoid explicit list of excluded directories * show progress indicator on initial load * Jon/remove unpack workflow2 (#422) * remove unpack workflow * add System.getProperty(data.dir), * Custom dictionary style [into dev] (#421) * add sample * add toggle box and use only overrides with effect * change initial viewpoint, rearrange code * update screenshot for new UI * update readme to reflect changes * update 'how to use' * simplify sample * var naming and comments * update screenshot, readme, comments * update README.md * update readme.md * changes from design review * review changes * remove extra comma * minor rewording * readme formatting * add data.dir property * Edit kml ground overlay [into dev] (#420) * initial commit * fix comments * refactoring * comments * fix URI * remove unused CSS, add screenshot * implement review corrections * update screenshot for new UI * UI changes, simplify applying opacity * setGroundOverlayOpacity() comment wording * update scene comment for clarity * review corrections * Change fields to local variables * add data.dir param * add panel-region class to vbox * update arcgis version to 100.7.0 * remove reference to toggling coordinates (#428) * Display subtype feature layer (#427) * set up sample * Update DisplaySubtypeFeatureLayerSample.java * update readme * refactor for fxml * self review * address review comments and update UI * fix typo * update method name * enable UI once sublayer has loaded * minor rewording --- .gitignore | 1 + analysis/analyze-hotspots/build.gradle | 4 +- .../build.gradle | 4 +- .../line-of-sight-geoelement/build.gradle | 6 +- .../LineOfSightGeoElementSample.java | 2 +- analysis/line-of-sight-location/build.gradle | 4 +- analysis/viewshed-camera/build.gradle | 4 +- analysis/viewshed-geoelement/build.gradle | 4 +- .../ViewshedGeoElementSample.java | 4 +- analysis/viewshed-geoprocessing/build.gradle | 4 +- analysis/viewshed-location/build.gradle | 4 +- .../add-graphics-with-renderer/build.gradle | 6 +- .../add-graphics-with-symbols/build.gradle | 6 +- .../build.gradle | 6 +- ...rolAnnotationSublayerVisibilitySample.java | 6 +- .../build.gradle | 6 +- ...ctionaryRendererGraphicsOverlaySample.java | 5 +- display_information/display-grid/build.gradle | 6 +- .../format-coordinates/build.gradle | 6 +- .../identify-graphics/build.gradle | 4 +- display_information/show-callout/build.gradle | 6 +- .../show-labels-on-layer/build.gradle | 4 +- .../sketch-on-map/build.gradle | 4 +- .../update-graphics/build.gradle | 6 +- editing/add-features/build.gradle | 6 +- editing/delete-features/build.gradle | 6 +- editing/edit-and-sync-features/build.gradle | 6 +- .../EditAndSyncFeaturesController.java | 3 +- editing/edit-feature-attachments/build.gradle | 6 +- editing/update-attributes/build.gradle | 6 +- editing/update-geometries/build.gradle | 4 +- .../build.gradle | 4 +- .../DisplaySubtypeFeatureLayer.png | Bin 0 -> 94216 bytes .../display-subtype-feature-layer/README.md | 39 ++++ .../README.metadata.json | 30 +++ .../build.gradle | 75 ++++++++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 55741 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + .../display-subtype-feature-layer/gradlew | 172 ++++++++++++++++++ .../display-subtype-feature-layer/gradlew.bat | 84 +++++++++ .../settings.gradle | 1 + .../DisplaySubtypeFeatureLayerController.java | 145 +++++++++++++++ .../DisplaySubtypeFeatureLayerLauncher.java | 27 +++ .../DisplaySubtypeFeatureLayerSample.java | 65 +++++++ .../display_subtype_feature_layer.fxml | 67 +++++++ .../src/main/resources/label_definition.json | 46 +++++ .../src/main/resources/style.css | 12 ++ .../build.gradle | 2 +- .../feature-collection-layer/build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../FeatureLayerDictionaryRendererSample.java | 9 +- .../feature-layer-extrusion/build.gradle | 4 +- .../build.gradle | 4 +- .../feature-layer-geodatabase/build.gradle | 2 +- .../FeatureLayerGeodatabaseSample.java | 5 +- .../feature-layer-geopackage/build.gradle | 2 +- .../FeatureLayerGeoPackageSample.java | 2 +- .../feature-layer-query/build.gradle | 2 +- .../build.gradle | 2 +- .../feature-layer-selection/build.gradle | 2 +- .../feature-layer-shapefile/build.gradle | 2 +- .../FeatureLayerShapefileSample.java | 2 +- .../generate-geodatabase/build.gradle | 2 +- .../GenerateGeodatabaseSample.java | 3 +- .../list-related-features/build.gradle | 2 +- .../service-feature-table-cache/build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- feature_layers/statistical-query/build.gradle | 2 +- feature_layers/time-based-query/build.gradle | 4 +- geometry/buffer-list/build.gradle | 2 +- geometry/buffer/build.gradle | 2 +- geometry/clip-geometry/build.gradle | 2 +- geometry/convex-hull-list/build.gradle | 2 +- geometry/convex-hull/build.gradle | 2 +- geometry/create-geometries/build.gradle | 4 +- geometry/cut-geometry/build.gradle | 4 +- geometry/densify-and-generalize/build.gradle | 4 +- geometry/geodesic-operations/build.gradle | 4 +- .../geodesic-sector-and-ellipse/build.gradle | 4 +- .../geometry-engine-simplify/build.gradle | 4 +- .../build.gradle | 4 +- geometry/nearest-vertex/build.gradle | 4 +- geometry/project/build.gradle | 4 +- geometry/spatial-operations/build.gradle | 4 +- geometry/spatial-relationships/build.gradle | 4 +- group_layers/group-layers/build.gradle | 4 +- hydrography/add-enc-exchange-set/build.gradle | 4 +- .../AddEncExchangeSetSample.java | 2 +- .../change-sublayer-renderer/build.gradle | 4 +- .../build.gradle | 4 +- .../map-image-layer-tables/build.gradle | 4 +- image_layers/map-image-layer/build.gradle | 4 +- .../query-map-image-sublayer/build.gradle | 4 +- kml/create-and-save-kml-file/build.gradle | 2 +- kml/display-kml-network-links/build.gradle | 4 +- kml/display-kml/build.gradle | 4 +- .../samples/display_kml/DisplayKMLSample.java | 2 +- kml/edit-kml-ground-overlay/build.gradle | 2 +- .../EditKMLGroundOverlaySample.java | 4 +- kml/identify-kml-features/build.gradle | 4 +- kml/list-kml-contents/build.gradle | 4 +- .../ListKMLContentsSample.java | 2 +- kml/play-a-kml-tour/build.gradle | 4 +- .../play_a_kml_tour/PlayAKMLTourSample.java | 2 +- .../build.gradle | 4 +- ...calServerDynamicWorkspaceRasterSample.java | 6 +- .../build.gradle | 4 +- ...ServerDynamicWorkspaceShapefileSample.java | 6 +- .../local-server-feature-layer/build.gradle | 4 +- .../LocalServerFeatureLayerSample.java | 4 +- .../local-server-geoprocessing/build.gradle | 4 +- .../LocalServerGeoprocessingController.java | 4 +- .../local-server-map-image-layer/build.gradle | 4 +- .../LocalServerMapImageLayerSample.java | 2 +- .../local-server-services/build.gradle | 4 +- .../LocalServerServicesController.java | 2 +- map/access-load-status/build.gradle | 4 +- .../build.gradle | 2 +- ...duledUpdatesToPreplannedMapAreaSample.java | 7 +- map/change-basemap/build.gradle | 4 +- map/create-and-save-map/build.gradle | 4 +- map/display-map/build.gradle | 4 +- map/download-preplanned-map/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 55741 bytes .../build.gradle | 4 +- .../build.gradle | 4 +- ...erateOfflineMapWithLocalBasemapSample.java | 2 +- map/generate-offline-map/build.gradle | 4 +- .../build.gradle | 2 +- ...rMobileMapPackageExpirationDateSample.java | 4 +- map/manage-bookmarks/build.gradle | 4 +- map/manage-operational-layers/build.gradle | 4 +- map/map-initial-extent/build.gradle | 4 +- map/map-reference-scale/build.gradle | 4 +- map/map-spatial-reference/build.gradle | 4 +- map/min-max-scale/build.gradle | 4 +- map/mobile-map-search-and-route/build.gradle | 4 +- .../MobileMapSearchAndRouteSample.java | 2 +- map/open-map-url/build.gradle | 4 +- map/open-mobile-map-package/build.gradle | 4 +- .../OpenMobileMapPackageSample.java | 2 +- map/read-geopackage/build.gradle | 4 +- .../read_geopackage/ReadGeoPackageSample.java | 2 +- map/set-initial-map-location/build.gradle | 4 +- map_view/change-viewpoint/build.gradle | 4 +- map_view/display-drawing-status/build.gradle | 4 +- .../display-layer-view-state/build.gradle | 4 +- map_view/identify-layers/build.gradle | 4 +- map_view/map-rotation/build.gradle | 4 +- map_view/scale-bar/build.gradle | 4 +- map_view/take-screen-shot/build.gradle | 4 +- .../closest-facility-static/build.gradle | 4 +- .../closest-facility/build.gradle | 4 +- network_analysis/find-route/build.gradle | 4 +- .../build.gradle | 4 +- network_analysis/offline-routing/build.gradle | 4 +- .../offline_routing/OfflineRoutingSample.java | 7 +- .../routing-around-barriers/build.gradle | 4 +- .../service-area-task/build.gradle | 4 +- ogc/browse-wfs-layers/build.gradle | 4 +- .../BrowseWfsLayersSample.java | 3 +- ogc/display-wfs-layer/build.gradle | 4 +- ogc/open-street-map-layer/build.gradle | 4 +- ogc/style-wms-layer/build.gradle | 4 +- ogc/wfs-xml-query/build.gradle | 4 +- ogc/wms-layer-url/build.gradle | 2 +- ogc/wmts-layer/build.gradle | 4 +- .../build.gradle | 4 +- portal/oauth/build.gradle | 4 +- portal/token-authentication/build.gradle | 4 +- portal/webmap-keyword-search/build.gradle | 4 +- raster/blend-renderer/build.gradle | 4 +- .../BlendRendererController.java | 4 +- raster/colormap-renderer/build.gradle | 4 +- .../ColormapRendererSample.java | 2 +- raster/hillshade-renderer/build.gradle | 4 +- .../HillshadeRendererController.java | 2 +- raster/raster-function/build.gradle | 4 +- .../raster_function/RasterFunctionSample.java | 2 +- raster/raster-layer-file/build.gradle | 4 +- .../RasterLayerFileSample.java | 2 +- raster/raster-layer-geopackage/build.gradle | 4 +- .../RasterLayerGeopackageSample.java | 2 +- raster/raster-layer-url/build.gradle | 4 +- raster/raster-rendering-rule/build.gradle | 4 +- raster/rgb-renderer/build.gradle | 4 +- .../rgb_renderer/RgbRendererController.java | 2 +- raster/stretch-renderer/build.gradle | 4 +- .../StretchRendererController.java | 2 +- scene/add-a-point-scene-layer/build.gradle | 4 +- .../add-an-integrated-mesh-layer/build.gradle | 4 +- scene/animate-3d-graphic/build.gradle | 4 +- .../Animate3dGraphicController.java | 2 +- scene/change-atmosphere-effect/build.gradle | 4 +- scene/choose-camera-controller/build.gradle | 4 +- .../ChooseCameraControllerSample.java | 2 +- .../build.gradle | 4 +- ...teTerrainSurfaceFromLocalRasterSample.java | 2 +- .../build.gradle | 4 +- ...rainSurfaceFromLocalTilePackageSample.java | 2 +- scene/display-scene/build.gradle | 4 +- scene/distance-composite-symbol/build.gradle | 4 +- .../DistanceCompositeSymbolSample.java | 2 +- scene/elevation-mode/build.gradle | 4 +- scene/extrude-graphics/build.gradle | 4 +- .../build.gradle | 4 +- scene/get-elevation-at-a-point/build.gradle | 4 +- scene/open-mobile-scene-package/README.md | 18 +- scene/open-mobile-scene-package/build.gradle | 4 +- .../OpenMobileScenePackageSample.java | 74 ++------ scene/open-scene-portal-item/build.gradle | 4 +- .../build.gradle | 4 +- ...rbitTheCameraAroundAnObjectController.java | 2 +- scene/scene-layer-selection/build.gradle | 4 +- scene/scene-layer/build.gradle | 4 +- .../scene-properties-expressions/build.gradle | 4 +- scene/symbols/build.gradle | 4 +- .../build.gradle | 4 +- scene/terrain-exaggeration/build.gradle | 4 +- .../build.gradle | 4 +- .../build.gradle | 4 +- .../ViewPointCloudDataOfflineSample.java | 2 +- search/find-address/build.gradle | 4 +- search/find-place/build.gradle | 4 +- search/offline-geocode/build.gradle | 4 +- .../offline_geocode/OfflineGeocodeSample.java | 7 +- search/reverse-geocode-online/build.gradle | 4 +- settings.gradle | 15 +- .../custom-dictionary-style/build.gradle | 2 +- .../CustomDictionaryStyleSample.java | 5 +- .../build.gradle | 2 +- ...hicsOverlayDictionaryRenderer3DSample.java | 5 +- symbology/picture-marker-symbol/build.gradle | 4 +- .../build.gradle | 4 +- ...dSymbolsFromMobileStyleFileController.java | 4 +- symbology/simple-fill-symbol/build.gradle | 4 +- symbology/simple-line-symbol/build.gradle | 4 +- symbology/simple-marker-symbol/build.gradle | 4 +- symbology/simple-renderer/build.gradle | 4 +- symbology/symbol-dictionary/build.gradle | 2 +- .../SymbolDictionaryController.java | 4 +- symbology/symbolize-shapefile/build.gradle | 4 +- .../SymbolizeShapefileSample.java | 2 +- symbology/unique-value-renderer/build.gradle | 4 +- tiled_layers/export-tiles/build.gradle | 4 +- tiled_layers/export-vector-tiles/build.gradle | 4 +- tiled_layers/tile-cache/build.gradle | 4 +- .../samples/tile_cache/TileCacheSample.java | 5 +- tiled_layers/tiled-layer/build.gradle | 4 +- .../vector-tiled-layer-url/build.gradle | 4 +- tiled_layers/web-tiled-layer/build.gradle | 4 +- 254 files changed, 1377 insertions(+), 367 deletions(-) create mode 100644 feature_layers/display-subtype-feature-layer/DisplaySubtypeFeatureLayer.png create mode 100644 feature_layers/display-subtype-feature-layer/README.md create mode 100644 feature_layers/display-subtype-feature-layer/README.metadata.json create mode 100644 feature_layers/display-subtype-feature-layer/build.gradle create mode 100644 feature_layers/display-subtype-feature-layer/gradle/wrapper/gradle-wrapper.jar create mode 100644 feature_layers/display-subtype-feature-layer/gradle/wrapper/gradle-wrapper.properties create mode 100644 feature_layers/display-subtype-feature-layer/gradlew create mode 100644 feature_layers/display-subtype-feature-layer/gradlew.bat create mode 100644 feature_layers/display-subtype-feature-layer/settings.gradle create mode 100644 feature_layers/display-subtype-feature-layer/src/main/java/com/esri/samples/feature_layers/DisplaySubtypeFeatureLayerController.java create mode 100644 feature_layers/display-subtype-feature-layer/src/main/java/com/esri/samples/feature_layers/DisplaySubtypeFeatureLayerLauncher.java create mode 100644 feature_layers/display-subtype-feature-layer/src/main/java/com/esri/samples/feature_layers/DisplaySubtypeFeatureLayerSample.java create mode 100644 feature_layers/display-subtype-feature-layer/src/main/resources/display_subtype_feature_layer.fxml create mode 100644 feature_layers/display-subtype-feature-layer/src/main/resources/label_definition.json create mode 100644 feature_layers/display-subtype-feature-layer/src/main/resources/style.css create mode 100644 map/download-preplanned-map/gradle/wrapper/gradle-wrapper.jar diff --git a/.gitignore b/.gitignore index 86ad075a4c..423fb5728e 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ samples-data/ # Intellij project files *.ipr .idea/ +*.iml # Eclipse .metadata diff --git a/analysis/analyze-hotspots/build.gradle b/analysis/analyze-hotspots/build.gradle index dbeb890131..218674e1d3 100644 --- a/analysis/analyze-hotspots/build.gradle +++ b/analysis/analyze-hotspots/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -71,4 +71,4 @@ task productionZip(type: Zip) { wrapper { gradleVersion = '5.0' -} \ No newline at end of file +} diff --git a/analysis/distance-measurement-analysis/build.gradle b/analysis/distance-measurement-analysis/build.gradle index cd1d094ee4..7bcf7acd37 100644 --- a/analysis/distance-measurement-analysis/build.gradle +++ b/analysis/distance-measurement-analysis/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -71,4 +71,4 @@ task productionZip(type: Zip) { wrapper { gradleVersion = '5.0' -} \ No newline at end of file +} diff --git a/analysis/line-of-sight-geoelement/build.gradle b/analysis/line-of-sight-geoelement/build.gradle index bc58768fb7..4e6bb2e5ab 100644 --- a/analysis/line-of-sight-geoelement/build.gradle +++ b/analysis/line-of-sight-geoelement/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -53,8 +53,8 @@ run { jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - manifest { - attributes("Main-Class": "$mainClassName") + manifest { + attributes("Main-Class": "$mainClassName") } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } diff --git a/analysis/line-of-sight-geoelement/src/main/java/com/esri/samples/line_of_sight_geoelement/LineOfSightGeoElementSample.java b/analysis/line-of-sight-geoelement/src/main/java/com/esri/samples/line_of_sight_geoelement/LineOfSightGeoElementSample.java index e2d57559e5..59283a4d03 100644 --- a/analysis/line-of-sight-geoelement/src/main/java/com/esri/samples/line_of_sight_geoelement/LineOfSightGeoElementSample.java +++ b/analysis/line-of-sight-geoelement/src/main/java/com/esri/samples/line_of_sight_geoelement/LineOfSightGeoElementSample.java @@ -162,7 +162,7 @@ public void start(Stage stage) { ); // create a graphic of a taxi to be the target - String modelURI = new File("./samples-data/dolmus_3ds/dolmus.3ds").getAbsolutePath(); + String modelURI = new File(System.getProperty("data.dir"), "./samples-data/dolmus_3ds/dolmus.3ds").getAbsolutePath(); ModelSceneSymbol taxiSymbol = new ModelSceneSymbol(modelURI, 1.0); taxiSymbol.setAnchorPosition(SceneSymbol.AnchorPosition.BOTTOM); taxiSymbol.loadAsync(); diff --git a/analysis/line-of-sight-location/build.gradle b/analysis/line-of-sight-location/build.gradle index 61f9e24f6e..51c0d6a6a7 100644 --- a/analysis/line-of-sight-location/build.gradle +++ b/analysis/line-of-sight-location/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -71,4 +71,4 @@ task productionZip(type: Zip) { wrapper { gradleVersion = '5.0' -} \ No newline at end of file +} diff --git a/analysis/viewshed-camera/build.gradle b/analysis/viewshed-camera/build.gradle index bc847cad1e..fe96121405 100644 --- a/analysis/viewshed-camera/build.gradle +++ b/analysis/viewshed-camera/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -71,4 +71,4 @@ task productionZip(type: Zip) { wrapper { gradleVersion = '5.0' -} \ No newline at end of file +} diff --git a/analysis/viewshed-geoelement/build.gradle b/analysis/viewshed-geoelement/build.gradle index 7e109c8116..29e7ef1491 100644 --- a/analysis/viewshed-geoelement/build.gradle +++ b/analysis/viewshed-geoelement/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -74,4 +74,4 @@ task productionZip(type: Zip) { wrapper { gradleVersion = '5.0' -} \ No newline at end of file +} diff --git a/analysis/viewshed-geoelement/src/main/java/com/esri/samples/viewshed_geoelement/ViewshedGeoElementSample.java b/analysis/viewshed-geoelement/src/main/java/com/esri/samples/viewshed_geoelement/ViewshedGeoElementSample.java index 37fe4fdf81..d62f558e9b 100644 --- a/analysis/viewshed-geoelement/src/main/java/com/esri/samples/viewshed_geoelement/ViewshedGeoElementSample.java +++ b/analysis/viewshed-geoelement/src/main/java/com/esri/samples/viewshed_geoelement/ViewshedGeoElementSample.java @@ -113,8 +113,8 @@ public void start(Stage stage) { graphicsOverlay.setRenderer(renderer3D); // create a graphic of a tank - String modelURI = new File("./samples-data/bradley_low_3ds/bradle.3ds").getAbsolutePath(); - ModelSceneSymbol tankSymbol = new ModelSceneSymbol(modelURI, 10.0); + String modelURI = new File(System.getProperty("data.dir"), "./samples-data/bradley_low_3ds/bradle.3ds").getAbsolutePath(); + ModelSceneSymbol tankSymbol = new ModelSceneSymbol(modelURI.replace("\\", "/"), 10.0); tankSymbol.setHeading(90); tankSymbol.setAnchorPosition(SceneSymbol.AnchorPosition.BOTTOM); tankSymbol.loadAsync(); diff --git a/analysis/viewshed-geoprocessing/build.gradle b/analysis/viewshed-geoprocessing/build.gradle index 16160914eb..572d678dea 100644 --- a/analysis/viewshed-geoprocessing/build.gradle +++ b/analysis/viewshed-geoprocessing/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -71,4 +71,4 @@ task productionZip(type: Zip) { wrapper { gradleVersion = '5.0' -} \ No newline at end of file +} diff --git a/analysis/viewshed-location/build.gradle b/analysis/viewshed-location/build.gradle index b38e4c8cb8..dcae5970d1 100644 --- a/analysis/viewshed-location/build.gradle +++ b/analysis/viewshed-location/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -71,4 +71,4 @@ task productionZip(type: Zip) { wrapper { gradleVersion = '5.0' -} \ No newline at end of file +} diff --git a/display_information/add-graphics-with-renderer/build.gradle b/display_information/add-graphics-with-renderer/build.gradle index b213a7153c..231a92ef89 100644 --- a/display_information/add-graphics-with-renderer/build.gradle +++ b/display_information/add-graphics-with-renderer/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -53,8 +53,8 @@ run { jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - manifest { - attributes("Main-Class": "$mainClassName") + manifest { + attributes("Main-Class": "$mainClassName") } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } diff --git a/display_information/add-graphics-with-symbols/build.gradle b/display_information/add-graphics-with-symbols/build.gradle index 0fb3b5113a..3a6acb4ced 100644 --- a/display_information/add-graphics-with-symbols/build.gradle +++ b/display_information/add-graphics-with-symbols/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -53,8 +53,8 @@ run { jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - manifest { - attributes("Main-Class": "$mainClassName") + manifest { + attributes("Main-Class": "$mainClassName") } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } diff --git a/display_information/control-annotation-sublayer-visibility/build.gradle b/display_information/control-annotation-sublayer-visibility/build.gradle index f7d551c22b..a8e89ee69a 100644 --- a/display_information/control-annotation-sublayer-visibility/build.gradle +++ b/display_information/control-annotation-sublayer-visibility/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -53,8 +53,8 @@ run { jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - manifest { - attributes("Main-Class": "$mainClassName") + manifest { + attributes("Main-Class": "$mainClassName") } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } diff --git a/display_information/control-annotation-sublayer-visibility/src/main/java/com/esri/samples/control_annotation_sublayer_visibility/ControlAnnotationSublayerVisibilitySample.java b/display_information/control-annotation-sublayer-visibility/src/main/java/com/esri/samples/control_annotation_sublayer_visibility/ControlAnnotationSublayerVisibilitySample.java index 4b52ee66cc..fe5c3bc75b 100644 --- a/display_information/control-annotation-sublayer-visibility/src/main/java/com/esri/samples/control_annotation_sublayer_visibility/ControlAnnotationSublayerVisibilitySample.java +++ b/display_information/control-annotation-sublayer-visibility/src/main/java/com/esri/samples/control_annotation_sublayer_visibility/ControlAnnotationSublayerVisibilitySample.java @@ -39,6 +39,8 @@ import com.esri.arcgisruntime.mapping.MobileMapPackage; import com.esri.arcgisruntime.mapping.view.MapView; +import java.io.File; + public class ControlAnnotationSublayerVisibilitySample extends Application { private MapView mapView; @@ -72,6 +74,7 @@ public void start(Stage stage) { // create a control panel and label for the checkboxes VBox controlsVBox = new VBox(6); + controlsVBox.getStyleClass().add("panel-region"); controlsVBox.setBackground(new Background(new BackgroundFill(Paint.valueOf("rgba(0,0,0,0.3)"), CornerRadii.EMPTY, Insets.EMPTY))); controlsVBox.setPadding(new Insets(10.0)); @@ -88,7 +91,8 @@ public void start(Stage stage) { controlsVBox.getChildren().addAll(closedSublayerCheckbox, openSublayerCheckbox, currentMapScaleLabel); // load the mobile map package - mobileMapPackage = new MobileMapPackage("./samples-data/mmpk/GasDeviceAnno.mmpk"); + File mmpkFile = new File(System.getProperty("data.dir"), "./samples-data/mmpk/GasDeviceAnno.mmpk"); + mobileMapPackage = new MobileMapPackage(mmpkFile.getAbsolutePath()); mobileMapPackage.loadAsync(); mobileMapPackage.addDoneLoadingListener(() -> { if (mobileMapPackage.getLoadStatus() == LoadStatus.LOADED && !mobileMapPackage.getMaps().isEmpty()) { diff --git a/display_information/dictionary-renderer-graphics-overlay/build.gradle b/display_information/dictionary-renderer-graphics-overlay/build.gradle index 148b945213..280ce6b9de 100644 --- a/display_information/dictionary-renderer-graphics-overlay/build.gradle +++ b/display_information/dictionary-renderer-graphics-overlay/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -54,8 +54,8 @@ run { jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - manifest { - attributes("Main-Class": "$mainClassName") + manifest { + attributes("Main-Class": "$mainClassName") } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } diff --git a/display_information/dictionary-renderer-graphics-overlay/src/main/java/com/esri/samples/dictionary_renderer_graphics_overlay/DictionaryRendererGraphicsOverlaySample.java b/display_information/dictionary-renderer-graphics-overlay/src/main/java/com/esri/samples/dictionary_renderer_graphics_overlay/DictionaryRendererGraphicsOverlaySample.java index 484c38d014..9d40edceee 100644 --- a/display_information/dictionary-renderer-graphics-overlay/src/main/java/com/esri/samples/dictionary_renderer_graphics_overlay/DictionaryRendererGraphicsOverlaySample.java +++ b/display_information/dictionary-renderer-graphics-overlay/src/main/java/com/esri/samples/dictionary_renderer_graphics_overlay/DictionaryRendererGraphicsOverlaySample.java @@ -76,7 +76,8 @@ public void start(Stage stage) throws Exception { mapView.getGraphicsOverlays().add(graphicsOverlay); // create symbol dictionary from style file - DictionarySymbolStyle symbolDictionary = DictionarySymbolStyle.createFromFile("./samples-data/stylx/mil2525d.stylx"); + File stylxFile = new File(System.getProperty("data.dir"), "./samples-data/stylx/mil2525d.stylx"); + DictionarySymbolStyle symbolDictionary = DictionarySymbolStyle.createFromFile(stylxFile.getAbsolutePath()); // tells graphics overlay how to render graphics with symbol dictionary attributes set DictionaryRenderer renderer = new DictionaryRenderer(symbolDictionary); @@ -102,7 +103,7 @@ public void start(Stage stage) throws Exception { */ private List> parseMessages() throws Exception { - File mil2525dFile = new File("./samples-data/xml/Mil2525DMessages.xml"); + File mil2525dFile = new File(System.getProperty("data.dir"), "./samples-data/xml/Mil2525DMessages.xml"); DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); Document document = documentBuilder.parse(mil2525dFile); diff --git a/display_information/display-grid/build.gradle b/display_information/display-grid/build.gradle index 886d70db73..80b01ba284 100644 --- a/display_information/display-grid/build.gradle +++ b/display_information/display-grid/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -53,8 +53,8 @@ run { jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - manifest { - attributes("Main-Class": "$mainClassName") + manifest { + attributes("Main-Class": "$mainClassName") } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } diff --git a/display_information/format-coordinates/build.gradle b/display_information/format-coordinates/build.gradle index 7e0b39bcae..6208c01478 100644 --- a/display_information/format-coordinates/build.gradle +++ b/display_information/format-coordinates/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -53,8 +53,8 @@ run { jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - manifest { - attributes("Main-Class": "$mainClassName") + manifest { + attributes("Main-Class": "$mainClassName") } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } diff --git a/display_information/identify-graphics/build.gradle b/display_information/identify-graphics/build.gradle index 63096422e5..1bc7a59a43 100644 --- a/display_information/identify-graphics/build.gradle +++ b/display_information/identify-graphics/build.gradle @@ -6,9 +6,11 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } + + javafx { version = "11.0.1" modules = [ 'javafx.controls' ] diff --git a/display_information/show-callout/build.gradle b/display_information/show-callout/build.gradle index 7804135108..9e80781c17 100644 --- a/display_information/show-callout/build.gradle +++ b/display_information/show-callout/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -53,8 +53,8 @@ run { jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - manifest { - attributes("Main-Class": "$mainClassName") + manifest { + attributes("Main-Class": "$mainClassName") } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } diff --git a/display_information/show-labels-on-layer/build.gradle b/display_information/show-labels-on-layer/build.gradle index 402c1a453a..b107fb7b1b 100644 --- a/display_information/show-labels-on-layer/build.gradle +++ b/display_information/show-labels-on-layer/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -72,4 +72,4 @@ task productionZip(type: Zip) { wrapper { gradleVersion = '5.0' -} \ No newline at end of file +} diff --git a/display_information/sketch-on-map/build.gradle b/display_information/sketch-on-map/build.gradle index 4685b74140..d541819cd2 100644 --- a/display_information/sketch-on-map/build.gradle +++ b/display_information/sketch-on-map/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -71,4 +71,4 @@ task productionZip(type: Zip) { wrapper { gradleVersion = '5.0' -} \ No newline at end of file +} diff --git a/display_information/update-graphics/build.gradle b/display_information/update-graphics/build.gradle index b9f7dd1afc..21c004c42d 100644 --- a/display_information/update-graphics/build.gradle +++ b/display_information/update-graphics/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -53,8 +53,8 @@ run { jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - manifest { - attributes("Main-Class": "$mainClassName") + manifest { + attributes("Main-Class": "$mainClassName") } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } diff --git a/editing/add-features/build.gradle b/editing/add-features/build.gradle index 66a3427398..5f2dba62c0 100644 --- a/editing/add-features/build.gradle +++ b/editing/add-features/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -53,8 +53,8 @@ run { jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - manifest { - attributes("Main-Class": "$mainClassName") + manifest { + attributes("Main-Class": "$mainClassName") } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } diff --git a/editing/delete-features/build.gradle b/editing/delete-features/build.gradle index 8fbc9afaaf..10e7c98ecf 100644 --- a/editing/delete-features/build.gradle +++ b/editing/delete-features/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -53,8 +53,8 @@ run { jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - manifest { - attributes("Main-Class": "$mainClassName") + manifest { + attributes("Main-Class": "$mainClassName") } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } diff --git a/editing/edit-and-sync-features/build.gradle b/editing/edit-and-sync-features/build.gradle index 7b55790e9b..13280ffabb 100644 --- a/editing/edit-and-sync-features/build.gradle +++ b/editing/edit-and-sync-features/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -53,8 +53,8 @@ run { jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - manifest { - attributes("Main-Class": "$mainClassName") + manifest { + attributes("Main-Class": "$mainClassName") } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } diff --git a/editing/edit-and-sync-features/src/main/java/com/esri/samples/edit_and_sync_features/EditAndSyncFeaturesController.java b/editing/edit-and-sync-features/src/main/java/com/esri/samples/edit_and_sync_features/EditAndSyncFeaturesController.java index 79bdcb4307..c0a69fe921 100644 --- a/editing/edit-and-sync-features/src/main/java/com/esri/samples/edit_and_sync_features/EditAndSyncFeaturesController.java +++ b/editing/edit-and-sync-features/src/main/java/com/esri/samples/edit_and_sync_features/EditAndSyncFeaturesController.java @@ -83,7 +83,8 @@ private void initialize() { try { // create a basemap from a local tile cache - TileCache sanFranciscoTileCache = new TileCache("samples-data/sanfrancisco/SanFrancisco.tpk"); + File tpkFile = new File(System.getProperty("data.dir"), "./samples-data/sanfrancisco/SanFrancisco.tpk"); + TileCache sanFranciscoTileCache = new TileCache(tpkFile.getAbsolutePath()); ArcGISTiledLayer tiledLayer = new ArcGISTiledLayer(sanFranciscoTileCache); Basemap basemap = new Basemap(tiledLayer); diff --git a/editing/edit-feature-attachments/build.gradle b/editing/edit-feature-attachments/build.gradle index 565a8ffa6e..ac1a034755 100644 --- a/editing/edit-feature-attachments/build.gradle +++ b/editing/edit-feature-attachments/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -54,8 +54,8 @@ run { jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - manifest { - attributes("Main-Class": "$mainClassName") + manifest { + attributes("Main-Class": "$mainClassName") } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } diff --git a/editing/update-attributes/build.gradle b/editing/update-attributes/build.gradle index ef01dc7d87..89663c8979 100644 --- a/editing/update-attributes/build.gradle +++ b/editing/update-attributes/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } javafx { @@ -53,8 +53,8 @@ run { jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - manifest { - attributes("Main-Class": "$mainClassName") + manifest { + attributes("Main-Class": "$mainClassName") } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } diff --git a/editing/update-geometries/build.gradle b/editing/update-geometries/build.gradle index dc75822d85..0eb88f8a00 100644 --- a/editing/update-geometries/build.gradle +++ b/editing/update-geometries/build.gradle @@ -6,9 +6,11 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } + + javafx { version = "11.0.1" modules = [ 'javafx.controls' ] diff --git a/feature_layers/change-feature-layer-renderer/build.gradle b/feature_layers/change-feature-layer-renderer/build.gradle index a898ac4dbc..76452bdf5c 100644 --- a/feature_layers/change-feature-layer-renderer/build.gradle +++ b/feature_layers/change-feature-layer-renderer/build.gradle @@ -6,9 +6,11 @@ plugins { group = 'com.esri.samples' ext { - arcgisVersion = '100.6.0' + arcgisVersion = '100.7.0' } + + javafx { version = "11.0.1" modules = [ 'javafx.controls' ] diff --git a/feature_layers/display-subtype-feature-layer/DisplaySubtypeFeatureLayer.png b/feature_layers/display-subtype-feature-layer/DisplaySubtypeFeatureLayer.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb527731faaf41b8177a4dd07ca4a9d90100ded GIT binary patch literal 94216 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�$&IBi)Z%6Tp@}xx5@cx^1wU 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 IoMp)W0n8}AlK=n! literal 0 HcmV?d00001 diff --git a/feature_layers/display-subtype-feature-layer/README.md b/feature_layers/display-subtype-feature-layer/README.md new file mode 100644 index 0000000000..261390ed4f --- /dev/null +++ b/feature_layers/display-subtype-feature-layer/README.md @@ -0,0 +1,39 @@ +# Display a subtype feature layer + +Display a composite layer of all the subtype values in a feature class. + +![](DisplaySubtypeFeatureLayer.png) + +## Use case + +This is useful for controlling labeling, visibility, and symbology of a given subtype as though they are distinct + layers on the map. + +## How to use the sample + +The sample loads with the sublayer visible on the map. Toggle its visibility by clicking the "Show sublayer +" checkbox. Toggle between the sublayer's original renderer and an alternate renderer using the radio buttons. Click the + "Set sublayer minimum scale" button to set the sublayer's minimum scale to the current map scale. + +## How it works +1. Create a `SubtypeFeatureLayer` from a `ServiceFeatureTable` that defines a subtype, and add it to the `ArcGISMap`. +2. Get a `SubtypeSublayer` from the subtype feature layer using its name. +3. Enable the sublayer's labels and define them with `getLabelDefinitions()`. +4. Set the sublayer's visibility with `setVisible()`. +5. Change the sublayer's renderer/symbology with `setRenderer()`. +6. Update the sublayer's minimum scale value with `setMinScale()`. + +## Relevant API + +* LabelDefinition +* ServiceFeatureTable +* SubtypeFeatureLayer +* SubtypeSublayer + +## About the data + +The [feature service layer](https://sampleserver7.arcgisonline.com/arcgis/rest/services/UtilityNetwork/NapervilleElectric/FeatureServer/100) in this sample represents an electric network in Naperville, Illinois, which contains a utility network with asset classification for different devices. + +## Tags + +asset group, feature layer, labeling, sublayer, subtype, symbology, utility network, visible scale range diff --git a/feature_layers/display-subtype-feature-layer/README.metadata.json b/feature_layers/display-subtype-feature-layer/README.metadata.json new file mode 100644 index 0000000000..e80cbd2502 --- /dev/null +++ b/feature_layers/display-subtype-feature-layer/README.metadata.json @@ -0,0 +1,30 @@ +{ + "category": "Feature Layers", + "description": "Display a composite layer of all the subtype values in a feature class.", + "ignore": false, + "images": [ + "DisplaySubtypeFeatureLayer.png" + ], + "keywords": [ + "asset group", + "feature layer", + "labeling", + "sublayer", + "subtype", + "symbology", + "utility network", + "visible scale range" + ], + "relevant_apis": [ + "LabelDefinition", + "ServiceFeatureTable", + "SubtypeFeatureLayer", + "SubtypeSublayer" + ], + "snippets": [ + "src/main/java/com/esri/samples/display-subtype-feature-layer/DisplaySubtypeFeatureLayerSample.java", + "src/main/java/com/esri/samples/display-subtype-feature-layer/DisplaySubtypeFeatureLayerController.java", + "src/main/resources/display_subtype_feature_layer.fxml" + ], + "title": "Display subtype feature layer" +} diff --git a/feature_layers/display-subtype-feature-layer/build.gradle b/feature_layers/display-subtype-feature-layer/build.gradle new file mode 100644 index 0000000000..bafa4d7f41 --- /dev/null +++ b/feature_layers/display-subtype-feature-layer/build.gradle @@ -0,0 +1,75 @@ +plugins { + id 'application' + id 'org.openjfx.javafxplugin' version '0.0.5' +} + +group = 'com.esri.samples' + +ext { + arcgisVersion = '100.7.0' +} + +javafx { + version = "11.0.1" + modules = [ 'javafx.controls', 'javafx.fxml' ] +} + +compileJava.options.encoding = 'UTF-8' + +repositories { + jcenter() + maven { + url 'https://esri.bintray.com/arcgis' + } + maven { + url 'http://olympus.esri.com/artifactory/arcgisruntime-repo' + } +} + +configurations { + natives +} + +dependencies { + compile 'commons-io:commons-io:2.4' + compile "com.esri.arcgisruntime:arcgis-java:$arcgisVersion" + natives "com.esri.arcgisruntime:arcgis-java-jnilibs:$arcgisVersion" + natives "com.esri.arcgisruntime:arcgis-java-resources:$arcgisVersion" +} + +task copyNatives(type: Copy) { + description = "Copies the arcgis native libraries into the project build directory for development." + group = "build" + configurations.natives.asFileTree.each { + from(zipTree(it)) + } + // store native libraries in a common location shared with other samples + into "${System.properties.getProperty("user.home")}/.arcgis/$arcgisVersion" +} + +run { + dependsOn copyNatives + mainClassName = 'com.esri.samples.feature_layers.DisplaySubtypeFeatureLayerLauncher' +} + +jar { + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + manifest { + attributes("Main-Class": "$mainClassName") + } + from { + configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } + } +} + +task productionZip(type: Zip) { + group = 'distribution' + from copyNatives + from jar.destinationDir + into (project.name) + baseName = project.name +} + +wrapper { + gradleVersion = '5.0' +} diff --git a/feature_layers/display-subtype-feature-layer/gradle/wrapper/gradle-wrapper.jar b/feature_layers/display-subtype-feature-layer/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..457aad0d98108420a977756b7145c93c8910b076 GIT binary patch literal 55741 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 O(FVj@M23F*_WuFL)$*MH literal 0 HcmV?d00001 diff --git a/feature_layers/display-subtype-feature-layer/gradle/wrapper/gradle-wrapper.properties b/feature_layers/display-subtype-feature-layer/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000..75b8c7c8c6 --- /dev/null +++ b/feature_layers/display-subtype-feature-layer/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/feature_layers/display-subtype-feature-layer/gradlew b/feature_layers/display-subtype-feature-layer/gradlew new file mode 100644 index 0000000000..af6708ff22 --- /dev/null +++ b/feature_layers/display-subtype-feature-layer/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/feature_layers/display-subtype-feature-layer/gradlew.bat b/feature_layers/display-subtype-feature-layer/gradlew.bat new file mode 100644 index 0000000000..6d57edc706 --- /dev/null +++ b/feature_layers/display-subtype-feature-layer/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/feature_layers/display-subtype-feature-layer/settings.gradle b/feature_layers/display-subtype-feature-layer/settings.gradle new file mode 100644 index 0000000000..1a692ffc76 --- /dev/null +++ b/feature_layers/display-subtype-feature-layer/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'display-subtype-feature-layer' diff --git a/feature_layers/display-subtype-feature-layer/src/main/java/com/esri/samples/feature_layers/DisplaySubtypeFeatureLayerController.java b/feature_layers/display-subtype-feature-layer/src/main/java/com/esri/samples/feature_layers/DisplaySubtypeFeatureLayerController.java new file mode 100644 index 0000000000..da375a122b --- /dev/null +++ b/feature_layers/display-subtype-feature-layer/src/main/java/com/esri/samples/feature_layers/DisplaySubtypeFeatureLayerController.java @@ -0,0 +1,145 @@ +/* + * Copyright 2019 Esri. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.esri.samples.feature_layers; + +import java.nio.charset.StandardCharsets; + +import com.esri.arcgisruntime.arcgisservices.LabelDefinition; +import com.esri.arcgisruntime.data.ServiceFeatureTable; +import com.esri.arcgisruntime.geometry.Envelope; +import com.esri.arcgisruntime.geometry.SpatialReferences; +import com.esri.arcgisruntime.layers.SubtypeFeatureLayer; +import com.esri.arcgisruntime.layers.SubtypeSublayer; +import com.esri.arcgisruntime.mapping.ArcGISMap; +import com.esri.arcgisruntime.mapping.Basemap; +import com.esri.arcgisruntime.mapping.Viewpoint; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.esri.arcgisruntime.symbology.Renderer; +import com.esri.arcgisruntime.symbology.SimpleMarkerSymbol; +import com.esri.arcgisruntime.symbology.SimpleRenderer; +import com.esri.arcgisruntime.symbology.Symbol; + +import javafx.fxml.FXML; +import javafx.scene.control.CheckBox; +import javafx.scene.control.Label; +import javafx.scene.layout.VBox; +import org.apache.commons.io.IOUtils; + +public class DisplaySubtypeFeatureLayerController { + + @FXML private MapView mapView; + @FXML private Label currentMapScaleLabel; + @FXML private Label minScaleLabel; + @FXML private CheckBox sublayerVisibilityCheckbox; + @FXML private VBox vBox; + + private SubtypeSublayer sublayer; + private Renderer originalRenderer; + private Renderer alternativeRenderer; + + public void initialize() { + + try { + + // create a map with streets night vector basemap and add it to the map view + ArcGISMap map = new ArcGISMap(); + map.setBasemap(Basemap.createStreetsNightVector()); + mapView.setMap(map); + // display the current map scale + mapView.addMapScaleChangedListener(mapScaleChangedEvent -> + currentMapScaleLabel.setText("Current map scale: 1:" + Math.round(mapView.getMapScale()))); + + // set the viewpoint to Naperville, Illinois + Viewpoint initialViewpoint = new Viewpoint(new Envelope(-9812691.11079696, 5128687.20710657, + -9812377.9447607, 5128865.36767282, SpatialReferences.getWebMercator())); + map.setInitialViewpoint(initialViewpoint); + + // create a subtype feature layer from the service feature table, and add it to the map + ServiceFeatureTable serviceFeatureTable = new ServiceFeatureTable("https://sampleserver7.arcgisonline" + + ".com/arcgis/rest/services/UtilityNetwork/NapervilleElectric/FeatureServer/100"); + SubtypeFeatureLayer subtypeFeatureLayer = new SubtypeFeatureLayer(serviceFeatureTable); + map.getOperationalLayers().add(subtypeFeatureLayer); + + // access the json required for sublayer label definitions + final String json = IOUtils.toString(getClass().getResourceAsStream("/label_definition.json"), StandardCharsets.UTF_8); + + // load the subtype feature layer + subtypeFeatureLayer.loadAsync(); + subtypeFeatureLayer.addDoneLoadingListener(() -> { + // show the UI for interaction with the sublayer once it has loaded + vBox.setVisible(true); + + // get the Street Light sublayer and define its labels + sublayer = subtypeFeatureLayer.getSublayerWithSubtypeName("Street Light"); + sublayer.setLabelsEnabled(true); + sublayer.getLabelDefinitions().add(LabelDefinition.fromJson(json)); + + // get the original renderer of the sublayer (white and black circular icon) + originalRenderer = sublayer.getRenderer(); + // create a custom renderer for the sublayer (light pink diamond symbol) + Symbol symbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.Style.DIAMOND, 0xfff58f84, 20); + alternativeRenderer = new SimpleRenderer(symbol); + }); + + } catch (Exception e) { + // on any error, display the stack trace. + e.printStackTrace(); + } + } + + /** + * Sets the minimum scale of the labels for the sublayer. + */ + @FXML + private void handleMinScaleButtonClicked() { + sublayer.setMinScale(mapView.getMapScale()); + minScaleLabel.setText("Sublayer min scale: 1:" + Math.round(sublayer.getMinScale())); + } + + /** + * Sets the visibility of the sublayer. + */ + @FXML + private void handleSublayerVisibility() { + sublayer.setVisible(sublayerVisibilityCheckbox.isSelected()); + } + + /** + * Sets the renderer of the sublayer to its original format (a white and black circular icon). + */ + @FXML + private void handleOriginalRendererButtonClicked() { + sublayer.setRenderer(originalRenderer); + } + + /** + * Sets the renderer of the sublayer to that of a pink diamond symbol. + */ + @FXML + private void handleAlternativeRendererButtonClicked() { + sublayer.setRenderer(alternativeRenderer); + } + + /** + * Disposes application resources. + */ + void terminate() { + if (mapView != null) { + mapView.dispose(); + } + } + +} diff --git a/feature_layers/display-subtype-feature-layer/src/main/java/com/esri/samples/feature_layers/DisplaySubtypeFeatureLayerLauncher.java b/feature_layers/display-subtype-feature-layer/src/main/java/com/esri/samples/feature_layers/DisplaySubtypeFeatureLayerLauncher.java new file mode 100644 index 0000000000..43c15e86f5 --- /dev/null +++ b/feature_layers/display-subtype-feature-layer/src/main/java/com/esri/samples/feature_layers/DisplaySubtypeFeatureLayerLauncher.java @@ -0,0 +1,27 @@ +/* + * Copyright 2019 Esri. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.esri.samples.feature_layers; + +/** +* Wrapper required for launching a JavaFX 11 app through Gradle or from a jar. +*/ +public class DisplaySubtypeFeatureLayerLauncher { + + public static void main(String[] args) { + DisplaySubtypeFeatureLayerSample.main(args); + } +} diff --git a/feature_layers/display-subtype-feature-layer/src/main/java/com/esri/samples/feature_layers/DisplaySubtypeFeatureLayerSample.java b/feature_layers/display-subtype-feature-layer/src/main/java/com/esri/samples/feature_layers/DisplaySubtypeFeatureLayerSample.java new file mode 100644 index 0000000000..a34aad49a4 --- /dev/null +++ b/feature_layers/display-subtype-feature-layer/src/main/java/com/esri/samples/feature_layers/DisplaySubtypeFeatureLayerSample.java @@ -0,0 +1,65 @@ +/* + * Copyright 2019 Esri. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.esri.samples.feature_layers; + +import java.io.IOException; + +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.stage.Stage; + +public class DisplaySubtypeFeatureLayerSample extends Application { + + private static DisplaySubtypeFeatureLayerController controller; + + @Override + public void start(Stage stage) throws IOException { + + FXMLLoader loader = new FXMLLoader(getClass().getResource("/display_subtype_feature_layer.fxml")); + Parent root = loader.load(); + controller = loader.getController(); + Scene scene = new Scene(root); + + // set up the stage + stage.setTitle("Display subtype feature layer sample"); + stage.setWidth(800); + stage.setHeight(700); + stage.setScene(scene); + stage.show(); + } + + /** + * Stops and releases all resources used in application. + */ + @Override + public void stop() { + controller.terminate(); + } + + /** + * Opens and runs application. + * + * @param args arguments passed to this application + */ + public static void main(String[] args) { + + Application.launch(args); + } + +} diff --git a/feature_layers/display-subtype-feature-layer/src/main/resources/display_subtype_feature_layer.fxml b/feature_layers/display-subtype-feature-layer/src/main/resources/display_subtype_feature_layer.fxml new file mode 100644 index 0000000000..faeb759e94 --- /dev/null +++ b/feature_layers/display-subtype-feature-layer/src/main/resources/display_subtype_feature_layer.fxml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +