private void NodeControl_KeyUp(object sender, KeyEventArgs e)
{
e.Handled = true;
if (App.UserStyle == UserStyle.Reader) return;
switch (e.Key)
{
case Key.Delete:
ParentSurface.Selector.DeleteNodes(this);
ParentSurface.Focus();
break;
case Key.C:
if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
{
if (ParentSurface.Selector.IsMultiSelect)
{
ParentSurface.Selector.Copy();
}
else
{
Copy();
}
}
else if (!ParentSurface.Selector.IsMultiSelect && (Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift)
{
var location = Centre;
location.X += 200;
IoC.GetInstance<ISuperGraphNodeFactory>().AddLinkedNode("CompendiumConNode", location, ViewModelNode);
}
break;
case Key.X:
if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
{
if (ParentSurface.Selector.IsMultiSelect)
{
ParentSurface.Selector.Cut();
}
else
{
CutNode();
}
}
break;
case Key.P:
if (!ParentSurface.Selector.IsMultiSelect && (Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift)
{
var location = Centre;
location.X += GlymaParameters.NodeTextWidth + GlymaParameters.Margin * 2;
IoC.GetInstance<ISuperGraphNodeFactory>().AddLinkedNode("CompendiumProNode", location, ViewModelNode);
}
break;
case Key.M:
if (!ParentSurface.Selector.IsMultiSelect && (Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift)
{
var location = Centre;
location.X += GlymaParameters.NodeTextWidth + GlymaParameters.Margin * 2;
IoC.GetInstance<ISuperGraphNodeFactory>().AddLinkedNode("CompendiumMapNode", location, ViewModelNode);
}
break;
case Key.I:
if (!ParentSurface.Selector.IsMultiSelect && (Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift)
{
var location = Centre;
location.X += GlymaParameters.NodeTextWidth + GlymaParameters.Margin * 2;
IoC.GetInstance<ISuperGraphNodeFactory>().AddLinkedNode("CompendiumIdeaNode", location, ViewModelNode);
}
break;
case Key.Q:
if (!ParentSurface.Selector.IsMultiSelect && (Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift)
{
var location = Centre;
location.X += GlymaParameters.NodeTextWidth + GlymaParameters.Margin * 2;
IoC.GetInstance<ISuperGraphNodeFactory>().AddLinkedNode("CompendiumQuestionNode", location, ViewModelNode);
}
break;
case Key.N:
if (!ParentSurface.Selector.IsMultiSelect && (Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift)
{
var location = Centre;
location.X += GlymaParameters.NodeTextWidth + GlymaParameters.Margin * 2;
IoC.GetInstance<ISuperGraphNodeFactory>().AddLinkedNode("CompendiumNoteNode", location, ViewModelNode);
}
break;
case Key.D:
if (!ParentSurface.Selector.IsMultiSelect && (Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift)
{
var location = Centre;
location.X += GlymaParameters.NodeTextWidth + GlymaParameters.Margin * 2;
IoC.GetInstance<ISuperGraphNodeFactory>().AddLinkedNode("CompendiumDecisionNode", location, ViewModelNode);
}
break;
}
}