public static DataRepositoryItem CreateRootDataRepositoryItem(DataRepositoryPlugin dataRepositoryPlugin) { DataRepositoryItem dataRepositoryItem = new DataRepositoryItem(); dataRepositoryItem.SourcePlugin = dataRepositoryPlugin; dataRepositoryItem.Name = dataRepositoryPlugin.Name; dataRepositoryItem.Icon = dataRepositoryPlugin.SmallIcon; var addDataCommand = new RelayCommand(() => { var dataItem = dataRepositoryPlugin.CreateDataRepositoryItem(); if (dataItem != null) { dataRepositoryItem.Children.Add(dataItem); GisEditor.InfrastructureManager.SaveSettings(GisEditor.DataRepositoryManager.GetPlugins()); } }); if (dataRepositoryPlugin.ContextMenu != null && dataRepositoryPlugin.ContextMenu.HasItems) { ((MenuItem)dataRepositoryPlugin.ContextMenu.Items[0]).Command = addDataCommand; } dataRepositoryItem.ContextMenu = dataRepositoryPlugin.ContextMenu; dataRepositoryItem.Content = dataRepositoryPlugin.Content; return(dataRepositoryItem); }
protected override void RefreshCore(GisEditorWpfMap currentMap, RefreshArgs refreshArgs) { if (refreshArgs is DataRepositoryUIRefreshArgs) { foreach (var dataRepositoryPlugin in ((DataRepositoryUIRefreshArgs)refreshArgs).RefreshPlugins) { Type type = dataRepositoryPlugin.GetType(); DataRepositoryPlugin resultDataRepositoryPlugin = GisEditor.DataRepositoryManager.GetActiveDataRepositoryPlugins().FirstOrDefault(d => d.GetType() == type); var treeViewItem = DataRepositoryContentViewModel.Current.Children.FirstOrDefault(t => t.SourcePlugin == resultDataRepositoryPlugin); treeViewItem.Children.Clear(); foreach (var dataRepositoryItem in resultDataRepositoryPlugin.RootDataRepositoryItem.Children) { treeViewItem.Children.Add(dataRepositoryItem); } } } }