/// <summary> /// 指定した巡回設定を読み込みます /// </summary> /// <param name="table">指定する設定</param> public void Set(IPatrolTable source) { BeginUpdate(); foreach (GenreFolder folder in source) { TreeNode folderNode = new TreeNode(folder.Name) { Tag = folder, Name = folder.Name, ImageIndex = PatrolPatternsEditForm.FolderImageIndex, SelectedImageIndex = PatrolPatternsEditForm.FolderImageIndex }; foreach (PatrolPattern child in folder) { PatrolPatternEditControl patternControl = new PatrolPatternEditControl(child); patternControl.PatternNameChanged += new EventHandler<PatrolPatternNameChangedEventArgs>(patternControl_PatternNameChanged); TreeNode childNode = new TreeNode(child.Name) { Name = child.Name, Tag = patternControl, ImageIndex = PatrolPatternsEditForm.PatternImageIndex, SelectedImageIndex = PatrolPatternsEditForm.PatternImageIndex }; folderNode.Nodes.Add(childNode); } Nodes.Add(folderNode); } EndUpdate(); }
/// <summary> /// 現在の状態を取得します /// </summary> /// <param name="table">反映させる設定</param> public bool Get(IPatrolTable destination) { bool retry = false; List<GenreFolder> folders = new List<GenreFolder>(); foreach (TreeNode folderNode in Nodes) { GenreFolder folder = (GenreFolder)folderNode.Tag; folder.Clear(); foreach (TreeNode patternNode in folderNode.Nodes) { PatrolPatternEditControl patternControl = (PatrolPatternEditControl)patternNode.Tag; PatrolPattern pattern = patternControl.GetInitializedCurrentPattern(folder); if (pattern != null) { folder.Add(pattern); } else if (MessageBox.Show("設定項目を入力しなおしますか?\nここで無視した設定は保存されません", "確認", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { retry = true; return retry; } } folders.Add(folder); } destination.Clear(); foreach (GenreFolder folder in folders) { destination.Add(folder); } return retry; }