private void MoveRule(int offset)
{
TreeNode tnSelect = this.treeViewTemplate.SelectedNode;
TreeNode tnParent = tnSelect.Parent;
DocModelRule ruleSelect = (DocModelRule)tnSelect.Tag;
if (tnParent.Tag is DocModelRule)
{
DocModelRule ruleParent = (DocModelRule)tnParent.Tag;
int index = ruleParent.Rules.IndexOf(ruleSelect);
ruleParent.Rules.RemoveAt(index);
index += offset;
ruleParent.Rules.Insert(index, ruleSelect);
tnSelect.Remove();
tnParent.Nodes.Insert(index, tnSelect);
}
else if (tnParent.Tag is DocTemplateDefinition)
{
DocTemplateDefinition ruleParent = (DocTemplateDefinition)tnParent.Tag;
int index = ruleParent.Rules.IndexOf(ruleSelect);
ruleParent.Rules.RemoveAt(index);
index += offset;
ruleParent.Rules.Insert(index, ruleSelect);
tnSelect.Remove();
tnParent.Nodes.Insert(index, tnSelect);
}
this.treeViewTemplate.SelectedNode = tnSelect;
}