public static bool CreateNodeHandler (CreateTagFormData data)
        {
            CreateNodeForm form = new CreateNodeForm(data.TagType, data.HasName);
            form.InvalidNames.AddRange(data.RestrictedNames);

            if (form.ShowDialog() == DialogResult.OK) {
                data.TagNode = form.TagNode;
                data.TagName = form.TagName;
                return true;
            }
            else
                return false;
        }
        public override bool CreateNode (TagType type)
        {
            if (!CanCreateTag(type))
                return false;

            if (FormRegistry.CreateNode != null) {
                CreateTagFormData data = new CreateTagFormData() {
                    TagType = type, HasName = true,
                };
                data.RestrictedNames.AddRange(_container.TagNamesInUse);

                if (FormRegistry.CreateNode(data)) {
                    AddTag(data.TagNode, data.TagName);
                    return true;
                }
            }

            return false;
        }