Example #1
0
        /// <summary>
        /// Builds the layer details view model for the given workbook. Since rebuilding the reference frame dropdown makes call to
        /// WWT API, in case if WWT is not running, caller will send false as it's value to avoid addition delay in showing results.
        /// </summary>
        /// <param name="layerDetailsModel">LayerDetailsViewModel object getting build</param>
        /// <param name="currentWorkbook">Current workbook object</param>
        /// <param name="rebuildReferenceFrameDropDown">Whether to rebuild reference frame dropdown or not?</param>
        /// <returns>Build LayerDetailsViewModel object</returns>
        internal static LayerDetailsViewModel BuildLayerDetailsViewModel(this LayerDetailsViewModel layerDetailsModel, WorkbookMap currentWorkbook, bool rebuildReferenceFrameDropDown)
        {
            // This is for building view model from workbook map. This will be used in Initialize, open & create new range scenarios
            if (layerDetailsModel != null)
            {
                // Build the view model for the drop down based on the layer map details
                layerDetailsModel.Layers = new ObservableCollection <LayerMapDropDownViewModel>();
                if (currentWorkbook != null)
                {
                    // Rebuilds the layer view model dropdown
                    WorkflowController.Instance.RebuildGroupLayerDropdown();

                    if (rebuildReferenceFrameDropDown)
                    {
                        WorkflowController.Instance.BuildReferenceFrameDropDown();
                    }

                    // If the current workbook has a selected layer, set current layer property which well set all the layer properties
                    if (currentWorkbook.SelectedLayerMap != null)
                    {
                        layerDetailsModel.Currentlayer = currentWorkbook.SelectedLayerMap;
                    }
                    else
                    {
                        LayerMapDropDownViewModel selectedLayerMap = layerDetailsModel.Layers.Where(layer => layer.Name.Equals(Properties.Resources.DefaultSelectedLayerName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
                        if (selectedLayerMap != null)
                        {
                            layerDetailsModel.SelectedLayerText = selectedLayerMap.Name;
                        }
                        layerDetailsModel.Currentlayer      = null;
                        layerDetailsModel.IsHelpTextVisible = true;
                        layerDetailsModel.IsTabVisible      = false;
                    }
                }
                else
                {
                    layerDetailsModel.Layers.Add(new LayerMapDropDownViewModel()
                    {
                        Name = Properties.Resources.LocalLayerName
                    });
                    layerDetailsModel.Layers.Add(new LayerMapDropDownViewModel()
                    {
                        Name = Properties.Resources.WWTLayerName
                    });
                }
            }

            return(layerDetailsModel);
        }
        /// <summary>
        /// Rebuild group layer dropdown with the reference frame/
        /// layer group and layers
        /// </summary>
        internal void RebuildGroupLayerDropdown()
        {
            if (this.layerDetailsViewModel != null && this.currentWorkbookMap != null)
            {
                this.layerDetailsViewModel.Layers.Clear();

                // Add Select One as default
                LayerMapDropDownViewModel defaultLayerMapModel = new LayerMapDropDownViewModel();
                defaultLayerMapModel.Name = Resources.DefaultSelectedLayerName;
                defaultLayerMapModel.ID = "-1";
                this.layerDetailsViewModel.Layers.Add(defaultLayerMapModel);

                // Local group children for all local layers
                List<GroupChildren> localGroups = new List<GroupChildren>();
                LayerMapDropDownViewModel localLayerMapModel = new LayerMapDropDownViewModel();
                localLayerMapModel.Name = Properties.Resources.LocalLayerName;
                localLayerMapModel.ID = "0";
                this.currentWorkbookMap.LocalLayerMaps.ForEach(localLayer =>
                {
                    localGroups = localLayer.BuildGroupCollection(localGroups);
                });

                localGroups.ForEach(groupItem =>
                {
                    localLayerMapModel.GroupCollection.Add(groupItem);
                });
                this.layerDetailsViewModel.Layers.Add(localLayerMapModel);

                // WWT group children for all WWT layers
                LayerMapDropDownViewModel wwtLayerMapModel = new LayerMapDropDownViewModel();
                wwtLayerMapModel.Name = Properties.Resources.WWTLayerName;
                wwtLayerMapModel.ID = "1";
                List<GroupChildren> wwtGroups = new List<GroupChildren>();
                this.currentWorkbookMap.WWTLayerMaps.ForEach(wwtLayer =>
                {
                    wwtGroups = wwtLayer.BuildGroupCollection(wwtGroups);
                });

                wwtGroups.ForEach(groupItem =>
                {
                    wwtLayerMapModel.GroupCollection.Add(groupItem);
                });
                this.layerDetailsViewModel.Layers.Add(wwtLayerMapModel);
            }
        }
 /// <summary>
 /// Initializes a new instance of the LayerSelectionHandler class.
 /// </summary>
 /// <param name="layerMapDropDownViewModel">
 /// layerMapDropDownViewModel instance.
 /// </param>
 public LayerSelectionHandler(LayerMapDropDownViewModel layerMapDropDownViewModel)
 {
     this.parent = layerMapDropDownViewModel;
 }
 /// <summary>
 /// Initializes a new instance of the LayerSelectionHandler class.
 /// </summary>
 /// <param name="layerMapDropDownViewModel">
 /// layerMapDropDownViewModel instance.
 /// </param>
 public LayerSelectionHandler(LayerMapDropDownViewModel layerMapDropDownViewModel)
 {
     this.parent = layerMapDropDownViewModel;
 }
        public void LayerSelectionHandlerExecuteTest()
        {
            LayerDetailsViewModel layerDetailsViewModel = new LayerDetailsViewModel();
            layerDetailsViewModel.LayerSelectionChangedEvent += new EventHandler(LayerModelLayerSelectionChangedEvent);

            LayerMapDropDownViewModel layerMapDropDown = new LayerMapDropDownViewModel();
            layerMapDropDown.ID = "1";
            layerMapDropDown.Name = "Select One";

            Layer layer = new Layer();
            layer.Name = "Layer1";

            LayerMap layerMap = new LayerMap(layer);
            layerMap.MapType = LayerMapType.Local;
            layerMap.HeaderRowData = new Collection<string>();
            layerMap.MappedColumnType = new Collection<ColumnType>();
            layerDetailsViewModel.Currentlayer = layerMap;

            LayerDetailsViewModel_Accessor.LayerSelectionHandler target = new LayerDetailsViewModel_Accessor.LayerSelectionHandler(layerDetailsViewModel);
            target.Execute(layerMapDropDown);
            Assert.IsNull(layerDetailsViewModel.Currentlayer);
        }