private void DeleteTypeDataFromOwner(TypeDataOwnerInfo ownerInfo)
        {
            DatabaseCommand command = null;

            switch (_type)
            {
            case "trait":
                command = new DeleteTraitFromOwnerCommand(ownerInfo.ObjectID.Value);
                break;

            case "note":
                command = new DeleteNoteFromOwnerCommand(ownerInfo.ObjectID.Value);
                break;

            default:
                throw new NotImplementedException("Deleting type data for type: " + _type + " is currently unsupported!");
            }

            if (command != null)
            {
                var model = lvwValues.ItemsSource as ObservableCollection <TypeDataOwnerInfo>;
                if (model != null)
                {
                    model.Remove(ownerInfo);
                    RegisterPendingChange(command);
                }
            }
        }
        private void EditOwner(TypeDataOwnerInfo ownerInfo)
        {
            var ep = EntryPoint.Parse(ownerInfo.EntryPoint);

            LookupType?type     = null;
            int        objectId = -1;

            foreach (KeyValuePair <string, LookupType> mapping in _typeMappings)
            {
                if (ep.HasParameter(mapping.Key))
                {
                    type     = mapping.Value;
                    objectId = Int32.Parse(ep[mapping.Key]);
                    break;
                }
            }

            if (type.HasValue && objectId >= 0)
            {
                PluginManager.Instance.EditLookupObject(type.Value, objectId);
            }
            else
            {
                MessageBox.Show(String.Format("Can't edit object! Owner call: {0} Owner Name: {1}, OwnerID={2}, EntryPoint={3}", ownerInfo.OwnerCall, ownerInfo.OwnerName, ownerInfo.OwnerID, ownerInfo.EntryPoint));
            }
        }