示例#1
0
        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);
        }
示例#2
0
 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);
             }
         }
     }
 }