public MergeSolutionsForm( NodeDifference differenceInSourceBranch, NodeDifference differenceInDestinationBranch, Conflict conflict, OperationTypeConflictResolver operationTypeConflictResolver, ValueConflictResolver valueConflictResolver) { InitializeComponent(); FormPosition.LoadFromRegistry(this); m_differencesInSourceBranchControl.Data = differenceInSourceBranch; m_differencesInDestinationBranchControl.Data = differenceInDestinationBranch; m_conflict = conflict as NodeConflict; m_operationTypeConflictResolver = operationTypeConflictResolver; m_valueConflictResolver = valueConflictResolver; if (m_conflict.Subconflicts.Count == 0) { m_result = (NodeDifference)m_conflict.Resolve(m_operationTypeConflictResolver, m_valueConflictResolver); } else { m_result = null; } UpdateUI(); }
private void FillConflictNode(TreeNode node, Conflict conflict) { node.Tag = conflict; NodeConflict nodeConflict = conflict as NodeConflict; if (nodeConflict != null) { if (nodeConflict.AcceptedSubdifferences.Count > 0) { TreeNode acceptedNode = node.Nodes.Add("Accepted Differences"); foreach (Difference subdifference in nodeConflict.AcceptedSubdifferences) { TreeNode subnode = acceptedNode.Nodes.Add(subdifference.ToString()); FillDifferenceNode(subnode, subdifference); } } TreeNode conflictNode = node.Nodes.Add("Conflicts"); foreach (Conflict subconflict in nodeConflict.Subconflicts) { TreeNode subnode = conflictNode.Nodes.Add(subconflict.ToString()); FillConflictNode(subnode, subconflict); } } }