/// <summary> /// Default Constructor. /// </summary> /// <param name="passedFileInfo"></param> /// <param name="passedDirectoryInfo"></param> /// <param name="passedTreeView"></param> /// <param name="passedListView"></param> /// <param name="passedHEImageList"></param> public DocumentWorkspace(FileInfo passedFileInfo, DirectoryInfo passedDirectoryInfo, TreeView passedTreeView, ListView passedListView, EmbeddedImages_ImageList passedHEImageList) { // Initialise the GameData, SolarSystem and SearchHandler objects. if (passedFileInfo == null || passedDirectoryInfo == null || !passedFileInfo.Exists || !passedDirectoryInfo.Exists) throw new InvalidOperationException("DocumentWorkspace Constructor: A problem occurred with a passed parameter - something doesn't exist."); else { // Create the core objects. GameData = new GameData(passedFileInfo, passedDirectoryInfo); SolarSystem = new SolarSystem(GameData); SearchHandler = new SearchHandler(GameData, SolarSystem); // Add the parameters related to the MainForm controls. _mainFormTreeView = passedTreeView ?? throw new NullReferenceException("passedTreeView was null."); _mainFormListView = passedListView ?? throw new NullReferenceException("passedListView was null."); _mainProgramHEImageList = passedHEImageList ?? throw new NullReferenceException("passedHEImageList was null."); InitialiseTreeView(_mainFormTreeView, _mainProgramHEImageList.IconImageList); InitialiseListView(_mainFormListView, _mainProgramHEImageList.IconImageList); IsWorkspaceReady = true; } }
/// <summary> /// Normal Constructor. /// </summary> /// <param name="passedSourceNode"></param> /// <param name="imageList"></param> public JsonDataViewForm(Json_TN passedSourceNode, EmbeddedImages_ImageList imageList) : this() { // Store a reference to the ImageList _imageList = imageList ?? throw new NullReferenceException("passed ImageList was null."); SourceNode = passedSourceNode ?? throw new NullReferenceException("passedSourceNode was null."); _formTitleText = passedSourceNode.FullPath; Text = _formTitleText; _appliedText = SourceNode.JData.ToString(); // Find the parent Json_File. Json_File parentFile = HellionExplorerProgram.docCurrent?.GameData.FindOwningFile(SourceNode); if (parentFile == HellionExplorerProgram.docCurrent.GameData.SaveFile) { fastColoredTextBox1.ReadOnly = false; toolStripReadOnlyStatus.Visible = false; deserialiseAsYouTypeToolStripMenuItem.Checked = true; deserialiseAsYouTypeToolStripMenuItem.Enabled = true; applyChangesToolStripMenuItem.Enabled = true; } else { fastColoredTextBox1.ReadOnly = true; deserialiseAsYouTypeToolStripMenuItem.Checked = false; deserialiseAsYouTypeToolStripMenuItem.Enabled = false; toolStripReadOnlyStatus.Visible = true; applyChangesToolStripMenuItem.Enabled = true; } // Character length limit - this is a guessed figure! if (_appliedText.Length > 25000) { deserialiseAsYouTypeToolStripMenuItem.Checked = false; } // Apply the text. fastColoredTextBox1.Text = _appliedText; // Required as setting the FastColouredTextBox triggers the _isDirty IsDirty = false; }