Select to view content in your preferred language

LayerTOC.mxml into ITitleWindow.mxml in custom web application

3058
11
01-24-2011 01:28 AM
francescodi_vito
Deactivated User
Hi guys
i have developed a custom we application! I have developed a ITitleWindow with method PopUp, so i can call a panel with a button click. Now i would like to insert in tih ITitleWindow a LayerTOC.mxml so i can open and close my services in this panel.
This thing can be done?......in the TitleWindow i have to put in the class Esri:Map and ArcgisDynamic service?
thanks
Tags (2)
0 Kudos
11 Replies
RobertScheitlin__GISP
MVP Emeritus
Francesco,

    Here is a example of what you need to do:

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow 
 xmlns="assets.*" 
 xmlns:mx="http://www.adobe.com/2006/mxml"
 xmlns:esri="http://www.esri.com/2008/ags"
    xmlns:samples="com.esri.ags.samples.*"
 width="320" 
 height="400"
 paddingLeft="10" 
 paddingRight="10" 
 paddingTop="10" 
 paddingBottom="10"
    x="0" 
    y="82" 
    title="Table of Contents" 
    dropShadowEnabled="true"
    dropShadowColor="Black"
    shadowDirection="right"
    shadowDistance="5"
    showCloseButton="true">
 
 <mx:Script>
        <![CDATA[
 
   import com.esri.ags.layers.ArcGISDynamicMapServiceLayer;
   import mx.controls.Alert;
   import com.esri.ags.samples.LayerTOC;
   import com.esri.ags.samples.LayerVizRenderer;
 
   [Bindable]
            public var layers:ArcGISDynamicMapServiceLayer;
 
  ]]>
    </mx:Script> 
               
 
 <samples:LayerTOC id="toc" layer="{layers}" width="280"/>
 
</mx:TitleWindow>
0 Kudos
francescodi_vito
Deactivated User
Thanks Robert, but in the tag layer={layer}, i put in the "id" of my Dynamic Service?
0 Kudos
RobertScheitlin__GISP
MVP Emeritus
Francesco,

   So when you call this component you pass in the layers var. Like this:

<?xml version="1.0" encoding="utf-8"?>

<mx:Application

    xmlns:mx="http://www.adobe.com/2006/mxml"

    xmlns:esri="http://www.esri.com/2008/ags"

    xmlns:samples="com.*" 
    
    xmlns:local="*" 
    
    layout="absolute">

 <mx:Script>
  <![CDATA[
   import mx.effects.Move;
   import mx.managers.PopUpManager;
   import flash.events.Event;
   
   private var dragPanel:TOCPanel;
   
   private function showDragWindow():void
   {
    //optional display effect
    var move : Move = new Move;
    move.xTo = 100;
    move.yTo = 150;
    if (dragPanel == null)
    {
     dragPanel = TOCPanel( PopUpManager.createPopUp(this, TOCPanel, false) );
     //listen for close event if youve enabled close button
     dragPanel.layers = myDynamicService;
     dragPanel.addEventListener( "close", dragPanel_close );
     PopUpManager.centerPopUp( dragPanel );
     move.play( [dragPanel] );
    }
    else
    {
     PopUpManager.addPopUp(dragPanel,this,false);
     dragPanel.layers = myDynamicService;
     dragPanel.visible = true;
     move.play( [dragPanel] );
    }
   }
   
   private function dragPanel_close(evt:Event):void
   {
    PopUpManager.removePopUp(dragPanel);
   }
  ]]>
 </mx:Script>
 <esri:Map>

        <esri:ArcGISDynamicMapServiceLayer

            id="myDynamicService"

            url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/{myURL.selectedItem}/MapServer"

            load="myDynamicService.defaultVisibleLayers(); showDragWindow();"/>

    </esri:Map>

 <mx:ComboBox id="myURL" selectedIndex="0" horizontalCenter="0">

        <mx:Array>

            <mx:String>Demographics/ESRI_Census_USA</mx:String>

            <mx:String>Demographics/ESRI_Population_World</mx:String>

            <mx:String>Specialty/ESRI_StateCityHighway_USA</mx:String>

            <mx:String>Specialty/ESRI_StatesCitiesRivers_USA</mx:String>

            <mx:String>Specialty/SuperTuesdaySample</mx:String>

            <mx:String>Louisville/LOJIC_LandRecords_Louisville</mx:String>

            <mx:String>Louisville/LOJIC_PublicSafety_Louisville</mx:String>

        </mx:Array>

    </mx:ComboBox>
    <mx:Button click="showDragWindow()" label="Show TOC" left="60"  />
</mx:Application>
0 Kudos
francescodi_vito
Deactivated User
ok. So if i want add in the titlewindow a Hslider for trasparency, i have to create in my application a new var for tag alpha?
Thanks
0 Kudos
RobertScheitlin__GISP
MVP Emeritus
Francesco,

   It is just this simple:

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow 
 xmlns="assets.*" 
 xmlns:mx="http://www.adobe.com/2006/mxml"
 xmlns:esri="http://www.esri.com/2008/ags"
    xmlns:samples="com.esri.ags.samples.*"
 width="320" 
 height="400"
 paddingLeft="10" 
 paddingRight="10" 
 paddingTop="10" 
 paddingBottom="10"
    x="0" 
    y="82" 
    title="Table of Contents" 
    dropShadowEnabled="true"
    dropShadowColor="Black"
    shadowDirection="right"
    shadowDistance="5"
    showCloseButton="true">
 
 <mx:Script>
        <![CDATA[
 
   import com.esri.ags.layers.ArcGISDynamicMapServiceLayer;
   import mx.controls.Alert;
   import com.esri.ags.samples.LayerTOC;
   import com.esri.ags.samples.LayerVizRenderer;
   
   import com.esri.ags.layers.Layer;
   import com.esri.ags.Map;    
 
   [Bindable]
            public var layers:ArcGISDynamicMapServiceLayer;
            
            private var _layer:Layer;
    
   //set layer alpha
         private function setLayerAlpha():void
         {
          layers.alpha = slider.value;
         }        
        
         private function sldrDataTipFormatter(value:Number):String 
      { 
       return int(value * 100) + "%"; 
      }
 
  ]]>
    </mx:Script> 
    
    <mx:VBox verticalGap="0" width="100%" paddingLeft="6" paddingRight="6" paddingBottom="3" paddingTop="3">
  <mx:HSlider id="slider" minimum="0" maximum="1" width="100%" change="setLayerAlpha()" 
   dataTipFormatFunction="sldrDataTipFormatter" liveDragging="true" value="{layers.alpha}"/>
 </mx:VBox>           
 
 <samples:LayerTOC id="toc" layer="{layers}" width="280"/>
 
</mx:TitleWindow>
0 Kudos
francescodi_vito
Deactivated User
Sorry Robert
but  in Title Window when i put in "layers" my id of Dynamic Service i have one error
0 Kudos
RobertScheitlin__GISP
MVP Emeritus
Francesco,

   If you look at the code it is not expecting an id it wants an actual ArcGISDynamicMapServiceLayer object.
0 Kudos
francescodi_vito
Deactivated User
aaah ok 🙂
I understand Robert
Thanks thanks
0 Kudos
francescodi_vito
Deactivated User
Robert but if a id is not expecting in this case i have to use one WMS with more layers. But if i want to put in Title window more layerTOC with one WMS for each is possible?
0 Kudos