private void buttonCreateNode_Click(object sender, RoutedEventArgs e)
 {
     CreateStoryNodeWindow createWindow = new CreateStoryNodeWindow();
     createWindow.Owner = this.Window;
     bool? dr = createWindow.ShowDialog();
     if (!dr.HasValue || !dr.Value)
     {
         return;
     }
     this.Controller.createNode(createWindow.SelectedNodeType);
 }
        private void buttonInsertNextNode_Click(object sender, RoutedEventArgs e)
        {
            bool? dr;
            CreateOrSelectStoryNodeWindow createOrSelectWindow = new CreateOrSelectStoryNodeWindow();
            createOrSelectWindow.Owner = this.Window;
            dr = createOrSelectWindow.ShowDialog();
            if (!dr.HasValue || !dr.Value)
            {
                return;
            }
            if (createOrSelectWindow.IsCreate)
            {
                CreateStoryNodeWindow createWindow = new CreateStoryNodeWindow();
                createWindow.Owner = this.Window;
                dr = createWindow.ShowDialog();
                if (!dr.HasValue || !dr.Value)
                {
                    return;
                }
                Controller.createNextNode(createWindow.SelectedNodeType);
                return;
            }
            if (createOrSelectWindow.IsSelect)
            {
                SelectStoryNodeWindow selectWindow = new SelectStoryNodeWindow();
                selectWindow.Owner = this.Window;
                selectWindow.Controller.CurrentStory = this.Controller.CurrentStory;
                dr = selectWindow.ShowDialog();
                if (!dr.HasValue || !dr.Value)
                {
                    return;
                }

                this.Controller.selectNextNode(selectWindow.Controller.CurrentStory.Nodes[selectWindow.Controller.CurrentNodeIndex]);

                return;
            }
        }