protected override void OnInitialized() { base.OnInitialized(); var compositeMapNavigatorService = Container.Resolve <CompositeMapNavigatorService>(); compositeMapNavigatorService.RegisterItem("Cardio", MapItemBuilder. CreateDefaultBuilder("Cardio"). WithImagePackIcon(PackIconKind.Heart). WithChild(new Collection <MapItem> { compositeMapNavigatorService.RegisterItem("CardioSignal", MapItemBuilder. CreateDefaultBuilder("Signal"). WithToolBars(new[] { typeof(ToolBarView) }). WithView(typeof(Content1View)). WithImagePackIcon(PackIconKind.Signal)), compositeMapNavigatorService.RegisterItem("CardioAnalysis", MapItemBuilder. CreateDefaultBuilder("Analysis"). WithImagePackIcon(PackIconKind.Analog). WithExtraView(new Dictionary <string, IEnumerable <Type> > { { "PopupToolBarRegion", new[] { typeof(ToolView) } } }). WithView(typeof(Content2View))) })); }
public MapItem RegisterItem(string name, MapItemBuilder builder, string parentName = "") { if (!Application.Current.Dispatcher.CheckAccess()) { return(Application.Current.Dispatcher.Invoke(() => RegisterItem(name, builder, parentName))); } if (_itemsTagDictionary.ContainsKey(name)) { throw new ArgumentException(); } ObservableCollection <MapItem> observableCollection; if (parentName != string.Empty) { if (!_itemsTagDictionary.TryGetValue(parentName, out _selectedItem)) { throw new ArgumentException("ParentNotFound", nameof(parentName)); } if (_selectedItem is not CompositeMapItem item) { // decorate MapItem with CompositeMapItem var parentItem = new CompositeMapItem(_itemsTagDictionary[parentName]); // change old MapItem with new CompositeMapItem in TreeList _itemsTagDictionary[parentName] = parentItem; if (_rootItemList.Contains(_selectedItem)) { _rootItemList.Remove(_selectedItem); _rootItemList.Add(parentItem); } item = parentItem; } observableCollection = item.ChildList; } else { observableCollection = _rootItemList; } var mapItem = builder.Build(); _itemsTagDictionary.Add(name, mapItem); var viewType = mapItem.GetViewType(); if (viewType?.FullName != null) { _itemsViewDictionary.Add(viewType.FullName, mapItem); } observableCollection.Add(mapItem); if (mapItem is CompositeMapItem compositeItem) { foreach (var item in compositeItem.ChildList) { _rootItemList.Remove(item); } } return(mapItem); }
public static MapItemBuilder WithImageSvgPath(this MapItemBuilder mapItemBuilder, Path imageSvgPath) { if (mapItemBuilder.SetupActions.Keys.Contains(1)) { throw new NotSupportedException("Multiple Image for Map Item not Support"); } mapItemBuilder.SetupActions.Add(1, item => new HasImageSvgPathMapItem(item, imageSvgPath)); return(mapItemBuilder); }
public static MapItemBuilder WithImageUiFontPath(this MapItemBuilder mapItemBuilder, char character, FontFamily font) { if (mapItemBuilder.SetupActions.Keys.Contains(1)) { throw new NotSupportedException("Multiple Image for Map Item not Support"); } mapItemBuilder.SetupActions.Add(1, item => new HasImageUiFontMapItem(item, character, font)); return(mapItemBuilder); }
public static MapItemBuilder WithNavigationParameters(this MapItemBuilder mapItemBuilder, NavigationParameters navigationParameters) { if (mapItemBuilder.SetupActions.Keys.Contains(400)) { throw new Exception("This Set more than One time"); } mapItemBuilder.SetupActions.Add(400, item => new HasNavigationParameterMapItem(item, navigationParameters)); return(mapItemBuilder); }
public void OnInitialized(IContainerProvider containerProvider) { var compositeMapNavigatorService = containerProvider.Resolve <CompositeMapNavigatorService>(); if (!compositeMapNavigatorService.TryGetItemByName("Config", out _)) { compositeMapNavigatorService.RegisterItem("Config", MapItemBuilder .CreateDefaultBuilder("Config") .WithImagePackIcon(PackIconKind.BoxView)); } compositeMapNavigatorService.RegisterItem("Config\\GPS", MapItemBuilder .CreateDefaultBuilder("GPS") .WithImagePackIcon(PackIconKind.CrosshairsGps) .WithChild(new Collection <MapItem> { compositeMapNavigatorService.RegisterItem("Config\\GPS\\Map", MapItemBuilder .CreateDefaultBuilder("Map") .WithImagePackIcon(PackIconKind.MapMarker) .WithToolBars(new[] { typeof(GpsServiceToolBarView) }) .WithView(typeof(MapView)) .WithExtraView(new Dictionary <string, IEnumerable <Type> > { { "PopupToolBarRegion", new[] { typeof(CachedChannelView), typeof(NmeaView) } }, { "ToolsRegion", new[] { typeof(GpsConfigurationView) } } })), }), "Config" ); ImageLoader.HttpClient.DefaultRequestHeaders.Add("User-Agent", "XAML Map Control Test Application"); var defaultCacheFolder = TileImageLoader.DefaultCacheFolder; TileImageLoader.Cache = new ImageFileCache(defaultCacheFolder); }
public CompositeMapNavigatorService(IRegionManager regionManager, IContainerExtension container, IOptions <ContentNavigatorOptions> options) { _regionManager = regionManager; _container = container; _options = options; _rootItemList = new ObservableCollection <MapItem>(); RootItemList = new ReadOnlyObservableCollection <MapItem>(_rootItemList); _itemsViewDictionary = new Dictionary <string, MapItem>(); _itemsTagDictionary = new Dictionary <string, MapItem>(); ContentRegion = _regionManager.Regions.Where((region, i) => region.Name == ContentRegionName).FirstOrDefault(); ToolBarRegion = _regionManager.Regions.Where((region, i) => region.Name == ToolbarRegionName).FirstOrDefault(); if (ContentRegion != null) { ContentRegion.ActiveViews.CollectionChanged += ActiveViewsOnCollectionChanged; } if (options.Value.HasRoot) { RegisterItem("Root", MapItemBuilder.CreateDefaultBuilder(options.Value.RootDisplay).WithImagePackIcon(options.Value.RootPackIcon)); } }
public void OnInitialized(IContainerProvider containerProvider) { var compositeMapNavigatorService = containerProvider.Resolve <CompositeMapNavigatorService>(); if (!compositeMapNavigatorService.TryGetItemByName("Config", out var _)) { compositeMapNavigatorService.RegisterItem("Config", MapItemBuilder .CreateDefaultBuilder("Config") .WithImagePackIcon(PackIconKind.BoxView)); } compositeMapNavigatorService.RegisterItem("Config\\IMU", MapItemBuilder .CreateDefaultBuilder("IMU") .WithImagePackIcon(PackIconKind.Compass) .WithChild(new Collection <MapItem> { compositeMapNavigatorService.RegisterItem("Config\\IMU\\Diamond", MapItemBuilder .CreateDefaultBuilder("Diamond") .WithImagePackIcon(PackIconKind.Diamond) .WithToolBars(new[] { typeof(ImuServiceToolBarView) }) .WithView(typeof(DiamondView)) .WithExtraView(new Dictionary <string, IEnumerable <Type> > { { "PopupToolBarRegion", new[] { typeof(CachedChannelView), typeof(ImuView), } }, { "ToolsRegion", new[] { typeof(ImuConfigurationView) } } }) ), }) , "Config"); }
public static MapItemBuilder WithChild(this MapItemBuilder mapItemBuilder, Collection <MapItem> childItems) { mapItemBuilder.SetupActions.Add(3, item => new CompositeMapItem(item, childItems)); return(mapItemBuilder); }
public static MapItemBuilder WithExtraView(this MapItemBuilder mapItemBuilder, Dictionary <string, IEnumerable <Type> > viewTypesKeyedByRegion) { mapItemBuilder.SetupActions.Add(4, item => new HasExtraViewMapItem(item, viewTypesKeyedByRegion)); return(mapItemBuilder); }
public static MapItemBuilder WithToolBars(this MapItemBuilder mapItemBuilder, IEnumerable <Type> ToolBars) { mapItemBuilder.SetupActions.Add(5, item => new HasToolbarMapItem(item, ToolBars)); return(mapItemBuilder); }
public static MapItemBuilder WithView(this MapItemBuilder mapItemBuilder, Type viewType) { mapItemBuilder.SetupActions.Add(20, item => new HasViewMapItem(item, viewType)); return(mapItemBuilder); }