diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 958204d..55bda12 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,3 +1,6 @@ +Esri welcomes contributions from anyone and everyone. Please see our +[guidelines for contributing](https://github.com/esri/contributing). + # Contributing to ArcGIS Viewer for Flex There are many ways you can contribute to the [ArcGIS Viewer for Flex](http://links.esri.com/flexviewer). @@ -26,12 +29,11 @@ The [ArcGIS Viewer for Flex](http://links.esri.com/flexviewer) is built by the F 7. Test your code. ### Submitting changes -1. Read the License section below. -2. Push the changes in your feature branch to your repo. -3. Submit a [pull request](https://help.github.com/articles/using-pull-requests) against the "develop" branch. Submitting a pull request will open a GitHub issue. +1. Push the changes in your feature branch to your repo. +2. Submit a [pull request](https://help.github.com/articles/using-pull-requests) against the "develop" branch. Submitting a pull request will open a GitHub issue. * Clearly describe the issue including steps to reproduce; or if an enhancement, indicate the functionality you built. ## License By contributing your code, you agree to license your contribution under the terms of the [Apache License 2.0](https://github.com/Esri/arcgis-viewer-flex/blob/master/license.txt). See item 5 of [https://github.com/Esri/arcgis-viewer-flex/blob/master/license.txt](https://github.com/Esri/arcgis-viewer-flex/blob/master/license.txt) for more details. -[1]: https://github.com/Esri/arcgis-viewer-flex/wiki/Coding-Conventions \ No newline at end of file +[1]: https://github.com/Esri/arcgis-viewer-flex/wiki/Coding-Conventions diff --git a/build.properties b/build.properties index 8c034c6..81683c5 100644 --- a/build.properties +++ b/build.properties @@ -12,4 +12,4 @@ fb.debug.dir=bin-debug fb.workspace.project.name=FlexViewer # Locales to create resource modules for -locale.modules=ar,da_DK,de_DE,en_US,es_ES,et_EE,fr_FR,he_IL,it_IT,ja_JP,ko_KR,lt_LT,lv_LV,nb_NO,nl_NL,pl_PL,pt_BR,pt_PT,ro_RO,ru_RU,sv_SE,zh_CN \ No newline at end of file +locale.modules=ar,da_DK,de_DE,en_US,es_ES,et_EE,fi_FI,fr_FR,he_IL,it_IT,ja_JP,ko_KR,lt_LT,lv_LV,nb_NO,nl_NL,pl_PL,pt_BR,pt_PT,ro_RO,ru_RU,sv_SE,zh_CN diff --git a/build.xml b/build.xml index bf8b861..565f1c5 100644 --- a/build.xml +++ b/build.xml @@ -154,6 +154,8 @@ //flashvars.resourceModuleURLs = "assets/locale/es_ES.swf"; //flashvars.localeChain = "et_EE"; //flashvars.resourceModuleURLs = "assets/locale/et_EE.swf"; + //flashvars.localeChain = "fi_FI"; + //flashvars.resourceModuleURLs = "assets/locale/fi_FI.swf"; //flashvars.localeChain = "fr_FR"; //flashvars.resourceModuleURLs = "assets/locale/fr_FR.swf"; //flashvars.localeChain = "he_IL"; diff --git a/locale/ar/ViewerStrings.properties b/locale/ar/ViewerStrings.properties index fadc63b..7385a25 100644 --- a/locale/ar/ViewerStrings.properties +++ b/locale/ar/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=حول ArcGIS Viewer for Flex... -aboutText=يستخدم هذا التطبيق ArcGIS Viewer 3.4 for Flex. +aboutText=يستخدم هذا التطبيق ArcGIS Viewer 3.5 for Flex. aboutLearnMoreBtn=تعلم المزيد aboutCloseBtn=إغلاق @@ -84,7 +84,7 @@ faultDetail=تفاصيل الخطأ: {0} parseConfigErrorText=حدثت مشكلة أثناء تحليل ملف تكوين {0} standalonePlayerExternalInterfaceErrorText=حدث خطأ ما. لا يعمل ExternalInterface في مشغل مستقل. -layerFailedToLoad:فشل تحميل الطبقة {0}: {1} +layerFailedToLoad=فشل تحميل الطبقة {0}: {1} couldNotFetchBasemapData=تعذر إحضار بيانات خريطة الأساس:\n{0} couldNotConnectToPortal=تعذر الاتصال بالمدخل. couldNotQueryPortal=تعذر الاستعلام عن المدخل. @@ -250,6 +250,8 @@ step1ErrorLabel=رجاء اختيار المساحة المرغوب فيها. step2ErrorLabel=رجاء اختيار طبقات لاستخراجها. emptyResultsLabel=تم إكمال المهمة ولكن لم تظهر أية نتائج. saveDataFileLabel=تم إنشاء ملف البيانات. هل ترغب في حفظه؟ +selectAllLabel=تحديد الكل +deselectAllLabel=إلغاء تحديد الكل attributesLabel=البيانات الجدولية diff --git a/locale/da_DK/ViewerStrings.properties b/locale/da_DK/ViewerStrings.properties index aa20467..7cf8297 100644 --- a/locale/da_DK/ViewerStrings.properties +++ b/locale/da_DK/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=Om ArcGIS Viewer for Flex... -aboutText=Denne applikation bruger ArcGIS Viewer 3.4 for Flex. +aboutText=Denne applikation bruger ArcGIS Viewer 3.5 for Flex. aboutLearnMoreBtn=Lær mere aboutCloseBtn=Luk @@ -84,7 +84,7 @@ faultDetail=Fejldetaljer: {0} parseConfigErrorText=Der opstod et problem under analyse af konfigurationsfilen {0} standalonePlayerExternalInterfaceErrorText=Der opstod en fejl. ExternalInterface fungerer ikke sammen med den enkeltstående afspiller. -layerFailedToLoad:{0} lag kunne ikke indlæse: {1} +layerFailedToLoad={0} lag kunne ikke indlæse: {1} couldNotFetchBasemapData=Kunne ikke hente baggrundskortdata:\n{0} couldNotConnectToPortal=Kunne ikke oprette forbindelse til portalen. couldNotQueryPortal=Kunne ikke sende forespørgsel til portalen. @@ -250,6 +250,8 @@ step1ErrorLabel=Vælg et interesseområde. step2ErrorLabel=Vælg de lag, der skal udtrækkes. emptyResultsLabel=Opgave fuldført, men der er ikke returneret nogen resultater. saveDataFileLabel=Datafil oprettet. Vil du gemme den? +selectAllLabel=Markér alle +deselectAllLabel=Fravælg alle attributesLabel=Attributter diff --git a/locale/de_DE/ViewerStrings.properties b/locale/de_DE/ViewerStrings.properties index 6beb94a..476f26a 100644 --- a/locale/de_DE/ViewerStrings.properties +++ b/locale/de_DE/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=Info zu ArcGIS Viewer for Flex... -aboutText=Diese Anwendung verwendet ArcGIS Viewer 3.4 for Flex. +aboutText=Diese Anwendung verwendet ArcGIS Viewer 3.5 for Flex. aboutLearnMoreBtn=Weitere Informationen aboutCloseBtn=Schließen @@ -84,7 +84,7 @@ faultDetail=Fehlerdetails: {0} parseConfigErrorText=Problem beim Parsen der Konfigurationsdatei {0} standalonePlayerExternalInterfaceErrorText=Ein Fehler ist aufgetreten. ExternalInterface funktioniert nicht in eigenständigem Player. -layerFailedToLoad:Layer "{0}" konnte nicht geladen werden: {1} +layerFailedToLoad=Layer "{0}" konnte nicht geladen werden: {1} couldNotFetchBasemapData=Grundkartendaten konnten nicht abgerufen werden:\n{0} couldNotConnectToPortal=Verbindung zum Portal konnte nicht hergestellt werden. couldNotQueryPortal=Portal konnte nicht abgefragt werden. @@ -250,6 +250,8 @@ step1ErrorLabel=Wählen Sie einen Interessensbereich aus. step2ErrorLabel=Wählen Sie die zu extrahierenden Layer aus. emptyResultsLabel=Der Task wurde abgeschlossen, hat aber keine Ergebnisse zurückgegeben. saveDataFileLabel=Die Datendatei wurde erstellt. Möchten Sie sie speichern? +selectAllLabel=Alle auswählen +deselectAllLabel=Auswahl für alle aufheben attributesLabel=Attribute diff --git a/locale/en_US/ViewerStrings.properties b/locale/en_US/ViewerStrings.properties index 869f2b2..fd636eb 100644 --- a/locale/en_US/ViewerStrings.properties +++ b/locale/en_US/ViewerStrings.properties @@ -1,7 +1,7 @@ # -- UI related messages for the context menu on the map, in addition to messages from the api -- # contextMenuText=About ArcGIS Viewer for Flex... -aboutText=This application is using ArcGIS Viewer for Flex version 3.4. +aboutText=This application is using ArcGIS Viewer for Flex version 3.5. aboutLearnMoreBtn=Learn more aboutCloseBtn=Close @@ -84,7 +84,7 @@ faultDetail=Fault details: {0} ########## Errors parseConfigErrorText=A problem occurred while parsing the configuration file {0} standalonePlayerExternalInterfaceErrorText=Some error occurred. ExternalInterface doesn't work in Standalone player. -layerFailedToLoad:{0} layer failed to load: {1} +layerFailedToLoad={0} layer failed to load: {1} couldNotFetchBasemapData=Could not fetch basemap data:\n{0} couldNotConnectToPortal=Could not connect to Portal. couldNotQueryPortal=Could not query portal. @@ -250,6 +250,8 @@ step1ErrorLabel=Please select an area of interest. step2ErrorLabel=Please select layers to extract. emptyResultsLabel=Task completed but didn't return any results. saveDataFileLabel=Data file created. Would you like to save it? +selectAllLabel=Select all +deselectAllLabel=Deselect all ########## Edit Widget attributesLabel=Attributes diff --git a/locale/es_ES/ViewerStrings.properties b/locale/es_ES/ViewerStrings.properties index 74f9c24..87b7b3c 100644 --- a/locale/es_ES/ViewerStrings.properties +++ b/locale/es_ES/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=Acerca de ArcGIS Viewer for Flex... -aboutText=Esta aplicación utiliza ArcGIS Viewer 3.4 for Flex. +aboutText=Esta aplicación utiliza ArcGIS Viewer 3.5 for Flex. aboutLearnMoreBtn=Más información aboutCloseBtn=Cerrar @@ -84,7 +84,7 @@ faultDetail=Detalles del fallo: {0} parseConfigErrorText=Se encontró un problema mientras se analizaba el archivo de configuración {0} standalonePlayerExternalInterfaceErrorText=Ha ocurrido un error. ExternalInterface no funciona en el reproductor independiente. -layerFailedToLoad:No se pudo cargar la capa {0}: {1} +layerFailedToLoad=No se pudo cargar la capa {0}: {1} couldNotFetchBasemapData=No se pudieron recuperar los datos del mapa base:\n{0} couldNotConnectToPortal=No se pudo conectar con el Portal. couldNotQueryPortal=No se pudo consultar el portal. @@ -250,6 +250,8 @@ step1ErrorLabel=Seleccione un área de interés. step2ErrorLabel=Seleccione las capas para extraer. emptyResultsLabel=La tarea se completó pero no produjo ningún resultado. saveDataFileLabel=Se creó el archivo de datos. ¿Desea guardarlo? +selectAllLabel=Seleccionar todo +deselectAllLabel=Deseleccionar todo attributesLabel=Atributos diff --git a/locale/et_EE/ViewerStrings.properties b/locale/et_EE/ViewerStrings.properties index 8f5648e..9ba04d7 100644 --- a/locale/et_EE/ViewerStrings.properties +++ b/locale/et_EE/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=ArcGIS Viewer for Flex rakendusest... -aboutText=Antud rakendus kasutab ArcGIS Viewer 3.4 for Flex versiooni. +aboutText=Antud rakendus kasutab ArcGIS Viewer 3.5 for Flex versiooni. aboutLearnMoreBtn=Loe lähemalt aboutCloseBtn=Sulge @@ -84,7 +84,7 @@ faultDetail=Vea detailid: {0} parseConfigErrorText=Konfiguratsiooni faili parsimisel esines probleem: {0} standalonePlayerExternalInterfaceErrorText=Tekkis viga. ExternalInterface ei toimi iseseisvas mängijas. -layerFailedToLoad:{0} kihi laadimine ebaõnnestus: {1} +layerFailedToLoad={0} kihi laadimine ebaõnnestus: {1} couldNotFetchBasemapData=Ei õnnestunud saada aluskaardi andmeid:\n{0} couldNotConnectToPortal=Ei õnnestunud portaaliga ühendust saada. couldNotQueryPortal=Ei õnnestunud portaali pärida. @@ -250,6 +250,8 @@ step1ErrorLabel=Palun valige huvipiirkond. step2ErrorLabel=Palun valige väljavõtte kihid. emptyResultsLabel=Ülesanne lõpetatud edukalt, kuid ei tagastanud ühtegi tulemust. saveDataFileLabel=Fail andmetega on loodud. Kas soovite seda alla laadida? +selectAllLabel=Vali kõik +deselectAllLabel=Eemalda valik kõigilt attributesLabel=Atribuudid diff --git a/locale/fi_FI/ViewerStrings.properties b/locale/fi_FI/ViewerStrings.properties new file mode 100755 index 0000000..648c244 --- /dev/null +++ b/locale/fi_FI/ViewerStrings.properties @@ -0,0 +1,372 @@ + + +contextMenuText=Tietoja: ArcGIS Viewer for Flex... +aboutText=Tämä sovellus käyttää ArcGIS Viewer for Flex -versiota 3.5. +aboutLearnMoreBtn=Lisätietoja +aboutCloseBtn=Sulje + + + +close=Sulje +minimize=Pienennä + + + +panelExpandTooltip=Laajenna ruutu napsauttamalla +panelCollapseTooltip=Supista ruutu napsauttamalla + + +locateExampleValueX=24.9253 +locateExampleValueY=60.1731 + + +yesLabel=Kyllä +noLabel=Ei +clearLabel=Tyhjennä +deleteLabel=Poista +loadingLabel=Ladataan... +okLabel=OK +cancelLabel=Peruuta +errorLabel=Virhe +problemLabel=Ongelma +noFeatures=Kohteita ei löytynyt. +resultsLabel=Tulokset +saveLabel=Tallenna + + +unitsFeet=Jalka +unitsFeetAbbr=ft +unitsKilometers=Kilometriä +unitsKilometersAbbr=km +unitsMeters=Metriä +unitsMetersAbbr=m +unitsMiles=Mailia +unitsMilesAbbr=mi +unitsYards=Jaardia +unitsYardsAbbr=yd + +unitsAcres=Aaria +unitsAcresAbbr=a +unitsHectares=Hehtaaria +unitsHectaresAbbr=ha +unitsSquareFeet=Neliöjalkaa +unitsSquareFeetAbbr=sq ft +unitsSquareKilometers=Neliökilometriä +unitsSquareKilometersAbbr=km2 +unitsSquareMeters=Neliömetriä +unitsSquareMetersAbbr=m2 +unitsSquareMiles=Neliömailia +unitsSquareMilesAbbr=sq mi +unitsSquareYards=Neliöjaardia +unitsSquareYardsAbbr=sq yd + + +tocMapLayerZoomToLabel=Tarkenna kohteeseen +tocMapLayerTransparencyLabel=Läpinäkyvyys +tocMapLayerOpaqueLabel=Läpinäkymätön +tocMapLayerTransparentLabel=Läpinäkyvä +tocMapLayerMoveUpLabel=Siirrä ylös +tocMapLayerMoveDownLabel=Siirrä alas +tocMapLayerRemoveLabel=Poista +tocMapLayerDescriptionLabel=Kuvaus +tocMapLayerDownloadLabel=Lataa + + +incorrectLayerTypeText={0} ei ole tuettu karttatasotyyppi. Käytä sen sijaan tyyppiä "arcims", "bing", "csv", "dynamic", "feature", "georss", "image", "kml", "osm", "tiled", "webtiled", "wms" tai "wmts". + + +missingConfigFileText=Tiedostoa {0} ei löytynyt +httpResponseStatus=http-vastauksen tila: {0} +faultCode=Vikakoodi: {0} +faultInfo=Vikatiedot: {0} +faultDetail=Tarkat vikatiedot: {0} + + +parseConfigErrorText=Määritystiedoston {0} jäsennyksessä esiintyi ongelma +standalonePlayerExternalInterfaceErrorText=Tapahtui virhe. ExternalInterface ei toimi erillisessä toisto-ohjelmassa. +layerFailedToLoad=Karttatason {0} lataaminen epäonnistui: {1} +couldNotFetchBasemapData=Taustakartan tietojen haku epäonnistui:\n{0} +couldNotConnectToPortal=Yhteyden muodostaminen portaaliin epäonnistui. +couldNotQueryPortal=Portaalin kysely epäonnistui. +couldNotQueryPortalItems=Portaalikohteiden kysely epäonnistui. +serverMissingCrossDomain=GIS-palvelimesta puuttuu toimialueiden välinen määritystiedosto. +serviceIsInaccessible=Palvelua ei ole, tai se ei ole käytettävissä. +unauthorizedAccess=Sinulla ei ole oikeuksia tämän palvelun käyttämiseen. +unknownErrorCause=Tuntematon virheen syy. +resourceAccessDenied=Sinulla ei ole oikeuksia tämän resurssin käyttämiseen. +signInAborted=Kirjautuminen keskeytettiin. +invalidWidgetId=Virheellinen widgetId: {0} +printTaskExecutionError=Virhe suoritettaessa tulostustehtävää:\n\n{0} +gpServiceConnectionError=Yhteyttä ei voi luoda GP-palveluun:\n{0}\n\n{1}\n{2} +locatorServiceConnectionError=Yhteyttä ei voi luoda paikanninpalveluun:\n{0}\n\n{1}\n{2} +singleLineGeocodingNotSupportedError=Paikanninpalvelu ei tue yhden rivin geokoodausta. +rssFeedParsingError=Ongelma RSS-syötteen jäsennyksessä. {0} +httpResponseNotXMLError=HTTP-vastaus ei ole XML. +unknownRSSFeedTypeError=RSS-syötteen tyyppiä ei voi määrittää. +initializationError=Ongelma alustuksen aikana: {0} +unableToDetermineGPExecutionType=Geoprosessoinnin suoritustyyppiä ei voi määrittää: +projectionError=Geometrian projisoinnissa tapahtui virhe: {0} +cannotRunTaskExecutionTypeUnknownError=Tehtävää ei voi suorittaa: tuntematon suoritustyyppi. +layerDataRetrievalError=Karttatason tietoja ei voi hakea. +couldNotDeleteFeature=Kohdetta ei voi poistaa. +couldNotUpdateFeatureError=Kohdetta ei voi päivittää. Palautetaan vanha arvo. +cannotDisplayResult=Tulosta ei voi näyttää kartalla. +uploadSecurityError=Suojausvirhe lähetettäessä tiedostoa: {0} +uploadIOError=IO-virhe lähetettäessä tiedostoa: {0} +uploadUnknownError=Tuntematon virhe lähetettäessä tiedostoa. +couldNotProcessUploadResponse=Lähetyksen valmistumisvastauksen käsittely epäonnistui. +fileExceedsAllowedUploadSize=Tiedosto ylittää lähetettävien tiedostojen enimmäiskoon. ({0} Mt) +fileUploadError=Tiedoston lähetysvirhe + + +configFileCrossDomain=Mahdollinen toimialueiden välinen ongelma: {0}{1} + + +openToolTip=Avaa yleiskatsauskartta napsauttamalla +closeToolTip=Sulje yleiskatsauskartta napsauttamalla + + +layerListLabel=Lisää... +basemap=Taustakartta + + +aboutLabel=Tietoja +searchPrompt=Anna osoite +searchResultTitleLabel=Sijainti +noResultsFoundLabel=Tuloksia ei löytynyt + + +fullExtentLabel=Koko laajuus +panDownLabel=Panoroi alas +panLeftLabel=Panoroi vasemmalle +panRightLabel=Panoroi oikealle +panUpLabel=Panoroi ylös +previousExtentLabel=Edellinen laajuus +nextExtentLabel=Seuraava laajuus +panLabel=Vieritä +zoomInLabel=Lähennä +zoomOutLabel=Loitonna + + + + + + +addTextLabel=Lisää teksti +drawPointLabel=Piirrä piste +drawLineLabel=Piirrä viiva +drawFreehandLineLabel=Piirrä vapaankäden viiva +drawPolygonLabel=Piirrä polygoni +drawFreehandPolygonLabel=Piirrä vapaankäden polygoni +drawRectangleLabel=Piirrä suorakulmio +drawMapExtentLabel=Piirrä kartan laajuus +drawCircleLabel=Piirrä ympyrä +drawEllipseLabel=Piirrä ellipsi +drawClearLabel=Tyhjennä piirrokset + +markerStyleCircle=Ympyrä +markerStyleCross=Risti +markerStyleDiamond=Vinoneliö +markerStyleSquare=Neliö +markerStyleTriangle=Kolmio +markerStyleX=X + +textFont1=Arial +textFont2=Courier New +textFont3=Broadway +textFont4=Comic Sans MS +textFont5=Algerian +textFont6=Verdana + +lineStyleSolid=Yhtenäinen +lineStyleDash=Viiva +lineStyleDot=Piste +lineStyleDashDot=Viiva-piste +lineStyleDashDotDot=Viiva-piste-piste + +fillStyleSolid=Yhtenäinen +fillStyleBackwardDiagonal=Vinoviivoitus taaksepäin +fillStyleCross=Risti +fillStyleForwardDiagonal=Vinoviivoitus eteenpäin +fillStyleHorizontal=Vaakasuuntainen +fillStyleVertical=Pystysuuntainen + + + +markerAlphaLabel=Alfa +markerColorLabel=Merkitsimen väri +markerSizeLabel=Koko +markerStyleLabel=Tyyli +markerOutlineColorLabel=Reunaviivan väri +markerOutlineWidthLabel=Leveys +textLabel=Teksti +textColorLabel=Väri +textFontLabel=Fontti +textSizeLabel=Koko +textBoldLabel=B +textBoldTooltip=Lihavointi +textItalicLabel=I +textItalicTooltip=Kursivointi +textUnderlineLabel=U +textUnderlineTooltip=Alleviivaus +lineAlphaLabel=Alfa +lineColorLabel=Viivan väri +lineStyleLabel=Tyyli +lineWidthLabel=Leveys +fillAlphaLabel=Alfa +fillColorLabel=Täyttöväri +fillStyleLabel=Tyyli +fillOutlineColorLabel=Reunaviivan väri +fillOutlineWidthLabel=Leveys + + + + +showMeasurementsLabel=Näytä mittaukset +distanceUnitsLabel=Etäisyyden yksiköt +areaUnitsLabel=Pinta-alayksiköt +areaLabel=Alue: +perimeterLabel=Ympärysmitta: +lengthLabel=Pituus: + + +bookmarksLabel=Kirjanmerkit +addbookmarksLabel=Lisää kirjanmerkki +addLabel=Lisää nykyinen laajuus kirjanmerkiksi nimeltä +bookmarkSubmitLabel=Lisää kirjanmerkki +bookmarkMissingNameLabel=Anna kirjanmerkin nimi. +deleteBookmarkTooltip=Poista kirjanmerkki + + +descLabel=Pura tiedot ja lataa zip-tiedosto +step1Label=1. Valitse alue +dataCurrentExtentLabel=1. Tiedot puretaan nykyisestä laajuudesta. +step2Label=2. Valitse purettavat karttatasot +step3Label=3. Valitse tiedostomuoto +step4Label=4. Valitse rasterien muoto +step5Label=5. SpatialReference +extractButtonLabel=Pura +step1ErrorLabel=Valitse kohdealue. +step2ErrorLabel=Valitse purettavat karttatasot +emptyResultsLabel=Tehtävä suoritettiin, mutta yhtään tulosta ei palautettu. +saveDataFileLabel=Datatiedosto luotiin. Haluatko tallentaa sen? +selectAllLabel=Valitse kaikki +deselectAllLabel=Poista kaikkien valinta + + +attributesLabel=Ominaisuustiedot +attachmentsLabel=Liitteet +relatedRecordsLabel=Liittyvät tietueet +featureLayerOutOfScaleText=Vektorikarttataso on mittakaavavälin ulkopuolella +showAttachmentsText=Liitteet +showRelatedRecordsText=Liittyvät tietueet +showAttributesText=Siirry takaisin +selectTemplateText=Luo kohde valitsemalla malli +noEditableLayersText=Ei muokattavia karttatasoja. +noCreateCapabilityLayersText=Karttatasot eivät tue luontiominaisuutta +layerNotSupportingAttachmentsText=Tämä karttataso ei tue liitteitä +noAttachmentsText=Ei liitteitä +chooseFileText=Valitse liitettävä tiedosto +attachmentSubmitLabel=Lähetä +attachmentCancelLabel=Peruuta +singleAttachmentText=Kohteessa on {0} liite +multipleAttachmentsText=Kohteessa on {0} liitettä + + +layerListTitle=Karttatason näkyvyys + + +locateSubmitLabel=Paikanna +addressLabel=Osoite +coordinatesLabel=Koordinaatit +addressTitle=Anna osoite +coordinatesTitle=Anna koordinaatit +xLabel=Pituusaste (X) +yLabel=Leveysaste (Y) +locationsLabel=Löydetyt sijainnit: +bingCulture=fi-FI +requiredFields=Pakolliset kentät: +requiredField=Pakollinen kenttä: +deleteResultTooltip=Poista tulos +resultScoreText=Pisteet: +bingResultConfidenceText=Luotettavuus: + + +printSubmitLabel=Tulosta +printTitle= +printSubtitle= +printCopyright= +printTitleLabel=Otsikko +printSubtitleLabel=Alaotsikko +printCopyrightLabel=Copyright +printAuthorLabel=Tekijä +printLayoutTemplatesLabel=Asettelumallit +printFormatsLabel=Muodot +printScaleLabel=Käytä tätä mittakaavaa + + +filterTitleBarTooltip=Suodata tulokset +showallTitleBarTooltip=Näytä kaikki +filterButtonLabel=Suodata +clearButtonLabel=Näytä kaikki +featuresFoundLabel=Löydetyt kohteet: {0} + + +drivingDirectionLabel=Ajosuunnat +routeSubmitLabel=Hae reittiohjeet +moveUpTooltip=Siirrä ylös +moveDownTooltip=Siirrä alas +addLocationTooltip=lisää sijainti napsauttamalla karttaa +optionsLabel=Asetukset +bestSequenceLabel=Etsi paras järjestys +milesLabel=Mailia +metricLabel=Km +changeRouteSymbolLabel=Vaihda reittisymboli +editRouteLabel=Muokkaa reittiä + + +graphicalTitleBarTooltip=Valitse kohteet +textTitleBarTooltip=Valitse ominaisuustiedon mukaan +graphicalsearchLabel=Kohteiden valintaperuste +textsearchLabel=Valitse ominaisuustiedon mukaan +layerLabel=Hakutaso +nolayerLabel=Hakutasoa ei ole määritetty. +searchSubmitLabel=Etsi +selectionLabel=Valitut kohteet: + + +latitudeLabel=Leveysaste +longitudeLabel=Pituusaste + + +gpSubmitLabel=Lähetä +inputLabel=Lähtöaineisto +helpLabel=Ohje +outputLabel=Tulosaineisto +copyToClipboard=Kopioi leikepöydälle +unsupportedInputType=Syötettä {0} ei tueta +currentExtentWillBeUsedAsInput=Nykyistä laajuutta käytetään syötteenä. +byURL=URL-osoitteen mukaan +fileURL=Tiedoston URL-osoite +uploadFile=Lähetä tiedosto +or=tai +format=Tiedostomuoto + + +zoomLabel=Tarkenna kohteeseen + + +helloContent=Muuta tämä teksti määritystiedostossa. + + +widgetIDWidgetLabelTemplate=Widget-tunnus: {0}, widgetin tunnusteksti: {1} +widgetIDWidgetStateTemplate=Widget-tunnus: {0}, widgetin tila: {1} +itemLabelWidgetIDItemIDTemplate={0} Widget-tunnus: {1} + + +layerSelectionLabel=Valitse karttataso +drawToolMenuLabel=Valitse piirtotyökalu +selectLabel=Valitse +noLayersLabel=Ei karttatasoja +noChartDataToDisplayLabel=Ei näytettäviä kaaviotietoja +featureLayerNotVisibleText=Vektorikarttataso ei ole näkyvissä tai se on mittakaavan ulkopuolella \ No newline at end of file diff --git a/locale/fr_FR/ViewerStrings.properties b/locale/fr_FR/ViewerStrings.properties index cd96f54..d77cd0e 100644 --- a/locale/fr_FR/ViewerStrings.properties +++ b/locale/fr_FR/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=A propos d’ArcGIS Viewer for Flex... -aboutText=Cette application utilise ArcGIS Viewer 3.4 for Flex. +aboutText=Cette application utilise ArcGIS Viewer 3.5 for Flex. aboutLearnMoreBtn=En savoir plus aboutCloseBtn=Fermer @@ -84,7 +84,7 @@ faultDetail=Détails de l’erreur : {0} parseConfigErrorText=Un problème est survenu lors de l’analyse du fichier de configuration {0} standalonePlayerExternalInterfaceErrorText=Des erreurs se sont produites. ExternalInterface ne fonctionne pas dans un lecteur autonome. -layerFailedToLoad:La couche {0} n’a pas été chargée : {1} +layerFailedToLoad=La couche {0} n’a pas été chargée : {1} couldNotFetchBasemapData=Impossible de récupérer les données du fond de carte :\n{0} couldNotConnectToPortal=Impossible de se connecter au portail. couldNotQueryPortal=Impossible d’interroger le portail. @@ -250,6 +250,8 @@ step1ErrorLabel=Sélectionnez la zone qui vous intéresse. step2ErrorLabel=Sélectionnez les couches à extraire. emptyResultsLabel=La tâche est terminée, mais elle n’a renvoyé aucun résultat. saveDataFileLabel=Le fichier de données a été créé. Voulez-vous l’enregistrer ? +selectAllLabel=Tout sélectionner +deselectAllLabel=Tout désélectionner attributesLabel=Attributs diff --git a/locale/he_IL/ViewerStrings.properties b/locale/he_IL/ViewerStrings.properties index 8e06c43..2d9be1b 100644 --- a/locale/he_IL/ViewerStrings.properties +++ b/locale/he_IL/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=אודות ArcGIS Viewer for Flex... -aboutText=אפליקציה זו משתמשת ב- ArcGIS Viewer 3.4 for Flex. +aboutText=אפליקציה זו משתמשת ב- ArcGIS Viewer 3.5 for Flex. aboutLearnMoreBtn=לימוד נוסף aboutCloseBtn=סגור @@ -84,7 +84,7 @@ faultDetail=פרטי תקלה: {0} parseConfigErrorText=אירעה בעיה בזמן פריסת קובץ התצורה {0} standalonePlayerExternalInterfaceErrorText=אירעה שגיאה כלשהי. ExternalInterface לא עובד ב- Standalone player. -layerFailedToLoad:טעינת שכבה {0} נכשלה: {1} +layerFailedToLoad=טעינת שכבה {0} נכשלה: {1} couldNotFetchBasemapData=לא יכול להביא נתוני מפת בסיס:\n{0} couldNotConnectToPortal=לא יכול להתחבר לפורטל. couldNotQueryPortal=לא יכול לתשאל פורטל. @@ -250,6 +250,8 @@ step1ErrorLabel=אנא בחר אזור עניין. step2ErrorLabel=אנא בחר שכבות לגזירה emptyResultsLabel=הרצת הכלי הסתיימה אך לא הוחזרו תוצאות. saveDataFileLabel=נוצר קובץ נתונים. האם ברצונך לשמור אותו? +selectAllLabel=בחר הכל +deselectAllLabel=הסר בחירה מהכל attributesLabel=מאפיינים diff --git a/locale/it_IT/ViewerStrings.properties b/locale/it_IT/ViewerStrings.properties index 0e0cd55..f7a8963 100644 --- a/locale/it_IT/ViewerStrings.properties +++ b/locale/it_IT/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=Informazioni su ArcGIS Viewer for Flex... -aboutText=Quest´applicazione sta utilizzando ArcGIS Viewer 3.4 for Flex. +aboutText=Quest´applicazione sta utilizzando ArcGIS Viewer 3.5 for Flex. aboutLearnMoreBtn=Ulteriori informazioni aboutCloseBtn=Chiudi @@ -84,7 +84,7 @@ faultDetail=Dettagli errore: {0} parseConfigErrorText=Problema durante l´analisi del file di configurazione {0} standalonePlayerExternalInterfaceErrorText=Si è verificato un errore. ExternalInterface non funziona nel lettore autonomo. -layerFailedToLoad:Impossibile caricare il layer {0}: {1} +layerFailedToLoad=Impossibile caricare il layer {0}: {1} couldNotFetchBasemapData=Impossibile recuperare i dati della mappa di base:\n{0} couldNotConnectToPortal=Impossibile connettersi al Portale. couldNotQueryPortal=Impossibile interrogare il Portale. @@ -250,6 +250,8 @@ step1ErrorLabel=Selezionare un´area di interesse. step2ErrorLabel=Selezionare i layer da estrarre. emptyResultsLabel=Attività completata, ma non sono stati restituiti risultati. saveDataFileLabel=File di dati creato. Salvarlo? +selectAllLabel=Seleziona tutti +deselectAllLabel=Deseleziona tutto attributesLabel=Attributi diff --git a/locale/ja_JP/ViewerStrings.properties b/locale/ja_JP/ViewerStrings.properties index 378fc5a..e57c918 100644 --- a/locale/ja_JP/ViewerStrings.properties +++ b/locale/ja_JP/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=ArcGIS Viewer for Flex について... -aboutText=このアプリケーションは、ArcGIS Viewer 3.4 for Flex を使用しています。 +aboutText=このアプリケーションは、ArcGIS Viewer 3.5 for Flex を使用しています。 aboutLearnMoreBtn=詳細 aboutCloseBtn=閉じる @@ -84,7 +84,7 @@ faultDetail=障害の詳細: {0} parseConfigErrorText=構成ファイルの解析中に問題が発生しました{0} standalonePlayerExternalInterfaceErrorText=エラーが発生しました。スタンドアロン版プレイヤーでは ExternalInterface は機能しません。 -layerFailedToLoad:{0} レイヤの読み込みに失敗しました: {1} +layerFailedToLoad={0} レイヤの読み込みに失敗しました: {1} couldNotFetchBasemapData=ベースマップ データをフェッチできません:\n{0} couldNotConnectToPortal=ポータルに接続できません。 couldNotQueryPortal=ポータルのクエリができません。 @@ -250,6 +250,8 @@ step1ErrorLabel=対象エリアを選択してください。 step2ErrorLabel=抽出するレイヤを選択してください。 emptyResultsLabel=タスクは完了しましたが、返される結果がありませんでした。 saveDataFileLabel=データ ファイルが作成されました。保存しますか? +selectAllLabel=すべて選択 +deselectAllLabel=すべて選択解除 attributesLabel=属性 diff --git a/locale/ko_KR/ViewerStrings.properties b/locale/ko_KR/ViewerStrings.properties index 6421097..fe743be 100644 --- a/locale/ko_KR/ViewerStrings.properties +++ b/locale/ko_KR/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=ArcGIS Viewer for Flex 정보... -aboutText=이 응용프로그램은 ArcGIS Viewer 3.4 for Flex를 사용하고 있습니다. +aboutText=이 응용프로그램은 ArcGIS Viewer 3.5 for Flex를 사용하고 있습니다. aboutLearnMoreBtn=자세히 보기 aboutCloseBtn=닫기 @@ -84,7 +84,7 @@ faultDetail=오류 설명: {0} parseConfigErrorText=구성 파일 {0}을(를) 구문 분석하는 동안 문제가 발생했습니다. standalonePlayerExternalInterfaceErrorText=일부 오류가 발생했습니다. ExternalInterface는 Standalone 플레이어에서 작동하지 않습니다. -layerFailedToLoad:{0} 레이어를 로드하지 못했습니다. {1} +layerFailedToLoad={0} 레이어를 로드하지 못했습니다. {1} couldNotFetchBasemapData=베이스맵 데이터를 가져올 수 없습니다.\n{0} couldNotConnectToPortal=포털에 연결할 수 없습니다. couldNotQueryPortal=포털을 쿼리할 수 없습니다. @@ -250,6 +250,8 @@ step1ErrorLabel=원하는 영역을 선택하세요. step2ErrorLabel=추출할 레이어를 선택하세요. emptyResultsLabel=작업이 완료되었으나 결과를 반환하지 않았습니다. saveDataFileLabel=데이터 파일이 생성되었습니다. 저장하시겠습니까? +selectAllLabel=모두 선택 +deselectAllLabel=모두 선택 취소 attributesLabel=속성 diff --git a/locale/lt_LT/ViewerStrings.properties b/locale/lt_LT/ViewerStrings.properties index 0cd1f39..d2e3a83 100644 --- a/locale/lt_LT/ViewerStrings.properties +++ b/locale/lt_LT/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=Apie ArcGIS Viewer for Flex... -aboutText=Aplikacija naudoja ArcGIS Viewer 3.4 for Flex. +aboutText=Aplikacija naudoja ArcGIS Viewer 3.5 for Flex. aboutLearnMoreBtn=Plačiau aboutCloseBtn=Uždaryti @@ -84,7 +84,7 @@ faultDetail=Klaidos informacija: {0} parseConfigErrorText=Problema apdorojant konfigūracijos failą: {0} standalonePlayerExternalInterfaceErrorText=Klaida. ExternalInterface neveikia atskirame leistuve. -layerFailedToLoad:Sluoksnio {0} nepavyko įkelti: {1} +layerFailedToLoad=Sluoksnio {0} nepavyko įkelti: {1} couldNotFetchBasemapData=Nepavyko gauti pagrindo žemėlapio duomenų:\n{0} couldNotConnectToPortal=Nepavyko prisijungti prie Portalo. couldNotQueryPortal=Nepavyko įvykdyti užklausos portale. @@ -250,6 +250,8 @@ step1ErrorLabel=Prašome nurodyti norimą teritoriją. step2ErrorLabel=Prašome pasirinkti norimus sluoksnius. emptyResultsLabel=Užduotis įvykdyta, bet nieko negauta. saveDataFileLabel=Duomenų failas sukurtas. Ar norite įrašyti? +selectAllLabel=Pažymėti visus +deselectAllLabel=Nužymėti visus attributesLabel=Atributai diff --git a/locale/lv_LV/ViewerStrings.properties b/locale/lv_LV/ViewerStrings.properties index 3aed315..a402e38 100644 --- a/locale/lv_LV/ViewerStrings.properties +++ b/locale/lv_LV/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=Par ArcGIS Viewer for Flex... -aboutText=Šī aplikācija izmanto ArcGIS Viewer 3.4 for Flex. +aboutText=Šī aplikācija izmanto ArcGIS Viewer 3.5 for Flex. aboutLearnMoreBtn=Uzziniet vairāk aboutCloseBtn=Aizvērt @@ -84,7 +84,7 @@ faultDetail=Kļūdas detaļas: {0} parseConfigErrorText=Problēma radās analizējot konfigurācijas failu {0} standalonePlayerExternalInterfaceErrorText=Kļūda. Savrupajā atskaņotājā ārējais interfeiss nedarbojas. -layerFailedToLoad:{0} slāni neizdevās ielādēt: {1} +layerFailedToLoad={0} slāni neizdevās ielādēt: {1} couldNotFetchBasemapData=Neizdevās saistīt pamatkartes datus:\n{0} couldNotConnectToPortal=Nevarēja izveidot savienojumu ar portālu. couldNotQueryPortal=Vaicājums portālam neizdevās. @@ -250,6 +250,8 @@ step1ErrorLabel=Lūdzu, izvēlieties interesējošo laukumu. step2ErrorLabel=Lūdzu, izvēlieties slāņus, ko iegūt. emptyResultsLabel=Uzdevums izpildīts, bet nav nekādu rezultātu. saveDataFileLabel=Datu fails izveidots. Vai vēlaties to saglabāt? +selectAllLabel=Izvēlieties visu +deselectAllLabel=Atiezīmēt visu attributesLabel=Atribūti diff --git a/locale/nb_NO/ViewerStrings.properties b/locale/nb_NO/ViewerStrings.properties index 3bbdcb8..481d617 100644 --- a/locale/nb_NO/ViewerStrings.properties +++ b/locale/nb_NO/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=Om ArcGIS Viewer for Flex... -aboutText=Dette programmet bruker ArcGIS Viewer 3.4 for Flex. +aboutText=Dette programmet bruker ArcGIS Viewer 3.5 for Flex. aboutLearnMoreBtn=Lær mer aboutCloseBtn=Lukk @@ -84,7 +84,7 @@ faultDetail=Feildetaljer: {0} parseConfigErrorText=Det oppstod et problem under lesing av konfigurasjonsfilen {0} standalonePlayerExternalInterfaceErrorText=Det oppstod en feil. ExternalInterface fungerer ikke i frittstående spiller. -layerFailedToLoad:{0} kartlag kunne ikke lastes inn: {1} +layerFailedToLoad={0} kartlag kunne ikke lastes inn: {1} couldNotFetchBasemapData=Kunne ikke hente bakgrunnskartdata:\n{0} couldNotConnectToPortal=Kunne ikke koble til portalen. couldNotQueryPortal=Kunne ikke spørre portalen. @@ -250,6 +250,8 @@ step1ErrorLabel=Velg et område av interesse. step2ErrorLabel=Velg lag som skal trekkes ut. emptyResultsLabel=Oppgave fullført, men den returnerte ingen resultater. saveDataFileLabel=Datafil opprettet. Vil du lagre den? +selectAllLabel=Merk alt +deselectAllLabel=Fjern merkingen på alle attributesLabel=Attributter diff --git a/locale/nl_NL/ViewerStrings.properties b/locale/nl_NL/ViewerStrings.properties index 5180ea2..94b3996 100644 --- a/locale/nl_NL/ViewerStrings.properties +++ b/locale/nl_NL/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=Informatie over ArcGIS Viewer for Flex... -aboutText=Deze applicatie maakt gebruikt van ArcGIS Viewer 3.4 for Flex. +aboutText=Deze applicatie maakt gebruikt van ArcGIS Viewer 3.5 for Flex. aboutLearnMoreBtn=Meer informatie aboutCloseBtn=Sluiten @@ -84,7 +84,7 @@ faultDetail=Probleemgegevens: {0} parseConfigErrorText=Er is een probleem opgetreden tijdens het parseren van het configuratiebestand {0} standalonePlayerExternalInterfaceErrorText=Er is een fout opgetreden. ExternalInterface werkt niet in een zelfstandige speler. -layerFailedToLoad:{0}-laag kan niet worden geladen: {1} +layerFailedToLoad={0}-laag kan niet worden geladen: {1} couldNotFetchBasemapData=Kan geen basiskaartgegevens ophalen:\n{0} couldNotConnectToPortal=Kan geen verbinding maken met het portaal. couldNotQueryPortal=Kan geen query uitvoeren op het portaal. @@ -250,6 +250,8 @@ step1ErrorLabel=Selecteer een interessegebied. step2ErrorLabel=Selecteer lagen om op te halen. emptyResultsLabel=De taak is voltooid, maar er zijn geen resultaten. saveDataFileLabel=Het gegevensbestand is gemaakt. Wilt u het opslaan? +selectAllLabel=Alles selecteren +deselectAllLabel=Alles deselecteren attributesLabel=Attributen diff --git a/locale/pl_PL/ViewerStrings.properties b/locale/pl_PL/ViewerStrings.properties index e0a50f2..ce12474 100644 --- a/locale/pl_PL/ViewerStrings.properties +++ b/locale/pl_PL/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=O aplikacji ArcGIS Viewer for Flex... -aboutText=Ta aplikacja używa ArcGIS Viewer 3.4 for Flex. +aboutText=Ta aplikacja używa ArcGIS Viewer for Flex w wersji 3.5. aboutLearnMoreBtn=Dowiedz się więcej aboutCloseBtn=Zamknij @@ -84,7 +84,7 @@ faultDetail=Szczegóły dot. usterki: {0} parseConfigErrorText=Wystąpił problem podczas analizy pliku konfiguracyjnego {0} standalonePlayerExternalInterfaceErrorText=Wystąpił błąd. ExternalInterface nie działa w autonomicznym odtwarzaczu. -layerFailedToLoad:Ładowanie warstwy {0} nie powiodło się: {1} +layerFailedToLoad=Ładowanie warstwy {0} nie powiodło się: {1} couldNotFetchBasemapData=Pobieranie danych mapy bazowej nie powiodło się:\n{0} couldNotConnectToPortal=Połączenie z portalem nie powiodło się. couldNotQueryPortal=Nie można wywołać portalu. @@ -250,6 +250,8 @@ step1ErrorLabel=Wybierz obszar zainteresowania. step2ErrorLabel=Wybierz warstwy tematyczne do wyodrębnienia. emptyResultsLabel=Zadanie zostało zakończone, ale nie zwróciło żadnych wyników. saveDataFileLabel=Plik danych został utworzony. Czy chcesz go zapisać? +selectAllLabel=Zaznacz wszystkie +deselectAllLabel=Odznacz wszystko attributesLabel=Atrybuty diff --git a/locale/pt_BR/ViewerStrings.properties b/locale/pt_BR/ViewerStrings.properties index 60f922b..39bd531 100644 --- a/locale/pt_BR/ViewerStrings.properties +++ b/locale/pt_BR/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=Sobre o ArcGIS Viewer for Flex... -aboutText=Este aplicativo está utilizando ArcGIS Viewer 3.4 for Flex. +aboutText=Este aplicativo está utilizando ArcGIS Viewer for Flex versão 3.5. aboutLearnMoreBtn=Obter mais informações aboutCloseBtn=Fechar @@ -84,7 +84,7 @@ faultDetail=Detalhes da falha: {0} parseConfigErrorText=Ocorreu um problema ao analisar o arquivo de configuração {0} standalonePlayerExternalInterfaceErrorText=Ocorreu algum erro . O ExternalInterface não funciona na reprodução Standalone. -layerFailedToLoad:{0} falha ao carregar camada: {1} +layerFailedToLoad={0} falha ao carregar camada: {1} couldNotFetchBasemapData=Não foi possível obter os dados do mapa base:\n{0} couldNotConnectToPortal=Não foi possível conectar ao Portal. couldNotQueryPortal=Não foi possível consultar o portal. @@ -250,6 +250,8 @@ step1ErrorLabel=Selecione uma área de interesse. step2ErrorLabel=Selecione as camadas para extrair. emptyResultsLabel=Tarefa concluída, mas não retornou nenhum resultado. saveDataFileLabel=Arquivo de dados criado. Deseja salvá-lo? +selectAllLabel=Selecionar todos +deselectAllLabel=Desselecionar todos attributesLabel=Atributos diff --git a/locale/pt_PT/ViewerStrings.properties b/locale/pt_PT/ViewerStrings.properties index b1f950d..a70e24f 100644 --- a/locale/pt_PT/ViewerStrings.properties +++ b/locale/pt_PT/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=Sobre o ArcGIS Viewer for Flex... -aboutText=Esta aplicação utiliza o ArcGIS Viewer 3.4 for Flex. +aboutText=Esta aplicação utiliza o ArcGIS Viewer 3.5 for Flex. aboutLearnMoreBtn=Obter mais informações aboutCloseBtn=Fechar @@ -84,7 +84,7 @@ faultDetail=Detalhes da falha: {0} parseConfigErrorText=Ocorreu um problema ao analisar o ficheiro de configuração {0} standalonePlayerExternalInterfaceErrorText=Ocorreu algum erro . O ExternalInterface não funciona na reprodução Standalone. -layerFailedToLoad:{0} falha ao carregar camada: {1} +layerFailedToLoad={0} falha ao carregar camada: {1} couldNotFetchBasemapData=Não foi possível obter os dados do mapa base:\n{0} couldNotConnectToPortal=Não foi possível ligar ao Portal. couldNotQueryPortal=Não foi possível consultar o portal. @@ -250,6 +250,8 @@ step1ErrorLabel=Selecione uma área de interesse. step2ErrorLabel=Selecione as camadas a extrair. emptyResultsLabel=A tarefa foi concluída mas não retornou nenhum resultado. saveDataFileLabel=Ficheiro de dados criado. Deseja guardá-lo? +selectAllLabel=Selecionar tudo +deselectAllLabel=Desselecionar todos attributesLabel=Atributos diff --git a/locale/ro_RO/ViewerStrings.properties b/locale/ro_RO/ViewerStrings.properties index c69460f..c8182d9 100644 --- a/locale/ro_RO/ViewerStrings.properties +++ b/locale/ro_RO/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=Despre ArcGIS Viewer for Flex... -aboutText=Această aplicaţie utilizează ArcGIS Viewer 3.4 for Flex. +aboutText=Această aplicaţie utilizează ArcGIS Viewer 3.5 for Flex. aboutLearnMoreBtn=Aflaţi mai multe aboutCloseBtn=Închidere @@ -84,7 +84,7 @@ faultDetail=Detalii defecţiune: {0} parseConfigErrorText=A survenit o eroare la analiza fişierului de configurare {0} standalonePlayerExternalInterfaceErrorText=A survenit o eroare. Interfaţa externă nu funcţionează în playerul independent. -layerFailedToLoad:Încărcarea stratului tematic {0} a eşuat: {1} +layerFailedToLoad=Încărcarea stratului tematic {0} a eşuat: {1} couldNotFetchBasemapData=Nu au putut fi preluate date pentru harta fundal:\n{0} couldNotConnectToPortal=Nu a putut fi efectuată conectarea la Portal. couldNotQueryPortal=Nu s-a putut interoga portalul. @@ -250,6 +250,8 @@ step1ErrorLabel=Selectaţi o suprafaţă de interes. step2ErrorLabel=Selectaţi straturi tematice de extras. emptyResultsLabel=Operaţia a fost finalizată, însă nu a returnat niciun rezultat. saveDataFileLabel=Fişier de date creat. Doriţi să îl salvaţi? +selectAllLabel=Selectare globală +deselectAllLabel=Deselectare globală attributesLabel=Atribute diff --git a/locale/ru_RU/ViewerStrings.properties b/locale/ru_RU/ViewerStrings.properties index 1195d6f..273763c 100644 --- a/locale/ru_RU/ViewerStrings.properties +++ b/locale/ru_RU/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=О программе ArcGIS Viewer for Flex... -aboutText=Данное приложение использует ArcGIS Viewer 3.4 for Flex. +aboutText=Данное приложение использует ArcGIS Viewer 3.5 for Flex. aboutLearnMoreBtn=См. Справку aboutCloseBtn=Закрыть @@ -43,22 +43,22 @@ unitsMetersAbbr=м unitsMiles=Мили unitsMilesAbbr=М unitsYards=Ярды -unitsYardsAbbr=яр. +unitsYardsAbbr=яр unitsAcres=Акры -unitsAcresAbbr=ак. +unitsAcresAbbr=ак unitsHectares=Гектары unitsHectaresAbbr=га unitsSquareFeet=Квадратные футы -unitsSquareFeetAbbr=кв. фт. +unitsSquareFeetAbbr=кв. фт unitsSquareKilometers=Квадратные километры -unitsSquareKilometersAbbr=кв. км. +unitsSquareKilometersAbbr=кв. км unitsSquareMeters=Квадратные метры -unitsSquareMetersAbbr=кв. м. +unitsSquareMetersAbbr=кв. м unitsSquareMiles=Квадратные мили -unitsSquareMilesAbbr=кв. миль +unitsSquareMilesAbbr=кв. М unitsSquareYards=Квадратные ярды -unitsSquareYardsAbbr=кв. яр. +unitsSquareYardsAbbr=кв. яр tocMapLayerZoomToLabel=Приблизить к @@ -84,7 +84,7 @@ faultDetail=Сведения о сбое: {0} parseConfigErrorText=Возникла проблема при синтаксическом анализе файла конфигурации {0} standalonePlayerExternalInterfaceErrorText=Произошла ошибка. ExternalInterface не работает в автономном проигрывателе. -layerFailedToLoad:{0} слою не удалось загрузить: {1} +layerFailedToLoad={0} слою не удалось загрузить: {1} couldNotFetchBasemapData=Не удалось получить данные базовой карты:\n{0} couldNotConnectToPortal=Не удалось подключиться к порталу. couldNotQueryPortal=Не удалось запросить портал. @@ -250,6 +250,8 @@ step1ErrorLabel=Выберите область интереса. step2ErrorLabel=Выберите слои для извлечения. emptyResultsLabel=Задание выполнено, но результатов не получено. saveDataFileLabel=Файл данных создан. Сохранить его? +selectAllLabel=Выбрать все +deselectAllLabel=Очистить всю выборку attributesLabel=Атрибуты diff --git a/locale/sv_SE/ViewerStrings.properties b/locale/sv_SE/ViewerStrings.properties index 390de4d..741ee75 100644 --- a/locale/sv_SE/ViewerStrings.properties +++ b/locale/sv_SE/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=Om ArcGIS Viewer for Flex... -aboutText=Det här programmet använder ArcGIS Viewer 3.4 for Flex. +aboutText=Det här programmet använder ArcGIS Viewer 3.5 for Flex. aboutLearnMoreBtn=Läs mer aboutCloseBtn=Stäng @@ -84,7 +84,7 @@ faultDetail=Feldetaljer: {0} parseConfigErrorText=Det uppstod ett problem när konfigurationsfilen {0} skulle parsas standalonePlayerExternalInterfaceErrorText=Ett fel har inträffat. ExternalInterface fungerar inte i den fristående mediespelaren. -layerFailedToLoad:Det gick inte att läsa in {0} lager: {1} +layerFailedToLoad=Det gick inte att läsa in {0} lager: {1} couldNotFetchBasemapData=Det gick inte att hämta data för baskartan:\n{0} couldNotConnectToPortal=Det gick inte att ansluta till portalen. couldNotQueryPortal=Det gick inte att söka i portalen. @@ -250,6 +250,8 @@ step1ErrorLabel=Markera det område du är intresserad av. step2ErrorLabel=Välj vilka lager som ska extraheras. emptyResultsLabel=Åtgärden slutfördes, men inga resultat returnerades. saveDataFileLabel=Datafilen har skapats. Vill du spara den? +selectAllLabel=Markera alla +deselectAllLabel=Avmarkera alla attributesLabel=Attribut diff --git a/locale/zh_CN/ViewerStrings.properties b/locale/zh_CN/ViewerStrings.properties index 9ab8f47..5f96aa5 100644 --- a/locale/zh_CN/ViewerStrings.properties +++ b/locale/zh_CN/ViewerStrings.properties @@ -1,7 +1,7 @@  contextMenuText=关于 ArcGIS Viewer for Flex... -aboutText=此应用程序正在使用 ArcGIS Viewer 3.4 for Flex。 +aboutText=此应用程序正在使用 ArcGIS Viewer 3.5 for Flex。 aboutLearnMoreBtn=了解更多信息 aboutCloseBtn=关闭 @@ -84,7 +84,7 @@ faultDetail=详细的错误信息: {0} parseConfigErrorText=解析配置文件 {0} 时出现问题 standalonePlayerExternalInterfaceErrorText=出现了某个错误。ExternalInterface 在单独的播放器中无法正常运行。 -layerFailedToLoad:{0} 图层加载失败:{1} +layerFailedToLoad={0} 图层加载失败:{1} couldNotFetchBasemapData=无法获取底图数据:{0} couldNotConnectToPortal=无法连接到门户。 couldNotQueryPortal=无法查询门户。 @@ -232,7 +232,7 @@ lengthLabel=长度: bookmarksLabel=书签 addbookmarksLabel=添加书签 -addLabel=将当前范围作为书签添加,并赋予名称 +addLabel=将当前范围添加为指定书签 bookmarkSubmitLabel=添加书签 bookmarkMissingNameLabel=请输入书签的名称。 deleteBookmarkTooltip=删除书签 @@ -250,6 +250,8 @@ step1ErrorLabel=请选择一个感兴趣的区域。 step2ErrorLabel=请选择要提取的图层。 emptyResultsLabel=任务已完成但未返回任何结果。 saveDataFileLabel=数据文件已创建。是否要保存它? +selectAllLabel=全选 +deselectAllLabel=取消全选 attributesLabel=属性 diff --git a/src/com/esri/viewer/WidgetTemplate.as b/src/com/esri/viewer/WidgetTemplate.as index 6b43858..ee6c907 100644 --- a/src/com/esri/viewer/WidgetTemplate.as +++ b/src/com/esri/viewer/WidgetTemplate.as @@ -101,9 +101,13 @@ public class WidgetTemplate extends SkinnableContainer implements IWidgetTemplat private static const WIDGET_STOP_DRAG:String = "stopDrag"; + private static const DEFAULT_MIN_WIDTH:Number = 150; + + private static const DEFAULT_MIN_HEIGHT:Number = 75; + private var _widgetId:Number; - private var _widgetState:String = WIDGET_OPENED; + private var _widgetState:String; private var _cursorID:int = 0; @@ -118,11 +122,21 @@ public class WidgetTemplate extends SkinnableContainer implements IWidgetTemplat private var _baseWidget:IBaseWidget; + private var _isPartOfPanel:Boolean; + + [Bindable(event="isPartOfPanelChanged")] + public function get isPartOfPanel():Boolean + { + return _isPartOfPanel; + } + public function set baseWidget(value:IBaseWidget):void { _baseWidget = value; + _isPartOfPanel = value.isPartOfPanel; + dispatchEvent(new Event("isPartOfPanelChanged")); - if (value.isPartOfPanel) + if (_isPartOfPanel) { this.enableIcon = this.enableCloseButton = this.enableMinimizeButton = this.enableDraging = false; } @@ -343,6 +357,8 @@ public class WidgetTemplate extends SkinnableContainer implements IWidgetTemplat } private var widgetMoveStarted:Boolean = false; + private var xResizeStart:Number; + private var yResizeStart:Number; private function mouse_moveHandler(event:MouseEvent):void { @@ -471,6 +487,9 @@ public class WidgetTemplate extends SkinnableContainer implements IWidgetTemplat { if (_resizable) { + xResizeStart = event.stageX + yResizeStart = event.stageY; + /*TODO: for now, it can't be resized when is not basic layout*/ stage.addEventListener(MouseEvent.MOUSE_MOVE, resize_moveHandler); stage.addEventListener(MouseEvent.MOUSE_UP, resize_upHandler); @@ -493,53 +512,36 @@ public class WidgetTemplate extends SkinnableContainer implements IWidgetTemplat private function resize_moveHandler(event:MouseEvent):void { - if (isRtl()) - { - resize_moveHandler_rtl(); - } - else - { - resize_moveHandler_normal(); - } - } + // clear constraints + var widget:UIComponent = parent as UIComponent; + widget.left = widget.right = widget.top = widget.bottom = undefined; - private function resize_moveHandler_normal():void - { - // if there is minWidth and minHeight specified on the container, use them while resizing - const minimumResizeWidth:Number = minWidth ? minWidth : 200; - const minimumResizeHeight:Number = minHeight ? minHeight : 100; + var xResizeEnd:Number = event.stageX; + var yResizeEnd:Number = event.stageY; - if ((stage.mouseX < stage.width - 20) && (stage.mouseY < stage.height - 20)) + var isWithinVerticalBoundaries:Boolean = (stage.mouseY < stage.height - 20); + var isWithinHorizontalBoundaries:Boolean = isRtl() ? + stage.mouseX > 20 : stage.mouseX < stage.width - 20; + + if (isWithinHorizontalBoundaries && isWithinVerticalBoundaries) { - if ((stage.mouseX - parent.x) > minimumResizeWidth) - { - width = (stage.mouseX - parent.x); - } - if ((stage.mouseY - parent.y) > minimumResizeHeight) - { - height = (stage.mouseY - parent.y); - } - } - } + // if there is minWidth and minHeight specified on the container, use them while resizing + const minimumResizeWidth:Number = minWidth ? minWidth : DEFAULT_MIN_WIDTH; + const minimumResizeHeight:Number = minHeight ? minHeight : DEFAULT_MIN_HEIGHT; - private function resize_moveHandler_rtl():void - { - // if there is minWidth and minHeight specified on the container, use them while resizing - const minimumResizeWidth:Number = minWidth ? minWidth : 200; - const minimumResizeHeight:Number = minHeight ? minHeight : 100; + var deltaX:Number = xResizeEnd - xResizeStart; + var deltaY:Number = yResizeEnd - yResizeStart; - var nextWidth:Number = stage.stageWidth - (stage.mouseX + parent.x); - var nextHeight:Number = (stage.mouseY - parent.y); + var calculatedWidth:Number = isRtl() ? widgetWidth - deltaX : widgetWidth + deltaX; + var calculatedHeight:Number = widgetHeight + deltaY; - if (stage.mouseX > 20 && (stage.mouseY < stage.height - 20)) - { - if (nextWidth > minimumResizeWidth) + if (calculatedWidth > minimumResizeWidth) { - width = nextWidth; + width = calculatedWidth; } - if (nextHeight > minimumResizeHeight) + if (calculatedHeight > minimumResizeHeight) { - height = nextHeight; + height = calculatedHeight; } } } diff --git a/src/com/esri/viewer/components/GeocoderComponent.mxml b/src/com/esri/viewer/components/GeocoderComponent.mxml index a115baf..5029bff 100644 --- a/src/com/esri/viewer/components/GeocoderComponent.mxml +++ b/src/com/esri/viewer/components/GeocoderComponent.mxml @@ -42,6 +42,8 @@ import com.esri.ags.symbols.Symbol; import com.esri.ags.tasks.GeometryServiceSingleton; import com.esri.ags.tasks.JSONTask; + import com.esri.ags.tasks.supportClasses.AddressCandidate; + import com.esri.ags.tasks.supportClasses.FindResult; import com.esri.ags.tasks.supportClasses.ProjectParameters; import com.esri.ags.utils.WebMercatorUtil; import com.esri.viewer.BaseWidget; @@ -68,8 +70,9 @@ [Bindable] private var map:Map; - [Bindable] - private var searchResultTitleLabel:String; + private var searchResultTitle:String; + + private var searchResultDescription:String; private var _mapServicesConfigured:Boolean; @@ -190,26 +193,27 @@ geocoder.autoComplete = configXML.autocomplete != "false"; - const configMaxLocations:int = parseInt(configXML.maxlocations[0]) + const configMaxLocations:int = parseInt(configXML.maxlocations[0]); if (!isNaN(configMaxLocations) && configMaxLocations > 0) { geocoder.maxLocations = configMaxLocations; } - const configMinChars:int = parseInt(configXML.minchars[0]) + const configMinChars:int = parseInt(configXML.minchars[0]); if (configMinChars && configMinChars > 0) { geocoder.minCharacters = configMinChars; } - const configSearchDelay:int = parseInt(configXML.searchdelay[0]) + const configSearchDelay:int = parseInt(configXML.searchdelay[0]); if (configSearchDelay && configSearchDelay > 0) { geocoder.searchDelay = configSearchDelay; } geocoder.prompt = configXML.labels.searchprompt[0] || hostBaseWidget.getDefaultString("searchPrompt"); - searchResultTitleLabel = configXML.labels.searchresulttitle[0] || hostBaseWidget.getDefaultString("searchResultTitleLabel"); + searchResultTitle = configXML.result.title[0] || configXML.labels.searchresulttitle[0] || hostBaseWidget.getDefaultString("searchResultTitleLabel"); + searchResultDescription = configXML.result.description[0]; configureResultSymbols(); configureResultGraphic(); @@ -368,10 +372,10 @@ { if (configXML.symbols[0]) { - const smsColor:uint = configXML.symbols.simplemarkersymbol.@color || 0xFF0000; + const smsColor:uint = (configXML.symbols.simplemarkersymbol.@color[0] != null) ? configXML.symbols.simplemarkersymbol.@color : 0xFF0000; const smsAlpha:Number = (configXML.symbols.simplemarkersymbol.@alpha[0] != null) ? configXML.symbols.simplemarkersymbol.@alpha : 0.8; const smsSize:Number = (configXML.symbols.simplemarkersymbol.@size[0] != null) ? configXML.symbols.simplemarkersymbol.@size : 15; - const smsOutlineColor:uint = configXML.symbols.simplefillsymbol.outline.@color || 0xFF0000; + const smsOutlineColor:uint = (configXML.symbols.simplefillsymbol.outline.@color[0] != null) ? configXML.symbols.simplefillsymbol.outline.@color : 0xFF0000; const smsOutlineAlpha:Number = (configXML.symbols.simplefillsymbol.outline.@alpha[0] != null) ? configXML.symbols.simplefillsymbol.outline.@alpha : 0.8; const smsOutlineWidth:Number = (configXML.symbols.simplefillsymbol.outline.@width[0] != null) ? configXML.symbols.simplefillsymbol.outline.@width : 2; @@ -381,15 +385,15 @@ smsOutlineAlpha, smsOutlineWidth)); - const slsColor:uint = configXML.symbols.simplelinesymbol.@color || 0xFF0000; + const slsColor:uint = (configXML.symbols.simplelinesymbol.@color[0] != null) ? configXML.symbols.simplelinesymbol.@color : 0xFF0000; const slsAlpha:Number = (configXML.symbols.simplelinesymbol.@alpha[0] != null) ? configXML.symbols.simplelinesymbol.@alpha : 0.8; const slsWidth:Number = (configXML.symbols.simplelinesymbol.@width[0] != null) ? configXML.symbols.simplelinesymbol.@width : 2; resultSimpleLineSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, slsColor, slsAlpha, slsWidth); - const sfsColor:uint = configXML.symbols.simplefillsymbol.@color || 0xFF0000; + const sfsColor:uint = (configXML.symbols.simplefillsymbol.@color[0] != null) ? configXML.symbols.simplefillsymbol.@color : 0xFF0000; const sfsAlpha:Number = (configXML.symbols.simplefillsymbol.@alpha[0] != null) ? configXML.symbols.simplefillsymbol.@alpha : 0.5; - const sfsOutlineColor:uint = configXML.symbols.simplefillsymbol.outline.@color || 0xFF0000; + const sfsOutlineColor:uint = (configXML.symbols.simplefillsymbol.outline.@color[0] != null) ? configXML.symbols.simplefillsymbol.outline.@color : 0xFF0000; const sfsOutlineAlpha:Number = (configXML.symbols.simplefillsymbol.outline.@alpha[0] != null) ? configXML.symbols.simplefillsymbol.outline.@alpha : 0.8; const sfsOutlineWidth:Number = (configXML.symbols.simplefillsymbol.outline.@width[0] != null) ? configXML.symbols.simplefillsymbol.outline.@width : 2; @@ -403,7 +407,7 @@ private function configureResultGraphic():void { - searchResultGraphic = new com.esri.ags.Graphic() + searchResultGraphic = new Graphic(); const clearFeatureLabel:String = configXML.labels.clearfeaturelabel[0] || hostBaseWidget.getDefaultString("clearLabel"); const customContextMenu:ContextMenu = new ContextMenu(); customContextMenu.hideBuiltInItems(); @@ -452,12 +456,13 @@ searchResultGraphic.geometry = searchResult.geometry; searchResultGraphic.symbol = getSymbolForGeometryType(searchResultGraphic.geometry.type); + searchResultGraphic.attributes = getAttributes(searchResult.data); var resultExtent:Extent = searchResult.extent; const popUpInfo:PopUpInfo = new PopUpInfo(); - popUpInfo.description = searchResult.label; - popUpInfo.title = searchResultTitleLabel; - popUpInfo.showZoomToButton = false; //hide the zoom to button as map would be zoomed-in + popUpInfo.description = searchResultDescription ? searchResultDescription : searchResult.label; + popUpInfo.title = searchResultTitle; + popUpInfo.showZoomToButton = false; //hide the zoom to button as map would be zoomed-in const infoWindowRenderer:ClassFactory = new ClassFactory(PopUpRenderer); infoWindowRenderer.properties = { popUpInfo: popUpInfo }; @@ -494,6 +499,23 @@ infoWindowShow(resultPoint); } + private function getAttributes(data:Object):Object + { + var findResult:FindResult = data as FindResult; + if (findResult && findResult.feature) + { + return findResult.feature.attributes; + } + + var addressCandidate:AddressCandidate = data as AddressCandidate; + if (addressCandidate) + { + return addressCandidate.attributes; + } + + return null; + } + private function getSymbolForGeometryType(geometryType:String):Symbol { var symbol:Symbol; diff --git a/src/com/esri/viewer/components/toc/TOC.as b/src/com/esri/viewer/components/toc/TOC.as index 8cae071..7cbcc9a 100644 --- a/src/com/esri/viewer/components/toc/TOC.as +++ b/src/com/esri/viewer/components/toc/TOC.as @@ -60,6 +60,8 @@ public class TOC extends Tree dataProvider = _tocRoots; itemRenderer = new ClassFactory(TocItemRenderer); iconFunction = tocItemIcon; + dataTipField = "label"; + showDataTips = true; this.map = map; @@ -107,6 +109,8 @@ public class TOC extends Tree // include legend items private var _includeLegendItems:Boolean; + // show layer menu + private var _showLayerMenu:Boolean; private var _expandLayerItemsPending:Boolean; private var _pendingItemsToExpand:Array = []; @@ -370,6 +374,28 @@ public class TOC extends Tree onFilterChange(); dispatchEvent(new Event("includeLegendItemsChanged")); } + + //-------------------------------------------------------------------------- + // showLayerMenu + //-------------------------------------------------------------------------- + + [Bindable("showLayerMenuChanged")] + /** + * Whether to show layer menu. + */ + public function get showLayerMenu():Boolean + { + return _showLayerMenu; + } + + /** + * @private + */ + public function set showLayerMenu(value:Boolean):void + { + _showLayerMenu = value; + dispatchEvent(new Event("showLayerMenuChanged")); + } //-------------------------------------------------------------------------- // @@ -480,7 +506,7 @@ public class TOC extends Tree } var layer:Layer = event.layer; - var index:int = event.index; + var index:int = getEffectiveTOCIndex(layer, event.index); if (isGraphicsLayer(layer) || isHiddenLayer(layer) || isLayerExcluded(layer)) { @@ -565,6 +591,20 @@ public class TOC extends Tree } } + private function getEffectiveTOCIndex(layer:Layer, index:Number):int + { + var result:int = 0; + for each (var layerId:String in getNewLayerIds(map.layerIds)) + { + if (layer.id == layerId) + { + break; + } + result++; + } + return result; + } + private function getNewLayerIds(layerIds:Array):Array { var result:Array = []; diff --git a/src/com/esri/viewer/components/toc/tocClasses/TocItemRenderer.as b/src/com/esri/viewer/components/toc/tocClasses/TocItemRenderer.as index 9036d90..e58aabd 100644 --- a/src/com/esri/viewer/components/toc/tocClasses/TocItemRenderer.as +++ b/src/com/esri/viewer/components/toc/tocClasses/TocItemRenderer.as @@ -18,7 +18,7 @@ package com.esri.viewer.components.toc.tocClasses import com.esri.ags.layers.Layer; import com.esri.ags.layers.TiledMapServiceLayer; -import com.esri.ags.symbols.Symbol; +import com.esri.ags.layers.supportClasses.LegendItemInfo; import com.esri.viewer.AppEvent; import com.esri.viewer.components.toc.TOC; import com.esri.viewer.components.toc.controls.CheckBoxIndeterminate; @@ -33,6 +33,7 @@ import mx.core.FlexGlobals; import mx.core.UIComponent; import spark.components.Group; +import spark.primitives.BitmapImage; /** * A custom tree item renderer for a map Table of Contents. @@ -60,7 +61,7 @@ public class TocItemRenderer extends TreeItemRenderer private var _tocLayerMenu:TocLayerMenu; - [Embed(source="assets/images/Context_menu11.png")] + [Embed(source="/assets/images/Context_menu11.png")] [Bindable] public var contextCls:Class; @@ -96,16 +97,22 @@ public class TocItemRenderer extends TreeItemRenderer if (value is TocLegendItem) { _legendSwatchContainer.removeAllElements(); - - var symbol:Symbol = TocLegendItem(value).legendItemInfo.symbol; - if (symbol) + + var legendItemInfo:LegendItemInfo = TocLegendItem(value).legendItemInfo; + if (legendItemInfo.imageURL) // WMS { - var swatch:UIComponent = symbol.createSwatch(LEGEND_SWATCH_SIZE, LEGEND_SWATCH_SIZE); + var legendImg:BitmapImage = new BitmapImage(); + legendImg.source = legendItemInfo.imageURL; + _legendSwatchContainer.addElement(legendImg); + } + else if (legendItemInfo.symbol) + { + var swatch:UIComponent = legendItemInfo.symbol.createSwatch(LEGEND_SWATCH_SIZE, LEGEND_SWATCH_SIZE); if (swatch) { _legendSwatchContainer.addElement(swatch); } - } + } } } @@ -171,7 +178,7 @@ public class TocItemRenderer extends TreeItemRenderer // Hide the checkbox for child items of tiled map services var checkboxVisible:Boolean = true; - if (isTiledLayerChild(item) || (item is TocLegendItem)) + if (isTiledLayerChild(item) || (item is TocLegendItem) || (item is TocWMSLayerInfoItem)) { checkboxVisible = false; } @@ -180,8 +187,8 @@ public class TocItemRenderer extends TreeItemRenderer // show legend for TocLegendItem _legendSwatchContainer.visible = item is TocLegendItem; - // hide the option button if this is not a layer - if (!isLayerItem(item)) + // hide the option button if this is not a layer or TOC.showLayerMenu=false + if (!isLayerItem(item) || !TOC(this.parent.parent).showLayerMenu) { _layerMenuImage.visible = false; } diff --git a/src/com/esri/viewer/components/toc/tocClasses/TocLayerMenu.mxml b/src/com/esri/viewer/components/toc/tocClasses/TocLayerMenu.mxml index a38da38..ea98cb8 100644 --- a/src/com/esri/viewer/components/toc/tocClasses/TocLayerMenu.mxml +++ b/src/com/esri/viewer/components/toc/tocClasses/TocLayerMenu.mxml @@ -32,8 +32,8 @@ import com.esri.ags.Map; import com.esri.ags.events.GeometryServiceEvent; import com.esri.ags.geometry.Extent; + import com.esri.ags.layers.ArcGISDynamicMapServiceLayer; import com.esri.ags.layers.FeatureLayer; - import com.esri.ags.layers.GraphicsLayer; import com.esri.ags.layers.KMLLayer; import com.esri.ags.layers.Layer; import com.esri.ags.layers.OpenStreetMapLayer; @@ -208,72 +208,159 @@ private function moveUpLabel_clickHandler(event:MouseEvent):void { - var currentIndex:Number = 0; - for each (var layer:Layer in getLayersAfterRemovingHiddenLayers(_map.layers as ArrayCollection)) + var mapLayers:ArrayCollection = _map.layers as ArrayCollection; + var currentIndex:int = mapLayers.getItemIndex(_layer); + var layer:Layer; + var arrOfFeatureLayers:Array; + if (_layer is ArcGISDynamicMapServiceLayer) { - if (_layer == layer) + arrOfFeatureLayers = []; + var dynamicMapServiceLayer:ArcGISDynamicMapServiceLayer = ArcGISDynamicMapServiceLayer(_layer); + for each (layer in mapLayers) { - break; + if (layer is FeatureLayer && layer.name.indexOf("hiddenLayer_") != -1) + { + var featureServiceURL:String = FeatureLayer(layer).url.substring(0, FeatureLayer(layer).url.lastIndexOf("/")); + var mapServiceURL:String = featureServiceURL.replace("FeatureServer", "MapServer"); + if (mapServiceURL == dynamicMapServiceLayer.url) + { + arrOfFeatureLayers.push(layer); + } + } } - currentIndex++; + } + var nextIndex:int = currentIndex + 1; + if (arrOfFeatureLayers && arrOfFeatureLayers.length > 0) + { + nextIndex += arrOfFeatureLayers.length; } - _map.reorderLayer(_layer.id, currentIndex + 1); - remove(); - } - - private function moveDownLabel_clickHandler(event:MouseEvent):void - { - var currentIndex:Number = 0; - for each (var layer:Layer in getLayersAfterRemovingHiddenLayers(_map.layers as ArrayCollection)) + if (mapLayers.getItemAt(nextIndex) && mapLayers.getItemAt(nextIndex) is ArcGISDynamicMapServiceLayer) { - if (_layer == layer) + var arr:Array = []; + var dynamicMapServiceLayer1:ArcGISDynamicMapServiceLayer = ArcGISDynamicMapServiceLayer(mapLayers.getItemAt(nextIndex)); + for each (layer in mapLayers) { - break; + if (layer is FeatureLayer && layer.name.indexOf("hiddenLayer_") != -1) + { + var featureServiceURL1:String = FeatureLayer(layer).url.substring(0, FeatureLayer(layer).url.lastIndexOf("/")); + var mapServiceURL1:String = featureServiceURL1.replace("FeatureServer", "MapServer"); + if (mapServiceURL1 == dynamicMapServiceLayer1.url) + { + arr.push(layer); + } + } } - currentIndex++; + nextIndex += arr.length; + } + if (arrOfFeatureLayers && arrOfFeatureLayers.length > 0) + { + for each (var featureLayer:FeatureLayer in arrOfFeatureLayers) + { + _map.reorderLayer(featureLayer.id, nextIndex); + } + _map.reorderLayer(_layer.id, nextIndex - 1); + } + else + { + _map.reorderLayer(_layer.id, nextIndex); } - _map.reorderLayer(_layer.id, currentIndex - 1); remove(); } - private function getLayersAfterRemovingHiddenLayers(layers:ArrayCollection):Array + private function moveDownLabel_clickHandler(event:MouseEvent):void { - var result:Array = []; - for (var i:int = 0; i < layers.length; i++) - { - const layer:Layer = layers.getItemAt(i) as Layer; - if (layer.name.indexOf("hiddenLayer_") != -1 || (layer is GraphicsLayer && !(layer is FeatureLayer)) || islayerExcludedAndNotBaseMap(layer)) + var mapLayers:ArrayCollection = _map.layers as ArrayCollection; + var currentIndex:int = mapLayers.getItemIndex(_layer); + var layer:Layer; + var arrOfFeatureLayers:Array; + if (mapLayers.getItemAt(currentIndex - 1) is FeatureLayer && FeatureLayer(mapLayers.getItemAt(currentIndex - 1)).name.indexOf("hiddenLayer_") != -1) + { + if (_layer is ArcGISDynamicMapServiceLayer) { - continue; + arrOfFeatureLayers = []; + var dynamicMapServiceLayer:ArcGISDynamicMapServiceLayer = ArcGISDynamicMapServiceLayer(_layer); + for each (layer in mapLayers) + { + if (layer is FeatureLayer && layer.name.indexOf("hiddenLayer_") != -1) + { + var featureServiceURL:String = FeatureLayer(layer).url.substring(0, FeatureLayer(layer).url.lastIndexOf("/")); + var mapServiceURL:String = featureServiceURL.replace("FeatureServer", "MapServer"); + if (mapServiceURL == dynamicMapServiceLayer.url) + { + arrOfFeatureLayers.push(layer); + } + } + } } - result.push(layers.getItemAt(i)); - } - return result; - } - - private function islayerExcludedAndNotBaseMap(layer:Layer):Boolean - { - var exclude:Boolean; - for each (var item:* in _toc.excludeLayers) - { - if ((item === layer || item == layer.name) || (item == layer.id)) + + var index:Number = currentIndex - 1; + var arr:Array = []; + while(mapLayers.getItemAt(index) is FeatureLayer && FeatureLayer(mapLayers.getItemAt(index)).name.indexOf("hiddenLayer_") != -1) { - exclude = true; - for each (var item1:* in _toc.basemapLayers) + arr.push(FeatureLayer(mapLayers.getItemAt(index))); + index--; + } + if (mapLayers.getItemAt(index) && mapLayers.getItemAt(index) is ArcGISDynamicMapServiceLayer) + { + var dynamicMapServiceLayer1:ArcGISDynamicMapServiceLayer = ArcGISDynamicMapServiceLayer(mapLayers.getItemAt(index)); + var featureLayersAddedFromMapService:Boolean = true; + for each (var featureLayer:FeatureLayer in arr) { - if (item1 === item) + var featureServiceURL1:String = featureLayer.url.substring(0, featureLayer.url.lastIndexOf("/")); + var mapServiceURL1:String = featureServiceURL1.replace("FeatureServer", "MapServer"); + if (mapServiceURL1 != dynamicMapServiceLayer1.url) { - exclude = false; + featureLayersAddedFromMapService = false; break; - } + } + } + if (featureLayersAddedFromMapService) + { + if (arrOfFeatureLayers && arrOfFeatureLayers.length > 0) + { + for each (var featureLayer1:FeatureLayer in arrOfFeatureLayers) + { + _map.reorderLayer(featureLayer1.id, index); + } + } + _map.reorderLayer(_layer.id, index); } - if (!exclude) + } + else + { + _map.reorderLayer(_layer.id, index); + } + } + else if (_layer is ArcGISDynamicMapServiceLayer) + { + arrOfFeatureLayers = []; + var dynamicMapServiceLayer2:ArcGISDynamicMapServiceLayer = ArcGISDynamicMapServiceLayer(_layer); + for each (layer in mapLayers) + { + if (layer is FeatureLayer && layer.name.indexOf("hiddenLayer_") != -1) { - break; + var featureServiceURL2:String = FeatureLayer(layer).url.substring(0, FeatureLayer(layer).url.lastIndexOf("/")); + var mapServiceURL2:String = featureServiceURL2.replace("FeatureServer", "MapServer"); + if (mapServiceURL2 == dynamicMapServiceLayer2.url) + { + arrOfFeatureLayers.push(layer); + } } } + if (arrOfFeatureLayers && arrOfFeatureLayers.length > 0) + { + for each (var featureLayer2:FeatureLayer in arrOfFeatureLayers.reverse()) + { + _map.reorderLayer(featureLayer2.id, currentIndex - 1); + } + } + _map.reorderLayer(_layer.id, currentIndex - 1); } - return exclude; + else + { + _map.reorderLayer(_layer.id, currentIndex - 1); + } + remove(); } private function descriptionOrDownloadLabel_clickHandler(event:MouseEvent):void diff --git a/src/com/esri/viewer/components/toc/tocClasses/TocMapLayerItem.as b/src/com/esri/viewer/components/toc/tocClasses/TocMapLayerItem.as index b8ac2e0..ba9f209 100644 --- a/src/com/esri/viewer/components/toc/tocClasses/TocMapLayerItem.as +++ b/src/com/esri/viewer/components/toc/tocClasses/TocMapLayerItem.as @@ -25,11 +25,13 @@ import com.esri.ags.layers.ArcIMSMapServiceLayer; import com.esri.ags.layers.ILegendSupport; import com.esri.ags.layers.KMLLayer; import com.esri.ags.layers.Layer; +import com.esri.ags.layers.WMSLayer; import com.esri.ags.layers.supportClasses.KMLFeatureInfo; import com.esri.ags.layers.supportClasses.KMLFolder; import com.esri.ags.layers.supportClasses.LayerInfo; import com.esri.ags.layers.supportClasses.LayerLegendInfo; import com.esri.ags.layers.supportClasses.LegendItemInfo; +import com.esri.ags.layers.supportClasses.WMSLayerInfo; import com.esri.viewer.ViewerContainer; import com.esri.viewer.components.toc.utils.MapUtil; import com.esri.viewer.utils.MapServiceUtil; @@ -38,6 +40,7 @@ import flash.events.Event; import mx.binding.utils.ChangeWatcher; import mx.collections.ArrayCollection; +import mx.collections.ArrayList; import mx.events.CollectionEvent; import mx.events.FlexEvent; import mx.rpc.AsyncResponder; @@ -414,6 +417,7 @@ public class TocMapLayerItem extends TocItem { children = null; var layerInfos:Array; // of LayerInfo + var wmsLayerInfos:Array; // of WMSLayerInfo if (layer is ArcGISTiledMapServiceLayer) { @@ -457,6 +461,10 @@ public class TocMapLayerItem extends TocItem { layerInfos = ArcIMSMapServiceLayer(layer).layerInfos; } + else if (layer is WMSLayer) + { + wmsLayerInfos = WMSLayer(layer).layerInfos; + } else if (layer is KMLLayer) { createKMLLayerTocItems(this, KMLLayer(layer)); @@ -470,16 +478,26 @@ public class TocMapLayerItem extends TocItem addChild(createTocLayer(this, layerInfo1, layerInfos, layerInfo1.defaultVisibility, isTocLayerInfoItemInScale(layerInfo1))); } } + else if (wmsLayerInfos) + { + var wmsVisibleLayers:ArrayList = WMSLayer(layer).visibleLayers as ArrayList; + for each (var wmsLayerInfo:WMSLayerInfo in wmsLayerInfos) + { + if (wmsVisibleLayers.source.indexOf(wmsLayerInfo.name) !== -1) + { + addChild(createWMSTocLayer(this, wmsLayerInfo)); + } + } + } else if (_layerLegendInfos && _layerLegendInfos.length) { - var layerLegendInfo:LayerLegendInfo = _layerLegendInfos[0]; - if (layerLegendInfo) + for each (var layerLegendInfo:LayerLegendInfo in _layerLegendInfos) { for each (var legendItemInfo:LegendItemInfo in layerLegendInfo.legendItemInfos) { addChild(new TocLegendItem(this, legendItemInfo)); } - } + } } } @@ -644,7 +662,23 @@ public class TocMapLayerItem extends TocItem return item; } - + + private function createWMSTocLayer(parentItem:TocItem, wmsLayerInfo:WMSLayerInfo):TocWMSLayerInfoItem + { + var item:TocWMSLayerInfoItem = new TocWMSLayerInfoItem(parentItem, wmsLayerInfo); + + var layerLegendInfo:LayerLegendInfo = getWMSLayerLegendInfo(wmsLayerInfo.name); + if (layerLegendInfo) + { + for each (var legendItemInfo:LegendItemInfo in layerLegendInfo.legendItemInfos) + { + item.addChild(new TocLegendItem(item, legendItemInfo)); + } + } + + return item; + } + private function getLayerLegendInfo(layerId:Number):LayerLegendInfo { var result:LayerLegendInfo; @@ -660,6 +694,22 @@ public class TocMapLayerItem extends TocItem return result; } + + private function getWMSLayerLegendInfo(wmsLayerId:String):LayerLegendInfo + { + var result:LayerLegendInfo; + + for each (var layerLegendInfo:LayerLegendInfo in _layerLegendInfos) + { + if (layerLegendInfo.layerId == wmsLayerId) + { + result = layerLegendInfo; + break; + } + } + + return result; + } private function createKmlFolderTocItem(parentItem:TocItem, folder:KMLFolder, folders:Array, layer:KMLLayer):TocKmlFolderItem { diff --git a/src/com/esri/viewer/components/toc/tocClasses/TocWMSLayerInfoItem.as b/src/com/esri/viewer/components/toc/tocClasses/TocWMSLayerInfoItem.as new file mode 100644 index 0000000..0544180 --- /dev/null +++ b/src/com/esri/viewer/components/toc/tocClasses/TocWMSLayerInfoItem.as @@ -0,0 +1,51 @@ +/////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2010-2013 Esri. All Rights Reserved. +// +// 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.viewer.components.toc.tocClasses +{ + +import com.esri.ags.layers.supportClasses.WMSLayerInfo; + +/** + * A TOC item representing a member layer of a WMS service. + * + * @private + */ +public class TocWMSLayerInfoItem extends TocItem +{ + public function TocWMSLayerInfoItem(parentItem:TocItem, wmsLayerInfo:WMSLayerInfo) + { + super(parentItem); + + _wmsLayerInfo = wmsLayerInfo; + label = wmsLayerInfo.title; + } + + //-------------------------------------------------------------------------- + // Property: wmsLayerInfo + //-------------------------------------------------------------------------- + + private var _wmsLayerInfo:WMSLayerInfo; + + /** + * The wms layer info that backs this TOC item. + */ + public function get wmsLayerInfo():WMSLayerInfo + { + return _wmsLayerInfo; + } +} + +} diff --git a/src/com/esri/viewer/managers/LayerCreationProperties.as b/src/com/esri/viewer/managers/LayerCreationProperties.as index d87d2a9..2411cb9 100644 --- a/src/com/esri/viewer/managers/LayerCreationProperties.as +++ b/src/com/esri/viewer/managers/LayerCreationProperties.as @@ -51,6 +51,7 @@ public class LayerCreationProperties public var mode:String; public var noData:String; public var password:String; + public var portalURL:String; public var proxyUrl:String; public var renderer:IRenderer; public var serviceHost:String; @@ -109,6 +110,7 @@ public class LayerCreationProperties creationProps.mode = layerObject.mode; creationProps.noData = layerObject.noData; creationProps.password = layerObject.password; + creationProps.portalURL = layerObject.portalURL; creationProps.proxyUrl = layerObject.proxyUrl; creationProps.renderer = layerObject.renderer; creationProps.serviceHost = layerObject.serviceHost; diff --git a/src/com/esri/viewer/managers/LayerCreator.as b/src/com/esri/viewer/managers/LayerCreator.as index dd55ea6..c7268e7 100644 --- a/src/com/esri/viewer/managers/LayerCreator.as +++ b/src/com/esri/viewer/managers/LayerCreator.as @@ -576,6 +576,10 @@ public class LayerCreator csvLayer.latitudeFieldName = layerCreationProperties.latitudeFieldName; csvLayer.longitudeFieldName = layerCreationProperties.longitudeFieldName; csvLayer.showInLegend = layerCreationProperties.showInLegend; + if (layerCreationProperties.portalURL) + { + csvLayer.portalURL = layerCreationProperties.portalURL; + } if (layerCreationProperties.copyright != null) { csvLayer.copyright = layerCreationProperties.copyright; diff --git a/src/com/esri/viewer/managers/UIManager.as b/src/com/esri/viewer/managers/UIManager.as index 390b30e..9c8511a 100644 --- a/src/com/esri/viewer/managers/UIManager.as +++ b/src/com/esri/viewer/managers/UIManager.as @@ -449,6 +449,13 @@ public class UIManager extends EventDispatcher topLevelStyleManager.setStyleDeclaration("mx.charts.chartClasses.DataTip", cssStyleDeclarationChartDataTips, false); } + // Style the divider used when using widgetcontainers + var cssStyleDeclarationMxDividedBox:CSSStyleDeclaration = topLevelStyleManager.getStyleDeclaration("mx.containers.DividedBox"); + if (numberOfStyleColors > 4) + { + cssStyleDeclarationMxDividedBox.setStyle("_dividerFillColors", [titleColor,titleColor]); + } + var cssStyleDeclarationModal:CSSStyleDeclaration = topLevelStyleManager.getStyleDeclaration("global") cssStyleDeclarationModal.setStyle("modalTransparencyColor", 0x777777); cssStyleDeclarationModal.setStyle("modalTransparencyBlur", 1); diff --git a/src/com/esri/viewer/skins/WidgetTemplateSkin.mxml b/src/com/esri/viewer/skins/WidgetTemplateSkin.mxml index df25794..7842928 100644 --- a/src/com/esri/viewer/skins/WidgetTemplateSkin.mxml +++ b/src/com/esri/viewer/skins/WidgetTemplateSkin.mxml @@ -25,14 +25,10 @@ xmlns:components="com.esri.viewer.components.*" creationComplete="init()" preinitialize="preinitializeHandler(event)"> - - - - - [HostComponent("com.esri.viewer.WidgetTemplate")] + + + + + + - - + + - - - - - - - + + + + - - + + + - - - - - - - - - + + + + + + + - - - - - - - + + + + + - - - - - - + + - - - - - - - - - + + radiusX="{hostComponent.isPartOfPanel ? 0 : 5}" + radiusY="{hostComponent.isPartOfPanel ? 0 : 5}"> + color="{hostComponent.isPartOfPanel ? getStyle('contentBackgroundColor') : getStyle('borderColor')}"/> + left="{hostComponent.isPartOfPanel ? 0 : 1}" right="{hostComponent.isPartOfPanel ? 0 : 1}" top="{hostComponent.isPartOfPanel ? 0 : 1}" + topLeftRadiusX="{hostComponent.isPartOfPanel ? 0 : 5}" + topRightRadiusX="{hostComponent.isPartOfPanel ? 0 : 5}"> + angle="{hostComponent.isPartOfPanel ? 0 : 45}" + blurX="{hostComponent.isPartOfPanel ? 0 : 10}" + blurY="{hostComponent.isPartOfPanel ? 0 : 10}" + distance="{hostComponent.isPartOfPanel ? 0 : 4}"/> diff --git a/src/com/esri/viewer/utils/LayerObjectUtil.as b/src/com/esri/viewer/utils/LayerObjectUtil.as index 8e2161c..64dc4dc 100644 --- a/src/com/esri/viewer/utils/LayerObjectUtil.as +++ b/src/com/esri/viewer/utils/LayerObjectUtil.as @@ -133,6 +133,7 @@ public class LayerObjectUtil var skipGetCapabilities:String = obj.@skipgetcapabilities[0]; var version:String = obj.@version[0]; var url:String = obj.@url; + var portalURL:String = obj.@portalurl[0]; var serviceURL:String = obj.@serviceurl[0]; var serviceMode:String = obj.@servicemode[0]; var tileMatrixSetId:String = obj.@tilematrixsetid[0]; @@ -248,6 +249,7 @@ public class LayerObjectUtil mode: mode, noData: noData, password: password, + portalURL: portalURL, proxyUrl: proxyUrl, renderer: renderer, serviceHost: serviceHost, diff --git a/src/config-all.xml b/src/config-all.xml index 51aaf4a..4df9018 100644 --- a/src/config-all.xml +++ b/src/config-all.xml @@ -29,7 +29,7 @@ @@ -120,7 +120,7 @@ url="widgets/LayerList/LayerListWidget.swf"/> diff --git a/src/version.xml b/src/version.xml index 17c5e97..95e638a 100644 --- a/src/version.xml +++ b/src/version.xml @@ -1,2 +1,2 @@ - + diff --git a/src/widgets/AttributeTable/AttributeTableWidget.mxml b/src/widgets/AttributeTable/AttributeTableWidget.mxml index 6bc314d..c1518b3 100644 --- a/src/widgets/AttributeTable/AttributeTableWidget.mxml +++ b/src/widgets/AttributeTable/AttributeTableWidget.mxml @@ -88,9 +88,9 @@ } else { - wTemplate.width = map.width - map.width / 100 - Number(this.left); - wTemplate.minWidth = 800; - wTemplate.height = wTemplate.minHeight = 300; + var iconOffset:Number = wTemplate.icon ? (wTemplate.icon.width * 0.5) : 0; + wTemplate.width = map.width - map.width / 100 - Number(this.left) - Number(this.right) - iconOffset; + wTemplate.height = 300; } } @@ -351,41 +351,49 @@ if (index < layersUsedInAttributeTable.length) { var layer:Layer = layersUsedInAttributeTable[index] as Layer; - if (layer.loaded) + if (layer.name.indexOf("hiddenLayer_") == -1) { - if (layer is FeatureLayer && layer.name.indexOf("hiddenLayer_") == -1) + if (layer.loaded) { - layer.removeEventListener(FlexEvent.HIDE, featureLayer_hideShowHandler); - layer.removeEventListener(FlexEvent.SHOW, featureLayer_hideShowHandler); - - layer.addEventListener(FlexEvent.HIDE, featureLayer_hideShowHandler); - layer.addEventListener(FlexEvent.SHOW, featureLayer_hideShowHandler); - - arrFinalLayers.push(layer); - featureLayers.push(layer); - index++; - getAllFeatureLayers(index, featureLayers); + if (layer is FeatureLayer) + { + layer.removeEventListener(FlexEvent.HIDE, featureLayer_hideShowHandler); + layer.removeEventListener(FlexEvent.SHOW, featureLayer_hideShowHandler); + + layer.addEventListener(FlexEvent.HIDE, featureLayer_hideShowHandler); + layer.addEventListener(FlexEvent.SHOW, featureLayer_hideShowHandler); + + arrFinalLayers.push(layer); + featureLayers.push(layer); + index++; + getAllFeatureLayers(index, featureLayers); + } + else if (layer is ArcGISDynamicMapServiceLayer) + { + createFeatureLayersFromDynamicMapService(ArcGISDynamicMapServiceLayer(layer), index); + } + else + { + index++; + getAllFeatureLayers(index, featureLayers); + } } - else if (layer is ArcGISDynamicMapServiceLayer && layer.name.indexOf("hiddenLayer_") == -1) + else if (layer.loadFault) { - createFeatureLayersFromDynamicMapService(ArcGISDynamicMapServiceLayer(layer), index); + index++; + getAllFeatureLayers(index, featureLayers); } else { - index++; - getAllFeatureLayers(index, featureLayers); + // listen for load + layer.addEventListener(LayerEvent.LOAD, featureLayer_loadHandler); } } - else if (layer.loadFault) + else { index++; getAllFeatureLayers(index, featureLayers); } - else - { - // listen for load - layer.addEventListener(LayerEvent.LOAD, featureLayer_loadHandler); - } } else { diff --git a/src/widgets/Bookmark/BookmarkDataGroup.as b/src/widgets/Bookmark/BookmarkDataGroup.as index f47b8de..451062c 100644 --- a/src/widgets/Bookmark/BookmarkDataGroup.as +++ b/src/widgets/Bookmark/BookmarkDataGroup.as @@ -49,14 +49,10 @@ public class BookmarkDataGroup extends List private function focusHandler(event:FocusEvent):void { - if (event.type == FocusEvent.FOCUS_IN) + if (selectedIndex == -1 && event.type == FocusEvent.FOCUS_IN) { selectedIndex = 0; } - else if (event.type == FocusEvent.FOCUS_OUT) - { - selectedIndex = -1; - } } //-------------------------------------------------------------------------- diff --git a/src/widgets/Chart/ChartWidget.mxml b/src/widgets/Chart/ChartWidget.mxml index d107651..81e2f32 100644 --- a/src/widgets/Chart/ChartWidget.mxml +++ b/src/widgets/Chart/ChartWidget.mxml @@ -18,7 +18,6 @@ --> -1) + { + updateLayerSelectionMessage(); + clearChartAndSelectionHighlights() + updateSelectedChartLayerDefinition(); + } } private function updateLayerSelectionMessage():void diff --git a/src/widgets/DataExtract/DataExtractWidget.mxml b/src/widgets/DataExtract/DataExtractWidget.mxml index 3deddf7..901dd5b 100644 --- a/src/widgets/DataExtract/DataExtractWidget.mxml +++ b/src/widgets/DataExtract/DataExtractWidget.mxml @@ -37,7 +37,6 @@ import com.esri.ags.geometry.Polygon; import com.esri.ags.layers.GraphicsLayer; import com.esri.ags.symbols.Symbol; - import com.esri.ags.tasks.GeometryService; import com.esri.ags.tasks.GeometryServiceSingleton; import com.esri.ags.tasks.JSONTask; import com.esri.ags.tasks.supportClasses.GPMessage; @@ -50,11 +49,13 @@ import com.esri.viewer.utils.ErrorMessageUtil; import mx.collections.ArrayCollection; + import mx.collections.ArrayList; import mx.controls.Alert; import mx.events.CloseEvent; import mx.rpc.AsyncResponder; import mx.rpc.Fault; import mx.rpc.events.FaultEvent; + import mx.utils.ObjectProxy; private var dataUrl:String = ""; private var file:FileReference; @@ -68,17 +69,17 @@ private var drawSymbol:Symbol; [Bindable] private var exposeLayers:Boolean = true; //later set to FALSE!! - private var formatChoiceList:ArrayCollection; - private var rasterFormatChoiceList:ArrayCollection; + private var formatChoiceList:ArrayList; + private var rasterFormatChoiceList:ArrayList; [Bindable] private var rasterFormatChoiceListVisible:Boolean; - private var spatialReferenceChoiceList:ArrayCollection; + private var spatialReferenceChoiceList:ArrayList; [Bindable] private var spatialReferenceChoiceListVisible:Boolean; [Bindable] private var gpURL:String; [Bindable] - private var layers:ArrayCollection; + private var layers:ArrayList; private var excludeLayers:Array = []; [Bindable] private var useCurrentExtentAsAIO:Boolean = false; @@ -102,6 +103,10 @@ [Bindable] private var clearLabel:String; [Bindable] + private var selectAllLabel:String; + [Bindable] + private var deselectAllLabel:String; + [Bindable] private var dataCurrentExtentLabel:String; [Bindable] private var step2Label:String; @@ -127,8 +132,8 @@ } else { - wTemplate.width = wTemplate.minWidth = 320; - wTemplate.height = wTemplate.minHeight = 300; + wTemplate.width; + wTemplate.height; } } @@ -204,6 +209,8 @@ step2ErrorLabel = configXML.labels.step2errorlabel[0] || getDefaultString("step2ErrorLabel"); emptyResultsLabel = configXML.labels.emptyresultslabel[0] || getDefaultString("emptyResultsLabel"); saveDataFileLabel = configXML.labels.savedatafilelabel[0] || getDefaultString("saveDataFileLabel"); + selectAllLabel = configXML.labels.selectalllabel[0] || getDefaultString("selectAllLabel"); + deselectAllLabel = configXML.labels.deselectalllabel[0] || getDefaultString("deselectAllLabel"); initGraphicContextMenu(); } @@ -632,20 +639,20 @@ { if (params[i].name == "Layers_to_Clip") { - layers = new ArrayCollection(); + layers = new ArrayList(); exposeLayers = true; for each (var layer:Object in params[i].choiceList) { if (excludeLayers.indexOf(layer) == -1) { - var obj:Object = { label: layer, selected: false }; + var obj:ObjectProxy = new ObjectProxy({ label: layer, selected: false }); layers.addItem(obj); } } } if (params[i].name == "Feature_Format") { - formatChoiceList = new ArrayCollection(); + formatChoiceList = new ArrayList(); for each (var format:String in params[i].choiceList) { const fileLabel:String = format.substring(0, format.indexOf("-") - 1); @@ -657,7 +664,7 @@ if (params[i].name == "Raster_Format") { rasterFormatChoiceListVisible = true; - rasterFormatChoiceList = new ArrayCollection(); + rasterFormatChoiceList = new ArrayList(); for each (var rasterFormat:String in params[i].choiceList) { const fileLabel1:String = rasterFormat.substring(0, rasterFormat.indexOf("-") - 1); @@ -668,7 +675,7 @@ if (params[i].name == "Spatial_Reference") { spatialReferenceChoiceListVisible = true; - spatialReferenceChoiceList = new ArrayCollection(); + spatialReferenceChoiceList = new ArrayList(); for each (var spatialReferenceString:String in params[i].choiceList) { spatialReferenceChoiceList.addItem({ data: spatialReferenceString, label: spatialReferenceString }); @@ -701,6 +708,15 @@ { createGPParamsAndExtract(event.result as Array); } + + private function toggleLayerSelection(value:Boolean):void + { + var allLayers:Array = layers.source; + for each (var layerObject:Object in allLayers) + { + layerObject.selected = value; + } + } ]]> @@ -742,7 +758,9 @@ gap="4" verticalAlign="middle"> - + + + - + + + - + + + + + - + @@ -830,6 +858,7 @@ horizontalAlign="left" useVirtualLayout="true"/> + @@ -839,6 +868,18 @@ + + + + + + + + + + + + + diff --git a/src/widgets/Directions/DirectionsWidget.mxml b/src/widgets/Directions/DirectionsWidget.mxml index 24c99d0..c2c9ad4 100644 --- a/src/widgets/Directions/DirectionsWidget.mxml +++ b/src/widgets/Directions/DirectionsWidget.mxml @@ -47,9 +47,8 @@ } else { - wTemplate.height = map.height - map.height / 100 - Number(this.top); - wTemplate.minHeight = 800; - wTemplate.width = wTemplate.minWidth = 300; + wTemplate.height = map.height - map.height / 100 - Number(this.top) - Number(this.bottom); + wTemplate.width = 300; } } @@ -116,8 +115,8 @@ directionsGeocoderOptions.searchDelay = configSearchDelay; } if (geocoderOptionsXML.locatoroptions.length() > 0 && !locatorDisabled) - { - directionsGeocoderOptions.locatorOptions = parseLocatorOptions(configXML.locatoroptions[0]); + { + directionsGeocoderOptions.locatorOptions = parseLocatorOptions(geocoderOptionsXML.locatoroptions[0]); } if (geocoderOptionsXML.mapservices.length() > 0 && geocoderOptionsXML.mapservices.@enabled != "false") { diff --git a/src/widgets/Draw/DrawWidget.mxml b/src/widgets/Draw/DrawWidget.mxml index 71166de..20cf0f0 100644 --- a/src/widgets/Draw/DrawWidget.mxml +++ b/src/widgets/Draw/DrawWidget.mxml @@ -207,8 +207,8 @@ } else { - wTemplate.width = wTemplate.minWidth = 420; - wTemplate.height = wTemplate.minHeight = 300; + wTemplate.width = 420; + wTemplate.height = 300; } } diff --git a/src/widgets/Edit/EditWidget.mxml b/src/widgets/Edit/EditWidget.mxml index 264c5a1..a4ab76c 100644 --- a/src/widgets/Edit/EditWidget.mxml +++ b/src/widgets/Edit/EditWidget.mxml @@ -43,7 +43,6 @@ import com.esri.ags.events.FeatureLayerEvent; import com.esri.ags.events.LayerEvent; import com.esri.ags.events.MapEvent; - import com.esri.ags.geometry.Geometry; import com.esri.ags.layers.ArcGISDynamicMapServiceLayer; import com.esri.ags.layers.ArcGISTiledMapServiceLayer; import com.esri.ags.layers.FeatureLayer; @@ -102,7 +101,6 @@ private var visibleLayersChangeWatcher:ChangeWatcher; private var activeFeatureChangeWatcher:ChangeWatcher; private var layerToSettings:Dictionary = new Dictionary /*layer,settingsObject*/; - private var featureLayerToSelectionColor:Dictionary = new Dictionary /*FeatureLayer,SelectionColor*/; private function basewidget_initializeHandler():void { @@ -113,8 +111,8 @@ } else { - wTemplate.width = wTemplate.minWidth = 310; - wTemplate.height = wTemplate.minHeight = 310; + wTemplate.width = 310; + wTemplate.height = 310; } } @@ -482,7 +480,6 @@ //store the renderer info for each layer on map storeInfoWindowRenderer(); editor.map = map; - updateSelectionColor(featureLayers); editor.featureLayers = featureLayers; // infowindowLabel on the AttributeInspector editor.attributeInspector.infoWindowLabel = attributesLabel; @@ -620,7 +617,6 @@ else { deactivateEditor(); - updateSelectionColor(featureLayers); editor.featureLayers = featureLayers; //store the renderer info for each layer on map storeInfoWindowRenderer(); @@ -778,7 +774,6 @@ featureLayers.unshift(event.layer); deactivateEditor(); editor.map = map; - updateSelectionColor(featureLayers); editor.featureLayers = featureLayers; } else if (event.layer is ArcGISDynamicMapServiceLayer) @@ -1433,23 +1428,6 @@ return result; } - private function updateSelectionColor(featureLayers:Array):void - { - if (!editor.toolbarVisible) - { - for each (var featureLayer:FeatureLayer in featureLayers) - { - if (!featureLayerToSelectionColor[featureLayer] && - featureLayer.layerDetails && - (featureLayer.layerDetails.geometryType == Geometry.POLYGON || featureLayer.layerDetails.geometryType == Geometry.POLYLINE)) - { - featureLayerToSelectionColor[featureLayer] = featureLayer.selectionColor; - featureLayer.selectionColor = NaN; - } - } - } - } - private function widgetClosedHandler(event:Event):void { disablePanZoomNavigationWidget = false; @@ -1460,10 +1438,6 @@ // clear feature layer selection for each (var featureLayer:FeatureLayer in featureLayers) { - if (featureLayerToSelectionColor[featureLayer]) // restore selection color - { - featureLayer.selectionColor = featureLayerToSelectionColor[featureLayer]; - } if (featureLayer.selectedFeatures.length > 0) { featureLayer.clearSelection(); diff --git a/src/widgets/GeoRSS/GeoRSSWidget.mxml b/src/widgets/GeoRSS/GeoRSSWidget.mxml index 8f30868..add0308 100644 --- a/src/widgets/GeoRSS/GeoRSSWidget.mxml +++ b/src/widgets/GeoRSS/GeoRSSWidget.mxml @@ -106,8 +106,6 @@ { wTemplate.width = 330; wTemplate.height = 300; - wTemplate.minWidth = 300 - wTemplate.minHeight = 100; } } @@ -138,15 +136,15 @@ resultMarkerSymbol = new PictureMarkerSymbol(resultMarkerSymbolURL, resultMarkerSymbolWidth, resultMarkerSymbolHeight, resultMarkerSymbolXOffset, resultMarkerSymbolYOffset); //line symbol - const resultLineSymbolColor:uint = configXML.symbols.simplelinesymbol.@color || 0xFF0000; + const resultLineSymbolColor:uint = (configXML.symbols.simplelinesymbol.@color[0] != null) ? configXML.symbols.simplelinesymbol.@color : 0xFF0000; const resultLineSymbolAlpha:Number = (configXML.symbols.simplelinesymbol.@alpha[0] != null) ? configXML.symbols.simplelinesymbol.@alpha : 0.8; const resultLineSymbolWidth:Number = (configXML.symbols.simplelinesymbol.@width[0] != null) ? configXML.symbols.simplelinesymbol.@width : 2; resultLineSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, resultLineSymbolColor, resultLineSymbolAlpha, resultLineSymbolWidth); // fill symbol - const resultFillSymbolColor:uint = configXML.symbols.simplefillsymbol.@color || 0xFF0000; + const resultFillSymbolColor:uint = (configXML.symbols.simplefillsymbol.@color[0] != null) ? configXML.symbols.simplefillsymbol.@color : 0xFF0000; const resultFillSymbolAlpha:Number = (configXML.symbols.simplefillsymbol.@alpha[0] != null) ? configXML.symbols.simplefillsymbol.@alpha : 0.5; - const resultFillSymbolOutlineColor:uint = configXML.symbols.simplefillsymbol.outline.@color || 0xFF0000; + const resultFillSymbolOutlineColor:uint = (configXML.symbols.simplefillsymbol.outline.@color[0] != null) ? configXML.symbols.simplefillsymbol.outline.@color : 0xFF0000; const resultFillSymbolOutlineAlpha:Number = (configXML.symbols.simplefillsymbol.outline.@alpha[0] != null) ? configXML.symbols.simplefillsymbol.outline.@alpha : 0.8; const resultFillSymbolOutlineWidth:Number = (configXML.symbols.simplefillsymbol.outline.@width[0] != null) ? configXML.symbols.simplefillsymbol.outline.@width : 2; resultFillSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, resultFillSymbolColor, resultFillSymbolAlpha, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, resultFillSymbolOutlineColor, resultFillSymbolOutlineAlpha, resultFillSymbolOutlineWidth)); diff --git a/src/widgets/Geoprocessing/GeoprocessingWidget.mxml b/src/widgets/Geoprocessing/GeoprocessingWidget.mxml index 496294e..52da2ee 100644 --- a/src/widgets/Geoprocessing/GeoprocessingWidget.mxml +++ b/src/widgets/Geoprocessing/GeoprocessingWidget.mxml @@ -127,7 +127,6 @@ { wTemplate.width = 368; wTemplate.height = 250; - wTemplate.minWidth = wTemplate.minHeight = 200; } } diff --git a/src/widgets/LayerList/LayerListWidget.mxml b/src/widgets/LayerList/LayerListWidget.mxml index 4c00816..61ecb74 100644 --- a/src/widgets/LayerList/LayerListWidget.mxml +++ b/src/widgets/LayerList/LayerListWidget.mxml @@ -32,6 +32,7 @@ [Bindable] private var title:String; private var includeLegendItems:Boolean = true; // include legend items in the TOC + private var showLayerMenu:Boolean = true; // show layer menu in the TOC private function basewidget_initializeHandler():void { @@ -59,6 +60,10 @@ { includeLegendItems = configXML.includelegenditems == "true"; } + if (configXML.showlayermenu.length()) + { + showLayerMenu = configXML.showlayermenu == "true"; + } } if (configData && configData.opLayers.length > 0) // do not initialize TOC if there are no operational layers @@ -75,6 +80,7 @@ toc.basemapLayers = getBasemapLayers(); toc.excludeGraphicsLayers = true; toc.includeLegendItems = includeLegendItems; + toc.showLayerMenu = showLayerMenu; toc.expandLayerItems = expandLayerItems; } diff --git a/src/widgets/Legend/LegendWidget.mxml b/src/widgets/Legend/LegendWidget.mxml index 6d39ac1..2a447c9 100644 --- a/src/widgets/Legend/LegendWidget.mxml +++ b/src/widgets/Legend/LegendWidget.mxml @@ -26,8 +26,13 @@ 0) - { - setInterval(dynLayer.refresh, autoRefresh * 1000); - } - if (visibleLayers) - { - var vizLayers:Array = visibleLayers.split(","); - dynLayer.visibleLayers = new ArrayCollection(vizLayers); - } - if (proxyUrl && useProxy) - { - dynLayer.proxyURL = proxyUrl; - } - layerToAdd = dynlayer; - break; - } - case "feature": - { - var featureLayer:FeatureLayer = new FeatureLayer(urlBaseMap); - featureLayer.alpha = alpha; - featureLayer.id = label; - featureLayer.visible = visible; - featureLayer.outFields = [ '*' ]; - featureLayer.token = token; - featureLayer.useAMF = useamf; - if (mode) - { - featureLayer.mode = mode; - } - if (proxyUrl && useProxy) - { - featureLayer.proxyURL = proxyUrl; - } - if (definitionExpression && definitionExpression != "") - { - featureLayer.definitionExpression = definitionExpression; - } - layerToAdd = featureLayer; - break; - } - case "bing": - { - var veTiledLayer:VETiledLayer = new VETiledLayer(); - veTiledLayer.alpha = alpha; - veTiledLayer.id = label; - veTiledLayer.visible = visible; - veTiledLayer.key = bingMapKey; - if (style) - { - veTiledLayer.mapStyle = style; - } - if (culture) - { - veTiledLayer.culture = culture; - } - layerToAdd = veTiledLayer; - break; - } - case "image": - { - var imgLayer:ArcGISImageServiceLayer = new ArcGISImageServiceLayer(urlBaseMap); - imgLayer.alpha = alpha; - imgLayer.id = label; - imgLayer.visible = visible; - imgLayer.noData = noData; - imgLayer.token = token; - if (proxyUrl && useProxy) - { - imgLayer.proxyURL = proxyUrl; - } - layerToAdd = imgLayer; - break; - } - case "arcims": - { - var arcimsLayer:ArcIMSMapServiceLayer = new ArcIMSMapServiceLayer(); - arcimsLayer.alpha = alpha; - arcimsLayer.id = label; - arcimsLayer.visible = visible; - arcimsLayer.serviceHost = serviceHost; - arcimsLayer.serviceName = serviceName; - if (autoRefresh > 0) - { - setInterval(arcimsLayer.refresh, autoRefresh * 1000); - } - if (visibleLayers) - { - var visLayers:Array = visibleLayers.split(","); - arcimsLayer.visibleLayers = new ArrayCollection(visLayers); - } - if (proxyUrl && useProxy) - { - arcimsLayer.proxyURL = proxyUrl; - } - layerToAdd = arcimsLayer; - break; - } - case "osm": - { - var osmLayer:OpenStreetMapLayer = new OpenStreetMapLayer(); - osmLayer.alpha = alpha; - osmLayer.id = label; - osmLayer.name = label; - osmLayer.visible = visible; - layerToAdd = osmLayer; - break; - } - } - + layerToAdd = LayerCreator.createLayerFromLayerObject(basemapLayerObject); if (layerToAdd) { overviewMap.addLayer(layerToAdd); @@ -344,7 +183,6 @@ } AppEvent.addListener(AppEvent.BASEMAP_SWITCH, viewContainer_basemapSwitchHandler); } - // collapsible if (configXML.collapsible.length() > 0) { isCollapsible = configXML.collapsible == "true"; @@ -357,7 +195,7 @@ { currentState = "noncollapsible"; } - if (currentState == "collapsed") // turn layer(s) off if component is collapsed + if (currentState == "collapsed") { for each (var layer:Layer in overviewMap.layers) { @@ -405,14 +243,7 @@ { if (layer.id == basemapLabel) { - if (layer.id == selectedLabel) - { - layer.visible = true; - } - else - { - layer.visible = false; - } + layer.visible = (layer.id == selectedLabel); } } } @@ -422,25 +253,20 @@ private function overviewMap_loadHandler(event:MapEvent):void { - graphicsLayer.name = "overviewMapGraphicsLayer"; - graphicsLayer.symbol = currentExtentSym; - overviewMap.addLayer(graphicsLayer); - - overviewGraphic.geometry = map.extent; - overviewGraphic.addEventListener(MouseEvent.MOUSE_DOWN, overviewGraphic_mouseDownHandler); + startTrackingIfMapsLoaded(); + } - //update map extent when mouse moves out of the overview map - overviewMap.addEventListener(MouseEvent.ROLL_OUT, overviewMap_mouseRollOutHandler); + private function startTrackingIfMapsLoaded():void + { + if (map && map.loaded && overviewMap && overviewMap.loaded) + { + map.addEventListener(ExtentEvent.EXTENT_CHANGE, map_extentChangeHandler); + overviewMap.addEventListener(MouseEvent.ROLL_OUT, overviewMap_mouseRollOutHandler); + overviewGraphic.addEventListener(MouseEvent.MOUSE_DOWN, overviewGraphic_mouseDownHandler); - graphicsLayer.add(overviewGraphic); + updateOverviewExtentFromMap(); - if (map.loaded) - { - trackMapExtent(); - } - else - { - map.addEventListener(MapEvent.LOAD, map_loadHandler); + overviewMap.defaultGraphicsLayer.add(overviewGraphic); } } @@ -450,7 +276,6 @@ overviewMap.addEventListener(MouseEvent.MOUSE_UP, overviewMap_mouseUpHandler); overviewMap.addEventListener(MouseEvent.MOUSE_MOVE, overviewMap_mouseMoveHandler); - var overviewCenterMapPoint:MapPoint = overviewGraphic.geometry.extent.center; var mouseMapPoint:MapPoint = overviewMap.toMapFromStage(event.stageX, event.stageY); lastMouseMapX = mouseMapPoint.x; lastMouseMapY = mouseMapPoint.y; @@ -461,8 +286,6 @@ hasOverviewGraphicBeenMoved = true; var overviewPolygon:Polygon = overviewGraphic.geometry as Polygon; - var overviewCenterMapPoint:MapPoint = overviewPolygon.extent.center; - var mouseMapPoint:MapPoint = overviewMap.toMapFromStage(event.stageX, event.stageY); var deltaMapX:Number = mouseMapPoint.x - lastMouseMapX; var deltaMapY:Number = mouseMapPoint.y - lastMouseMapY; @@ -485,7 +308,6 @@ overviewMap.removeEventListener(MouseEvent.MOUSE_MOVE, overviewMap_mouseMoveHandler); overviewMap.removeEventListener(MouseEvent.MOUSE_UP, overviewMap_mouseUpHandler); overviewGraphic.addEventListener(MouseEvent.MOUSE_DOWN, overviewGraphic_mouseDownHandler); - if (hasOverviewGraphicBeenMoved) { hasOverviewGraphicBeenMoved = false; @@ -511,12 +333,6 @@ } } - private function trackMapExtent():void - { - map.addEventListener(ExtentEvent.EXTENT_CHANGE, map_extentChangeHandler); - updateOverviewExtentFromMap(); - } - private function updateOverviewExtentFromMap():void { overviewMap.extent = map.extent.expand(3); @@ -533,7 +349,7 @@ private function map_loadHandler(event:MapEvent):void { map.removeEventListener(MapEvent.LOAD, map_loadHandler); - trackMapExtent(); + startTrackingIfMapsLoaded(); } private function sequence_effectStartHandler(event:EffectEvent):void @@ -568,14 +384,11 @@ private function sequence_effectEndHandler(event:EffectEvent):void { - if (currentState == "collapsed") // turn layer(s) off if component is collapsed + if (currentState == "collapsed") { for each (var layer:Layer in overviewMap.layers) { - if (!(layer is GraphicsLayer && layer.name == "overviewMapGraphicsLayer")) - { - layer.visible = false; - } + layer.visible = false; } } } diff --git a/src/widgets/Print/ExportWebMapForm.mxml b/src/widgets/Print/ExportWebMapForm.mxml index c29cac0..30f3ee4 100644 --- a/src/widgets/Print/ExportWebMapForm.mxml +++ b/src/widgets/Print/ExportWebMapForm.mxml @@ -93,6 +93,11 @@ printTask.addEventListener(FaultEvent.FAULT, printTaskInitialization_faultHandler, false, 0, true); printTask.url = configXML.taskurl; + const useProxy:Boolean = (configXML.useproxy.length() > 0) && (configXML.useproxy == "true"); + if (useProxy && hostBaseWidget.configData.proxyUrl) + { + printTask.proxyURL = hostBaseWidget.configData.proxyUrl; + } printTask.getServiceInfo(); printButton.label = configXML.labels.submitlabel[0] || hostBaseWidget.getDefaultString("printSubmitLabel"); } @@ -194,25 +199,32 @@ return result; } - private function map_zoomEndHandler(event:ZoomEvent):void + private function printTask_executeCompleteHandler(event:PrintEvent):void { - if (!scaleCheckbox.selected) - { - updatePrintScale(); - } + swfMessage.visible = false; + var paramValue:ParameterValue = event.executeResult.results[0]; + var dataFile:DataFile = paramValue.value as DataFile; + navigateToURL(new URLRequest(dataFile.url)); } - private function updatePrintScale():void + private function printTask_getResultDataCompleteHandler(event:PrintEvent):void { - scaleInput.text = Math.round(hostBaseWidget.map.scale).toString(); + swfMessage.visible = false; + var dataFile:DataFile = event.parameterValue.value as DataFile; + navigateToURL(new URLRequest(dataFile.url)); } - private function printTask_executeCompleteHandler(event:PrintEvent):void + protected function printTask_getServiceInfoCompleteHandler(event:PrintEvent):void { - swfMessage.visible = false; - var paramValue:ParameterValue = event.executeResult.results[0]; - var dataFile:DataFile = paramValue.value as DataFile; - navigateToURL(new URLRequest(dataFile.url)); + printTask.removeEventListener(PrintEvent.GET_SERVICE_INFO_COMPLETE, printTask_getServiceInfoCompleteHandler); + printTask.removeEventListener(FaultEvent.FAULT, printTaskInitialization_faultHandler); + printTask.addEventListener(FaultEvent.FAULT, printTask_faultHandler); + + initNonPrintServiceProperties(); + initLayoutTemplates(event.serviceInfo); + initFormats(event.serviceInfo); + + printButton.enabled = true; } protected function printTask_faultHandler(event:FaultEvent):void @@ -236,24 +248,13 @@ ErrorMessageUtil.makeHTMLSafe(fault.toString())); } - private function printTask_getResultDataCompleteHandler(event:PrintEvent):void - { - swfMessage.visible = false; - var dataFile:DataFile = event.parameterValue.value as DataFile; - navigateToURL(new URLRequest(dataFile.url)); - } - - protected function printTask_getServiceInfoCompleteHandler(event:PrintEvent):void + private function initNonPrintServiceProperties():void { - printTask.removeEventListener(PrintEvent.GET_SERVICE_INFO_COMPLETE, printTask_getServiceInfoCompleteHandler); - printTask.removeEventListener(FaultEvent.FAULT, printTaskInitialization_faultHandler); - printTask.addEventListener(FaultEvent.FAULT, printTask_faultHandler); - - initNonPrintServiceProperties(); - initLayoutTemplates(event.serviceInfo); - initFormats(event.serviceInfo); - - printButton.enabled = true; + initTitle(); + initCopyright(); + initAuthor(); + initUseScale(); + initDPI(); } private function initTitle():void @@ -325,6 +326,28 @@ } } + private function map_zoomEndHandler(event:ZoomEvent):void + { + if (!scaleCheckbox.selected) + { + updatePrintScale(); + } + } + + private function updatePrintScale():void + { + scaleInput.text = Math.round(hostBaseWidget.map.scale).toString(); + } + + private function initDPI():void + { + var parsedDPI:Number = parseFloat(configXML.dpi[0]); + if (!isNaN(parsedDPI)) + { + exportOptions.dpi = parsedDPI; + } + } + private function initLayoutTemplates(serviceInfo:PrintServiceInfo):void { var layoutTemplatesVisibility:Boolean = true; @@ -467,14 +490,6 @@ printButton.enabled = true; } - - private function initNonPrintServiceProperties():void - { - initTitle(); - initCopyright(); - initAuthor(); - initUseScale(); - } ]]> @@ -493,6 +508,10 @@ + + + + diff --git a/src/widgets/Query/QueryWidget.mxml b/src/widgets/Query/QueryWidget.mxml index e473781..07c0cbf 100644 --- a/src/widgets/Query/QueryWidget.mxml +++ b/src/widgets/Query/QueryWidget.mxml @@ -183,15 +183,15 @@ resultMarkerSymbol = new PictureMarkerSymbol(resultMarkerSymbolURL, resultMarkerSymbolWidth, resultMarkerSymbolHeight, resultMarkerSymbolXOffset, resultMarkerSymbolYOffset); //line symbol - const resultLineSymbolColor:uint = configXML.symbols.simplelinesymbol.@color || 0xFF0000; + const resultLineSymbolColor:uint = (configXML.symbols.simplelinesymbol.@color[0] != null) ? configXML.symbols.simplelinesymbol.@color : 0xFF0000; const resultLineSymbolAlpha:Number = (configXML.symbols.simplelinesymbol.@alpha[0] != null) ? configXML.symbols.simplelinesymbol.@alpha : 0.8; const resultLineSymbolWidth:Number = (configXML.symbols.simplelinesymbol.@width[0] != null) ? configXML.symbols.simplelinesymbol.@width : 2; resultLineSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, resultLineSymbolColor, resultLineSymbolAlpha, resultLineSymbolWidth); // fill symbol - const resultFillSymbolColor:uint = configXML.symbols.simplefillsymbol.@color || 0xFF0000; + const resultFillSymbolColor:uint = (configXML.symbols.simplefillsymbol.@color[0] != null) ? configXML.symbols.simplefillsymbol.@color : 0xFF0000; const resultFillSymbolAlpha:Number = (configXML.symbols.simplefillsymbol.@alpha[0] != null) ? configXML.symbols.simplefillsymbol.@alpha : 0.5; - const resultFillSymbolOutlineColor:uint = configXML.symbols.simplefillsymbol.outline.@color || 0xFF0000; + const resultFillSymbolOutlineColor:uint = (configXML.symbols.simplefillsymbol.outline.@color[0] != null) ? configXML.symbols.simplefillsymbol.outline.@color : 0xFF0000; const resultFillSymbolOutlineAlpha:Number = (configXML.symbols.simplefillsymbol.outline.@alpha[0] != null) ? configXML.symbols.simplefillsymbol.outline.@alpha : 0.8; const resultFillSymbolOutlineWidth:Number = (configXML.symbols.simplefillsymbol.outline.@width[0] != null) ? configXML.symbols.simplefillsymbol.outline.@width : 2; resultFillSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, resultFillSymbolColor, resultFillSymbolAlpha, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, resultFillSymbolOutlineColor, resultFillSymbolOutlineAlpha, resultFillSymbolOutlineWidth)); @@ -366,7 +366,7 @@ { FeatureSetUtil.sortFeaturesByFieldName(featureSet, orderByFields); } - + if (queryResultAC) { queryResultAC.removeAll(); @@ -407,41 +407,59 @@ queryTitleField = featureSet.displayFieldName; } + var defaultSymbol:Symbol = getMatchingDefaultSymbol(featureSet.geometryType); + var resultAttributes:ResultAttributes; + var infoWindowRenderer:ClassFactory; + for each (var graphic:Graphic in featureSet.features) { - var resultAttributes:ResultAttributes = - ResultAttributes.toResultAttributes(queryFields, graphic, featureSet, queryLayer, layerDetails, widgetTitle, queryTitleField, queryLinkField, queryLinkAlias); + graphic.symbol = defaultSymbol; + + resultAttributes = + ResultAttributes.toResultAttributes(queryFields, graphic, featureSet, + queryLayer, layerDetails, widgetTitle, + queryTitleField, queryLinkField, queryLinkAlias); + graphicToResultAttributes[graphic] = resultAttributes; - var searchResult:ResultItem = new ResultItem(graphic, resultAttributes); - result.addItem(searchResult); + result.addItem(new ResultItem(graphic, resultAttributes)); - var infoWindowRenderer:ClassFactory = new ClassFactory(PopUpRenderer); + infoWindowRenderer = new ClassFactory(PopUpRenderer); infoWindowRenderer.properties = { popUpInfo: configurePopUpInfo(resultAttributes)}; graphic.infoWindowRenderer = infoWindowRenderer; } + resultFeatureLayer.visible = true; resultFeatureLayer.featureCollection = new FeatureCollection(featureSet, layerDetails); - switch (featureSet.geometryType) + resultFeatureLayer.renderer = new SimpleRenderer(defaultSymbol); + + return result; + } + + private function getMatchingDefaultSymbol(geometryType:String):Symbol + { + var defaultSymbol:Symbol; + + switch (geometryType) { case Geometry.MAPPOINT: { - resultFeatureLayer.renderer = new SimpleRenderer(resultMarkerSymbol); + defaultSymbol = resultMarkerSymbol; break; } case Geometry.POLYLINE: { - resultFeatureLayer.renderer = new SimpleRenderer(resultLineSymbol); + defaultSymbol = resultLineSymbol; break; } case Geometry.POLYGON: { - resultFeatureLayer.renderer = new SimpleRenderer(resultFillSymbol); + defaultSymbol = resultFillSymbol; break; } } - return result; + return defaultSymbol; } private function configurePopUpInfo(resultAttributes:ResultAttributes):PopUpInfo @@ -462,6 +480,7 @@ if (isImageLink) { var popUpMediaInfo:PopUpMediaInfo = new PopUpMediaInfo; + popUpMediaInfo.type = PopUpMediaInfo.IMAGE; popUpMediaInfo.imageLinkURL = link; popUpMediaInfo.imageSourceURL = link; popUpInfo.popUpMediaInfos = [ popUpMediaInfo ]; diff --git a/src/widgets/Search/SearchWidget.mxml b/src/widgets/Search/SearchWidget.mxml index 26fd64e..4331393 100644 --- a/src/widgets/Search/SearchWidget.mxml +++ b/src/widgets/Search/SearchWidget.mxml @@ -75,9 +75,11 @@ import mx.collections.ArrayCollection; import mx.collections.ArrayList; + import mx.core.LayoutDirection; import mx.events.FlexEvent; import mx.rpc.AsyncResponder; import mx.rpc.events.FaultEvent; + import mx.utils.StringUtil; import spark.components.supportClasses.ItemRenderer; @@ -215,6 +217,7 @@ layer.addEventListener(LayerEvent.LOAD, searchLayer_loadHandler); layer.addEventListener(LayerEvent.LOAD_ERROR, searchLayer_faultHandler); layer.url = lyrURL; + layer.name = buildLayerName(lyrLabel); if (useProxy && configData.proxyUrl) { @@ -270,14 +273,14 @@ const resultMarkerSymbolYOffset:Number = (configXML.symbols.picturemarkersymbol.@yoffset != null) ? configXML.symbols.picturemarkersymbol.@yoffset : 0; resultMarkerSymbol = new PictureMarkerSymbol(resultMarkerSymbolURL, resultMarkerSymbolWidth, resultMarkerSymbolHeight, resultMarkerSymbolXOffset, resultMarkerSymbolYOffset); - const resultLineSymbolColor:uint = configXML.symbols.simplelinesymbol.@color || 0xFF0000; + const resultLineSymbolColor:uint = (configXML.symbols.simplelinesymbol.@color[0] != null) ? configXML.symbols.simplelinesymbol.@color : 0xFF0000; const resultLineSymbolAlpha:Number = (configXML.symbols.simplelinesymbol.@alpha[0] != null) ? configXML.symbols.simplelinesymbol.@alpha : 0.8; const resultLineSymbolWidth:Number = (configXML.symbols.simplelinesymbol.@width[0] != null) ? configXML.symbols.simplelinesymbol.@width : 2; resultLineSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, resultLineSymbolColor, resultLineSymbolAlpha, resultLineSymbolWidth); - const resultFillSymbolColor:uint = configXML.symbols.simplefillsymbol.@color || 0xFF0000; + const resultFillSymbolColor:uint = (configXML.symbols.simplefillsymbol.@color[0] != null) ? configXML.symbols.simplefillsymbol.@color : 0xFF0000; const resultFillSymbolAlpha:Number = (configXML.symbols.simplefillsymbol.@alpha[0] != null) ? configXML.symbols.simplefillsymbol.@alpha : 0.5; - const resultFillSymbolOutlineColor:uint = configXML.symbols.simplefillsymbol.outline.@color || 0xFF0000; + const resultFillSymbolOutlineColor:uint = (configXML.symbols.simplefillsymbol.outline.@color[0] != null) ? configXML.symbols.simplefillsymbol.outline.@color : 0xFF0000; const resultFillSymbolOutlineAlpha:Number = (configXML.symbols.simplefillsymbol.outline.@alpha[0] != null) ? configXML.symbols.simplefillsymbol.outline.@alpha : 0.8; const resultFillSymbolOutlineWidth:Number = (configXML.symbols.simplefillsymbol.outline.@width[0] != null) ? configXML.symbols.simplefillsymbol.outline.@width : 2; resultFillSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID, resultFillSymbolColor, resultFillSymbolAlpha, new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID, resultFillSymbolOutlineColor, resultFillSymbolOutlineAlpha, resultFillSymbolOutlineWidth)); @@ -286,9 +289,6 @@ resultFeatureLayer.visible = false; resultFeatureLayer.isEditable = false; - var layerName:String = configXML.layername || widgetTitle; - resultFeatureLayer.name = shareResults ? layerName : "hiddenLayer_" + layerName; - var clustererParser:ClustererParser = new ClustererParser(); var clusterer:IClusterer = clustererParser.parseClusterer(configXML.clustering[0]); if (clusterer) @@ -297,7 +297,6 @@ } resultFeatureLayer.addEventListener(FlexEvent.HIDE, resultFeatureLayer_hideHandler); - map.addLayer(resultFeatureLayer); var userTolerance:Number = configXML.tolerance; if (userTolerance > 0) @@ -326,6 +325,25 @@ AppEvent.addListener(AppEvent.DATA_PUBLISH, sharedDataUpdated); } + private function buildLayerName(name:String):String + { + var widgetName:String = configXML.layername || widgetTitle; + name = name ? name : widgetName; + + if (widgetName == name) + { + return shareResults ? widgetName : "hiddenLayer_" + widgetName; + } + + var layerNameTemplate:String = + (layoutDirection == LayoutDirection.LTR) ? "{0} - {1}" : "{1} - {0}"; + + layerNameTemplate = + shareResults ? layerNameTemplate : "hiddenLayer_" + layerNameTemplate; + + return StringUtil.substitute(layerNameTemplate, widgetName, name); + } + private function searchLayer_loadHandler(event:LayerEvent):void { var layer:FeatureLayer = event.layer as FeatureLayer; @@ -541,6 +559,7 @@ showLoadErrorMessage(event); } + return; } @@ -567,48 +586,64 @@ query.orderByFields = orderByFields; } - queryLayer.queryFeatures(query, new AsyncResponder(onResult, onFault, queryFields)); + var queryOptions:Object = + { + supportsServerSideSorting: supportsServerSideSorting, + orderByFields: orderByFields, + queryFields: queryFields + }; + + queryLayer.queryFeatures( + query, new AsyncResponder(queryFeatures_resultHandler, + queryFeatures_faultHandler, + queryOptions)); + showMessage(loadingLabel, true); showStateResults(); + } + } - function onResult(featureSet:FeatureSet, token:XMLList = null):void + private function queryFeatures_resultHandler(featureSet:FeatureSet, queryOptions:Object):void + { + try + { + if (!queryOptions.supportsServerSideSorting && queryOptions.orderByFields) { - try - { - if (!supportsServerSideSorting && orderByFields) - { - FeatureSetUtil.sortFeaturesByFieldName(featureSet, orderByFields); - } - - if (searchResultAC) - { - searchResultAC.removeAll(); - } - searchResultAC = createSearchResults(featureSet, token); + FeatureSetUtil.sortFeaturesByFieldName(featureSet, queryOptions.orderByFields); + } - addSharedData(widgetTitle, searchResultAC); - if (featureSet.features.length < 1) - { - showMessage(noResultLabel, false); - } - else - { - showMessage(selectionLabel + " " + featureSet.features.length, false); - } - } - catch (error:Error) - { - showMessage(error.message, false); - } + if (searchResultAC) + { + searchResultAC.removeAll(); } + searchResultAC = createSearchResults(featureSet, queryOptions.queryFields); - function onFault(info:Object, token:Object = null):void + addSharedData(widgetTitle, searchResultAC); + if (featureSet.features.length < 1) { - showMessage(info.toString(), false); + showMessage(noResultLabel, false); } + else + { + showMessage(selectionLabel + " " + featureSet.features.length, false); + } + } + catch (error:Error) + { + showMessage(error.message, false); + } + + if (!resultFeatureLayer.map) + { + map.addLayer(resultFeatureLayer); } } + private function queryFeatures_faultHandler(info:Object, queryOptions:Object):void + { + showMessage(info.toString(), false); + } + private function queryFeaturesGraphical(geom:Geometry):void { hideInfoWindow(); @@ -637,6 +672,7 @@ showLoadErrorMessage(event); } + return; } @@ -662,45 +698,20 @@ query.orderByFields = orderByFields; } - queryLayer.queryFeatures(query, new AsyncResponder(onResult, onFault, queryFields)); - showMessage(loadingLabel, true); - showStateResults(); - - function onResult(featureSet:FeatureSet, token:XMLList = null):void - { - try + var queryOptions:Object = { - if (!supportsServerSideSorting && orderByFields) - { - FeatureSetUtil.sortFeaturesByFieldName(featureSet, orderByFields); - } - - if (searchResultAC) - { - searchResultAC.removeAll(); - } - searchResultAC = createSearchResults(featureSet, token); + supportsServerSideSorting: supportsServerSideSorting, + orderByFields: orderByFields, + queryFields: queryFields + }; - addSharedData(widgetTitle, searchResultAC); - if (featureSet.features.length < 1) - { - showMessage(noResultLabel, false); - } - else - { - showMessage(selectionLabel + " " + featureSet.features.length, false); - } - } - catch (error:Error) - { - showMessage(error.message, false); - } - } + queryLayer.queryFeatures( + query, new AsyncResponder(queryFeatures_resultHandler, + queryFeatures_faultHandler, + queryOptions)); - function onFault(info:Object, token:Object = null):void - { - showMessage(info.toString(), false); - } + showMessage(loadingLabel, true); + showStateResults(); } } @@ -714,44 +725,61 @@ queryTitleField = featureSet.displayFieldName; } + var defaultSymbol:Symbol = getMatchingDefaultSymbol(featureSet.geometryType); + var resultAttributes:ResultAttributes; + var infoWindowRenderer:ClassFactory; + for each (var graphic:Graphic in featureSet.features) { - var resultAttributes:ResultAttributes = - ResultAttributes.toResultAttributes(queryFields, graphic, featureSet, queryLayer, layerDetails, widgetTitle, queryTitleField, queryLinkField, queryLinkAlias); + graphic.symbol = defaultSymbol; - var searchResult:ResultItem = new ResultItem(graphic, resultAttributes); - result.addItem(searchResult); + resultAttributes = + ResultAttributes.toResultAttributes(queryFields, graphic, featureSet, + queryLayer, layerDetails, widgetTitle, + queryTitleField, queryLinkField, queryLinkAlias); - var infoWindowRenderer:ClassFactory = new ClassFactory(PopUpRenderer); + result.addItem(new ResultItem(graphic, resultAttributes)); + + infoWindowRenderer = new ClassFactory(PopUpRenderer); infoWindowRenderer.properties = { popUpInfo: configurePopUpInfo(resultAttributes)}; graphic.infoWindowRenderer = infoWindowRenderer; } + resultFeatureLayer.outFields = queryLayer.outFields; resultFeatureLayer.visible = true; resultFeatureLayer.featureCollection = new FeatureCollection(featureSet, layerDetails); - switch (featureSet.geometryType) + resultFeatureLayer.name = queryLayer.name; + resultFeatureLayer.renderer = new SimpleRenderer(defaultSymbol); + + return result; + } + + private function getMatchingDefaultSymbol(geometryType:String):Symbol + { + var defaultSymbol:Symbol; + + switch (geometryType) { case Geometry.MAPPOINT: { - resultFeatureLayer.renderer = new SimpleRenderer(resultMarkerSymbol); + defaultSymbol = resultMarkerSymbol; break; } case Geometry.POLYLINE: { - resultFeatureLayer.renderer = new SimpleRenderer(resultLineSymbol); + defaultSymbol = resultLineSymbol; break; } case Geometry.POLYGON: { - resultFeatureLayer.renderer = new SimpleRenderer(resultFillSymbol); + defaultSymbol = resultFillSymbol; break; } } - return result; + return defaultSymbol; } - private function configurePopUpInfo(resultAttributes:ResultAttributes):PopUpInfo { var popUpInfo:PopUpInfo = new PopUpInfo; @@ -770,6 +798,7 @@ if (isImageLink) { var popUpMediaInfo:PopUpMediaInfo = new PopUpMediaInfo; + popUpMediaInfo.type = PopUpMediaInfo.IMAGE; popUpMediaInfo.imageLinkURL = link; popUpMediaInfo.imageSourceURL = link; popUpInfo.popUpMediaInfos = [ popUpMediaInfo ]; @@ -1171,5 +1200,4 @@ - diff --git a/src/widgets/Time/TimeWidget.mxml b/src/widgets/Time/TimeWidget.mxml index 1d31d8b..2ae8904 100644 --- a/src/widgets/Time/TimeWidget.mxml +++ b/src/widgets/Time/TimeWidget.mxml @@ -58,8 +58,8 @@ } else { - wTemplate.width = wTemplate.minWidth = 335; - wTemplate.height = wTemplate.minHeight = 115; + wTemplate.width = 335; + wTemplate.height = 115; } } diff --git a/src/widgets/WidgetContainer/WidgetContainer.mxml b/src/widgets/WidgetContainer/WidgetContainer.mxml index d96b815..39b7477 100644 --- a/src/widgets/WidgetContainer/WidgetContainer.mxml +++ b/src/widgets/WidgetContainer/WidgetContainer.mxml @@ -249,7 +249,6 @@ ** --------------------------------------------------*/ private var scrollint:uint; - private var scrollinterval:uint; private var scrolldist:Number; private var dist:Number = 10; private var scrolldir:String; @@ -346,6 +345,12 @@ private function scrollToWidgetStart(params:Array):void { + if (widgetlayout != HORIZONTAL && + widgetlayout != VERTICAL) + { + return; + } + var wObj:DisplayObject = params[0]; if (containWidget(wObj as IVisualElement) < 0) { @@ -353,7 +358,7 @@ return; } - var boxRect:Rectangle = widgetContainer.getRect(this); + var boxRect:Rectangle = widgetContainer.getVisibleRect(this); var screenW:Number = boxRect.width; var screenH:Number = boxRect.height; @@ -385,7 +390,26 @@ var topDelta:Number = verticalY - wTop; var bottomDelta:Number = wBottom - (screenH + verticalY); - if ((rightDelta > 0) || (leftDelta > 0) || (topDelta > 0) || (bottomDelta > 0)) + if (rightDelta <= 0 && leftDelta <= 0 && + topDelta <= 0 && bottomDelta <= 0) + { + return; + } + + if (widgetlayout == HORIZONTAL) + { + if (leftDelta > 0) + { + scrolldist = leftDelta; + scrolldir = RIGHT; + } + else if (rightDelta > 0) + { + scrolldist = rightDelta; + scrolldir = LEFT; + } + } + else if (widgetlayout == VERTICAL) { if (topDelta > 0) { @@ -397,22 +421,19 @@ scrolldist = bottomDelta; scrolldir = DOWN; } - else if (leftDelta > 0) - { - scrolldist = leftDelta; - scrolldir = RIGHT; - } - else if (rightDelta > 0) - { - scrolldist = rightDelta; - scrolldir = LEFT; - } - scrollinterval = setInterval(scrollToWidgetAction, 30, params); - dist = 0; } + + var scrollInterval:uint = setInterval( + function():void + { + scrollToWidgetAction(scrollInterval); + }, + 30); + + dist = 0; } - private function scrollToWidgetAction(params:Array):void + private function scrollToWidgetAction(interval:uint):void { if (dist < scrolldist) { @@ -436,7 +457,7 @@ } else { - clearInterval(scrollinterval); + clearInterval(interval); } } diff --git a/src/widgets/supportClasses/ResultAttributes.as b/src/widgets/supportClasses/ResultAttributes.as index b0ba7b4..212ef3b 100644 --- a/src/widgets/supportClasses/ResultAttributes.as +++ b/src/widgets/supportClasses/ResultAttributes.as @@ -132,35 +132,41 @@ public class ResultAttributes } } - if (titleField && fieldName.toUpperCase() == titleField.toUpperCase()) + var upperCaseFieldName:String = fieldName.toUpperCase(); + if (titleField && upperCaseFieldName == titleField.toUpperCase()) { title = value; } - else if (linkField && fieldName.toUpperCase() == linkField.toUpperCase()) + else if (linkField && upperCaseFieldName == linkField.toUpperCase()) { link = value; linkAlias = linkAlias; } - else if (fieldName.toUpperCase() != "SHAPE_LENGTH" && fieldName.toUpperCase() != "SHAPE_AREA") + else { - var fieldLabel:String; - - if (fieldXML && fieldXML.@alias[0]) - { - fieldLabel = fieldXML.@alias[0]; - } - else + var isShapeMeasurementField:Boolean = (upperCaseFieldName == "SHAPE_LENGTH" || upperCaseFieldName == "SHAPE_AREA"); + var isUserDefinedField:Boolean = fields && fields.field.(@name == fieldName).length() > 0; + if (!isShapeMeasurementField || isUserDefinedField) { - fieldLabel = featureSet.fieldAliases[fieldName]; - } + var fieldLabel:String; - if (FlexGlobals.topLevelApplication.layoutDirection == LayoutDirection.RTL) - { - content += value + " :" + fieldLabel + "\n"; - } - else - { - content += fieldLabel + ": " + value + "\n"; + if (fieldXML && fieldXML.@alias[0]) + { + fieldLabel = fieldXML.@alias[0]; + } + else + { + fieldLabel = featureSet.fieldAliases[fieldName]; + } + + if (FlexGlobals.topLevelApplication.layoutDirection == LayoutDirection.RTL) + { + content += value + " :" + fieldLabel + "\n"; + } + else + { + content += fieldLabel + ": " + value + "\n"; + } } } }