Beispiel #1
0
        internal void SaveTo(StructuredText node)
        {
            node.Clear();
            foreach (PreferenceItemBase t in _children)
            {
                PreferenceFolder      ch_folder = t as PreferenceFolder;
                PreferenceFolderArray ch_array  = t as PreferenceFolderArray;
                PreferenceItem        ch_item   = t as PreferenceItem;
                PreferenceLooseNode   ch_loose  = t as PreferenceLooseNode;

                if (ch_folder != null)
                {
                    StructuredText ch = node.AddChild(ch_folder.Id);
                    ch_folder.SaveTo(ch);
                }
                else if (ch_item != null)                //item
                {
                    if (ch_item.IsChanged)               //デフォルト値と変わっていた場合のみ記録
                    {
                        node.Set(ch_item.Id, ch_item.FormatValue());
                    }
                }
                else if (ch_array != null)                // array
                {
                    ch_array.SaveTo(node);
                }
                else if (ch_loose != null)
                {
                    ch_loose.SaveTo(node.AddChild(ch_loose.Id));
                }
            }
        }