/// <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; }
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); }