Пример #1
0
        public void OpenFile(string filePath, bool reset = true)
        {
            if (reset)
            {
                Reset();
            }

            // Determine current configuration
            ConfigurationList.Instance.DetermineCurrentConfiguration(filePath);

            // Create the node
            var node = DataNodeFactory.Create(filePath);

            // Wrap the node and add it to the tree view
            var wrappedNode = new DataTreeNode(node);

            mTreeView.Nodes.Add(wrappedNode);

            // Restore menu items
            mSaveToolStripMenuItem.Enabled   = true;
            mSaveAsToolStripMenuItem.Enabled = true;
            mCloseToolStripMenuItem.Enabled  = true;

            // Update the title to have the name of node
            Text = $"Miku Miku Model - {node.Name}";

            // Update the file path for the save method
            mCurrentlyOpenFilePath = filePath;

            // Expand the node
            // TODO: Expanding a large farc archive will lock up the program
            wrappedNode.Expand();
        }
        public DataNodeTabViewModel(EditorEnvironment editorEnvironment) : base("DataNodes", editorEnvironment)
        {
            var nodeFactory = new DataNodeFactory(editorEnvironment);

            var comboBoxValues = new List <string> {
                "Test", "A", "42"
            };

            nodeFactory.ComboBoxValueProviders["TestSelection"] = new ComboBoxValueProvider(() => comboBoxValues);

            editorEnvironment.NodeFactory = nodeFactory;

            EditorViewModel = new TreeEditorViewModel(editorEnvironment);

            EditorViewModel.AddDefaultCommands();
            EditorViewModel.AddDefaultContextMenuCommands();

            var catalogTypes = new List <Type> {
                typeof(SubData)
            };

            EditorViewModel.CatalogItems.AddItems(NodeCatalogItem.CreateItemsForTypes(catalogTypes));

            EditorViewModel.ContextMenuCommands.Add(Commands.ContextMenuCommand.Seperator);
            EditorViewModel.ContextMenuCommands.Add(new Commands.ContextMenuCommand("TestDataNodeWriteRead", TestDataNodeWriteRead));
            EditorViewModel.ContextMenuCommands.Add(new Commands.ContextMenuCommand("WriteToFile", WriteToFile));
            EditorViewModel.ContextMenuCommands.Add(new Commands.ContextMenuCommand("ReadFromFile", ReadFromFile));
            EditorViewModel.ContextMenuCommands.Add(Commands.ContextMenuCommand.Seperator);

            var dialogRootNode = nodeFactory.CreateDataNode(typeof(RootData));

            EditorViewModel.AddRootNode(dialogRootNode);
        }
Пример #3
0
        protected override void OnDragDrop(DragEventArgs drgevent)
        {
            string[] filePaths = (string[])drgevent.Data.GetData(DataFormats.FileDrop, false);

            if (filePaths.Length >= 1 && !AskForSavingChanges())
            {
                string filePath = filePaths[0];

                // just a quick test
                bool isDirectory = false; // System.IO.Directory.Exists(filePath);

                if (isDirectory)
                {
                    foreach (var file in System.IO.Directory.GetFiles(filePath, "*.*", System.IO.SearchOption.AllDirectories))
                    {
                        mTreeView.Nodes.Add(new DataTreeNode(DataNodeFactory.Create(file)));
                    }
                }
                else
                {
                    OpenFile(filePath);
                }
            }

            base.OnDragDrop(drgevent);
        }
Пример #4
0
 protected override void OnInitializeView()
 {
     for (var i = 0; i < Data.Count; i++)
     {
         var item = Data[i];
         AddNode(DataNodeFactory.Create(mGetItemNameDelegate(i, item), item));
     }
 }
Пример #5
0
        private void MOpenToolStripMenuItem_Click(object sender, System.EventArgs e)
        {
            using (var dlg = new OpenFileDialog())
            {
                if (dlg.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                var modelPackNode = DataNodeFactory.Create(Path.GetFileName(dlg.FileName), new ModelPack(dlg.FileName));
                mDataTreeView.TopNode = new DataTreeNode(modelPackNode);
            }
        }