in Tools/UIRecorder/UIRecorder/MainWindow.xaml.cs [774:821]
private void EditAttribute_Click(object sender, RoutedEventArgs e)
{
AppInsights.LogEvent("EditAttribute_Click");
var uiTreeNode = treeUiPath.SelectedItem as UiTreeNode;
if (uiTreeNode == null)
{
return;
}
RecordedUiTask leafUiTask = uiTreeNode.UiTask;
if (leafUiTask == null)
{
if (treeUiPath.Items != null && treeUiPath.Items.Count > 0)
{
var x = (TreeViewItem)treeUiPath.ItemContainerGenerator.ContainerFromItem(treeUiPath.Items[0]);
if (x != null)
{
TreeViewItem tvi = UiTreeNode2TreeViewItem(x, UiTreeNode.s_uiTreeNodes.First(), uiTreeNode);
if (tvi != null)
{
leafUiTask = GetExpandedLeafNode(tvi, uiTreeNode, selectedTreeViewItem);
if (leafUiTask == null)
{
leafUiTask = GetExpandedLeafNode(tvi, uiTreeNode, null);
selectedTreeViewItem = leafUiTask;
}
}
}
}
}
if (leafUiTask == null)
{
return;
}
string oldNodePath = uiTreeNode.NodePath;
var winEditAttr = new WindowEditNodeAttribute(uiTreeNode);
if (true == winEditAttr.ShowDialog())
{
var xpath = leafUiTask.GetXPath(false).Replace(oldNodePath, uiTreeNode.NodePath);
var tr = new TextRange(rtbXPath.Document.ContentStart, rtbXPath.Document.ContentEnd);
tr.Text = leafUiTask.UpdateXPath(xpath);
}
}