コード例 #1
0
        public void FromTreeText_行頭がピリオド()
        {
            string lineFeed = Environment.NewLine;
            var    text     = lineFeed + lineFeed +
                              ". .ノード1のタイトル" + lineFeed +
                              " .ノード1の本文" + lineFeed +
                              "ノード1の本文" + lineFeed +
                              " .ノード1の本文" + lineFeed +
                              ".. .ノード1-1のタイトル" + lineFeed +
                              " .ノード1-1の本文" + lineFeed +
                              ". ..ノード2のタイトル" + lineFeed +
                              " ..ノード2の本文";
            QuartetEditorDescription result;

            NodeConverterUtility.FromTreeText(text, '.', out result);

            Assert.AreEqual(2, result.Node.Count);

            Assert.AreEqual(".ノード1のタイトル", result.Node[0].Name);
            Assert.AreEqual(
                ".ノード1の本文" + lineFeed +
                "ノード1の本文" + lineFeed +
                ".ノード1の本文",
                result.Node[0].Content);
            Assert.AreEqual(1, result.Node[0].Children.Count);

            Assert.AreEqual(".ノード1-1のタイトル", result.Node[0].Children[0].Name);
            Assert.AreEqual(".ノード1-1の本文", result.Node[0].Children[0].Content);
            Assert.AreEqual(0, result.Node[0].Children[0].Children.Count);

            Assert.AreEqual("..ノード2のタイトル", result.Node[1].Name);
            Assert.AreEqual("..ノード2の本文", result.Node[1].Content);
            Assert.AreEqual(0, result.Node[1].Children.Count);
        }
コード例 #2
0
        public void FromTreeText_タイトルだけで終わり改行がない()
        {
            string lineFeed = Environment.NewLine;
            var    text     = ".ノード1のタイトル";
            QuartetEditorDescription result;

            NodeConverterUtility.FromTreeText(text, '.', out result);

            Assert.AreEqual(1, result.Node.Count);
            Assert.AreEqual("ノード1のタイトル", result.Node[0].Name);
            Assert.AreEqual("", result.Node[0].Content);
            Assert.AreEqual(0, result.Node[0].Children.Count);
        }
コード例 #3
0
        /// <summary>
        /// ファイルの読み込みを行います
        /// </summary>
        /// <param name="path"></param>
        public void Load(string path)
        {
            if (File.Exists(path))
            {
                if (this.IsEdited)
                {
                    this.OpenNewProcess(path);
                    return;
                }

                FileType?fileType = null;
                try
                {
                    QuartetEditorDescription model;
                    if (FileUtility.LoadJsonObject(path, out model) == true)
                    {
                        // QEDファイルとして読み込み成功
                        fileType = FileType.QEDocument;
                    }

                    if (!fileType.HasValue)
                    {
                        string treeText;
                        var    header = ConfigManager.Current.Config.TreeTextCharacters;
                        if (FileUtility.LoadTextByAnyEncoding(path, out treeText) == true &&
                            NodeConverterUtility.FromTreeText(treeText, header.First(), out model) == true)
                        {
                            // 階層付きテキストファイルとして読み込み成功
                            fileType = FileType.TreeText;
                        }
                    }

                    if (fileType.HasValue)
                    {
                        // 失敗していない場合、QuartetEditorDescriptionをNodeとして設定
                        this.Content.Load(model);
                        this.IsEdited = false;
                        this.FilePath = path;
                        this.Type     = fileType.Value;
                    }
                }
                catch
                {
                }

                if (!fileType.HasValue)
                {
                    this._ShowErrorMessageRequest.OnNext("ファイルの読み込みに失敗しました。");
                }
            }
        }
コード例 #4
0
        public void FromTreeText_改行コードがLF()
        {
            string lineFeed = "\n";
            var    text     = lineFeed + lineFeed +
                              ".ノード1のタイトル" + lineFeed +
                              "ノード1の本文" + lineFeed + "ノード1の本文" + lineFeed + lineFeed +
                              ".ノード2のタイトル" + lineFeed +
                              "ノード2の本文" + lineFeed + "ノード2の本文";
            QuartetEditorDescription result;

            NodeConverterUtility.FromTreeText(text, '.', out result);

            Assert.AreEqual(2, result.Node.Count);
            Assert.AreEqual("ノード1のタイトル", result.Node[0].Name);
            Assert.AreEqual("ノード1の本文" + Environment.NewLine + "ノード1の本文" + Environment.NewLine, result.Node[0].Content);
            Assert.AreEqual(0, result.Node[0].Children.Count);

            Assert.AreEqual("ノード2のタイトル", result.Node[1].Name);
            Assert.AreEqual("ノード2の本文" + Environment.NewLine + "ノード2の本文", result.Node[1].Content);
            Assert.AreEqual(0, result.Node[1].Children.Count);
        }