示例#1
0
        public override void Initialize(UFrameContainer container)
        {
            base.Initialize(container);

            container.AddNode <NoteNode, NoteNodeViewModel, NoteNodeDrawer>("Note");
            container.AddNode <ImageNode, ImageNodeViewModel, ImageNodeDrawer>("Image");

            foreach (var node in FilterExtensions.AllowedFilterNodes)
            {
                node.Value.Add(typeof(NoteNode));
                node.Value.Add(typeof(ImageNode));
            }
        }
示例#2
0
 public override void Initialize(UFrameContainer container)
 {
     base.Initialize(container);
  
     container.AddNode<NoteNode, NoteNodeViewModel, NoteNodeDrawer>("Note");
     container.AddNode<ImageNode, ImageNodeViewModel, ImageNodeDrawer>("Image");
     
     foreach (var node in FilterExtensions.AllowedFilterNodes)
     {
         node.Value.Add(typeof(NoteNode));       
         node.Value.Add(typeof(ImageNode));       
     }
 }
示例#3
0
    public override void Initialize(UFrameContainer container)
    {
#if DEBUG && UNITY_EDITOR
        //container.RegisterInstance<IToolbarCommand>(new PrintPlugins(), "Json");
#endif
        //container.RegisterInstance<IDiagramNodeCommand>(new SelectColorCommand(), "SelectColor");
        var pluginConfig = container
                           .AddItem <ShellNodeSectionsSlot>()
                           .AddItem <ShellNodeInputsSlot>()
                           .AddItem <ShellNodeOutputsSlot>()
                           .AddItem <TemplatePropertyReference>()
                           .AddItem <TemplateMethodReference>()
                           .AddItem <TemplateFieldReference>()
                           .AddItem <TemplateEventReference>()
                           .AddItem <ShellAcceptableReferenceType>()
                           .AddItem <ShellConnectableReferenceType>()
                           .AddTypeItem <ShellPropertySelectorItem>()
                           .AddGraph <PluginGraphData, ShellPluginNode>("Shell Plugin")
                           .Color(NodeColor.Green)

                           .HasSubNode <IShellNode>()
                           .HasSubNode <TypeReferenceNode>()
                           .HasSubNode <ShellNodeConfig>()
                           .HasSubNode <ScreenshotNode>()
#if UNITY_EDITOR
                           // .AddCodeTemplate<DocumentationTemplate>()
#endif
        ;
        // container.AddNode<ScreenshotNode, ScreenshotNodeViewModel, ScreenshotNodeDrawer>("Screenshot");
        container.AddWorkspaceConfig <ArchitectWorkspace>("Architect", "Create a uFrame Architect workspace for creating plugin graphs.")
        .WithGraph <PluginGraphData>("Plugin", "Creates a new plugin graph for creating node configurations.");
        var shellConfigurationNode =
            container.AddNode <ShellNodeConfig, ShellNodeConfigViewModel, ShellNodeConfigDrawer>("Node Config")
            .HasSubNode <ShellNodeConfig>()
            .HasSubNode <ScreenshotNode>()
            .HasSubNode <ShellTemplateConfigNode>()
        ;
        // shellConfigurationNode.AddFlag("Graph Type");

        container.AddNode <ShellTemplateConfigNode>("Code Template")
        .Color(NodeColor.Purple);


        RegisteredTemplateGeneratorsFactory.RegisterTemplate <ShellNodeConfig, ShellNodeConfigTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate <ShellNodeConfigSection, ShellNodeConfigReferenceSectionTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate <ShellNodeConfigSection, ShellNodeConfigChildItemTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate <ShellNodeConfig, ShellNodeAsGraphTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate <ShellPluginNode, ShellConfigPluginTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate <ShellNodeConfig, ShellNodeConfigViewModelTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate <ShellNodeConfig, ShellNodeConfigDrawerTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate <ShellTemplateConfigNode, ShellNodeConfigTemplateTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate <IShellSlotType, ShellSlotItemTemplate>();
#if UNITY_EDITOR
        if (GenerateDocumentation)
        {
            RegisteredTemplateGeneratorsFactory.RegisterTemplate <ShellPluginNode, DocumentationTemplate>();
            RegisteredTemplateGeneratorsFactory.RegisterTemplate <IDocumentable, DocumentationPageTemplate>();
        }
#endif


        container.Connectable <ShellNodeConfigSection, ShellNodeConfig>();
        container.Connectable <ShellNodeConfigSection, ShellNodeConfigSection>();
        container.Connectable <IShellNodeConfigItem, IShellNodeConfigItem>();
        container.Connectable <ShellNodeConfigOutput, ShellNodeConfigInput>();
        container.Connectable <ShellNodeConfigOutput, ShellNodeConfig>();
        container.Connectable <ShellNodeConfigOutput, ShellNodeConfigSection>();
        container.Connectable <ShellNodeConfig, ShellNodeConfigInput>();
        container.Connectable <ShellNodeConfig, ShellNodeConfigSection>();
        container.Connectable <IShellNodeConfigItem, ShellTemplateConfigNode>();

        container.Connectable <ShellNodeConfigSection, ShellNodeConfigInput>();

        container.Connectable <ShellNodeConfigSection, ShellNodeConfigSection>();
    }
        public override void Initialize(UFrameContainer container)
        {
            //
//#if UNITY_EDITOR
        
//            foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
//            {
//                InvertApplication.CachedAssemblies.Add(assembly);
//            }
//#endif
            var typeContainer = InvertGraphEditor.TypesContainer;
            // Drawers
            container.Register<DiagramViewModel,DiagramViewModel>();
            container.RegisterDrawer<PropertyFieldViewModel, PropertyFieldDrawer>();
            container.Register<SectionHeaderDrawer, SectionHeaderDrawer>();
            container.RegisterItemDrawer<GenericItemHeaderViewModel, GenericChildItemHeaderDrawer>();
             
            container.RegisterDrawer<InspectorViewModel, InspectorDrawer>();
            container.RegisterDrawer<SectionHeaderViewModel, SectionHeaderDrawer>();
            container.RegisterDrawer<ConnectorViewModel, ConnectorDrawer>();
            container.RegisterDrawer<ConnectionViewModel, ConnectionDrawer>();
            container.RegisterDrawer<InputOutputViewModel, SlotDrawer>();
            
            container.RegisterDrawer<DiagramViewModel, DiagramDrawer>();
            //typeContainer.AddItem<GenericSlot,InputOutputViewModel,SlotDrawer>();
            //typeContainer.AddItem<BaseClassReference, InputOutputViewModel, SlotDrawer>();

            container.RegisterInstance<IConnectionStrategy>(new InputOutputStrategy(),"InputOutputStrategy");
            //container.RegisterConnectable<GenericTypedChildItem, IClassTypeNode>();
            container.RegisterConnectable<GenericInheritableNode, GenericInheritableNode>();
            container.RegisterInstance<IConnectionStrategy>(new TypedItemConnectionStrategy(), "TypedConnectionStrategy");
            //container.RegisterInstance<IConnectionStrategy>(new RegisteredConnectionStrategy(),"RegisteredConnectablesStrategy");

            container.AddNode<EnumNode>("Enum")
                .AddCodeTemplate<EnumNode, EnumNodeGenerator>();
            container.AddItem<EnumChildItem>();

            typeContainer.RegisterInstance(new GraphTypeInfo() { Type = typeof(int), Group = "", Label = "int", IsPrimitive = true }, "int");
            typeContainer.RegisterInstance(new GraphTypeInfo() { Type = typeof(string), Group = "", Label = "string", IsPrimitive = true }, "string");
            typeContainer.RegisterInstance(new GraphTypeInfo() { Type = typeof(decimal), Group = "", Label = "decimal", IsPrimitive = true }, "decimal");
            typeContainer.RegisterInstance(new GraphTypeInfo() { Type = typeof(float), Group = "", Label = "float", IsPrimitive = true }, "float");
            typeContainer.RegisterInstance(new GraphTypeInfo() { Type = typeof(bool), Group = "", Label = "bool", IsPrimitive = true }, "bool");
            typeContainer.RegisterInstance(new GraphTypeInfo() { Type = typeof(char), Group = "", Label = "char", IsPrimitive = true }, "char");
            typeContainer.RegisterInstance(new GraphTypeInfo() { Type = typeof(DateTime), Group = "", Label = "date", IsPrimitive = true }, "date");
            typeContainer.RegisterInstance(new GraphTypeInfo() { Type = typeof(Vector2), Group = "", Label = "Vector2", IsPrimitive = true }, "Vector2");
            typeContainer.RegisterInstance(new GraphTypeInfo() { Type = typeof(Vector3), Group = "", Label = "Vector3", IsPrimitive = true }, "Vector3");
   
            container.Register<DesignerGeneratorFactory, RegisteredTemplateGeneratorsFactory>("TemplateGenerators");
            
#if UNITY_EDITOR        
            typeContainer.RegisterInstance(new GraphTypeInfo() { Type = typeof(Quaternion), Group = "", Label = "Quaternion", IsPrimitive = true }, "Quaternion");
            //container.Register<DesignerGeneratorFactory, Invert.uFrame.CodeGen.ClassNodeGenerators.SimpleClassNodeCodeFactory>("ClassNodeData");  

#endif
            // Register the container itself
            container.RegisterInstance<IUFrameContainer>(container);
            container.RegisterInstance<UFrameContainer>(container);

            container.AddNode<TypeReferenceNode, TypeReferenceNodeViewModel, TypeReferenceNodeDrawer>("Type Reference");
            container.AddNode<NoteNode, NoteNodeViewModel, NoteNodeDrawer>("Note");

            // TODO 2.0 Key-bindings
//            container.RegisterKeyBinding(new RenameCommand(), "Rename", KeyCode.F2);
//            container.RegisterKeyBinding(new SimpleEditorCommand<DiagramViewModel>((p) =>
//            {
//                p.DeselectAll();
//            }), "End All Editing", KeyCode.Return);
      
//            container.RegisterKeyBinding(new DeleteItemCommand(), "Delete Item", KeyCode.X, true);
//            container.RegisterKeyBinding(new DeleteCommand(), "Delete", KeyCode.Delete);
//#if UNITY_EDITOR
//            container.RegisterKeyBinding(new MoveUpCommand(), "Move Up", KeyCode.UpArrow);
//            container.RegisterKeyBinding(new MoveDownCommand(), "Move Down", KeyCode.DownArrow);
//#endif


//            container.RegisterKeyBinding(new SimpleEditorCommand<DiagramViewModel>((p) =>
//            {
//                InvertGraphEditor.Settings.ShowHelp = !InvertGraphEditor.Settings.ShowHelp;
//            }), "Show/Hide This Help", KeyCode.F1);
//#if DEBUG
//            container.RegisterKeyBinding(new SimpleEditorCommand<DiagramViewModel>((p) =>
//            {
//                InvertGraphEditor.Settings.ShowGraphDebug = !InvertGraphEditor.Settings.ShowGraphDebug;
//            }), "Show/Hide Debug", KeyCode.F3);
//#endif
//            container.RegisterKeyBinding(new SimpleEditorCommand<DiagramViewModel>((p) =>
//            {
//                var saveCommand = InvertApplication.Container.Resolve<IToolbarCommand>("Save");
//                InvertGraphEditor.ExecuteCommand(saveCommand);
//            }), "Save & Compile", KeyCode.S, true, true);

          
        }
    public override void Initialize(UFrameContainer container)
    {
#if DEBUG && UNITY_EDITOR
        //container.RegisterInstance<IToolbarCommand>(new PrintPlugins(), "Json");
      
#endif
	    //container.RegisterInstance<IDiagramNodeCommand>(new SelectColorCommand(), "SelectColor");
        var pluginConfig = container
            .AddItem<ShellNodeSectionsSlot>()
            .AddItem<ShellNodeInputsSlot>()
            .AddItem<ShellNodeOutputsSlot>()
            .AddItem<TemplatePropertyReference>()
            .AddItem<TemplateMethodReference>()
            .AddItem<TemplateFieldReference>()
            .AddItem<TemplateEventReference>()
            .AddItem<ShellAcceptableReferenceType>()
            .AddItem<ShellConnectableReferenceType>()
            .AddTypeItem<ShellPropertySelectorItem>()
            .AddGraph<PluginGraphData,ShellPluginNode>("Shell Plugin")
            .Color(NodeColor.Green)
           
            .HasSubNode<IShellNode>()
            .HasSubNode<TypeReferenceNode>()
            .HasSubNode<ShellNodeConfig>()
            .HasSubNode<ScreenshotNode>()
#if UNITY_EDITOR
	        // .AddCodeTemplate<DocumentationTemplate>()
#endif
            ;
       // container.AddNode<ScreenshotNode, ScreenshotNodeViewModel, ScreenshotNodeDrawer>("Screenshot");
        container.AddWorkspaceConfig<ArchitectWorkspace>("Architect","Create a uFrame Architect workspace for creating plugin graphs.")
            .WithGraph<PluginGraphData>("Plugin", "Creates a new plugin graph for creating node configurations.");
        var shellConfigurationNode =
            container.AddNode<ShellNodeConfig, ShellNodeConfigViewModel, ShellNodeConfigDrawer>("Node Config")
                .HasSubNode<ShellNodeConfig>()
                .HasSubNode<ScreenshotNode>()
                .HasSubNode<ShellTemplateConfigNode>()
            ;
       // shellConfigurationNode.AddFlag("Graph Type");

        container.AddNode<ShellTemplateConfigNode>("Code Template")
            .Color(NodeColor.Purple);
        
        
        RegisteredTemplateGeneratorsFactory.RegisterTemplate<ShellNodeConfig, ShellNodeConfigTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate<ShellNodeConfigSection, ShellNodeConfigReferenceSectionTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate<ShellNodeConfigSection, ShellNodeConfigChildItemTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate<ShellNodeConfig, ShellNodeAsGraphTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate<ShellPluginNode, ShellConfigPluginTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate<ShellNodeConfig, ShellNodeConfigViewModelTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate<ShellNodeConfig, ShellNodeConfigDrawerTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate<ShellTemplateConfigNode, ShellNodeConfigTemplateTemplate>();
        RegisteredTemplateGeneratorsFactory.RegisterTemplate<IShellSlotType, ShellSlotItemTemplate>();
#if UNITY_EDITOR
        if (GenerateDocumentation)
        {
            RegisteredTemplateGeneratorsFactory.RegisterTemplate<ShellPluginNode, DocumentationTemplate>();
            RegisteredTemplateGeneratorsFactory.RegisterTemplate<IDocumentable, DocumentationPageTemplate>();
        }
#endif
        

        container.Connectable<ShellNodeConfigSection, ShellNodeConfig>();
        container.Connectable<ShellNodeConfigSection, ShellNodeConfigSection>();
        container.Connectable<IShellNodeConfigItem, IShellNodeConfigItem>();
        container.Connectable<ShellNodeConfigOutput, ShellNodeConfigInput>();
        container.Connectable<ShellNodeConfigOutput, ShellNodeConfig>();
        container.Connectable<ShellNodeConfigOutput, ShellNodeConfigSection>();
        container.Connectable<ShellNodeConfig, ShellNodeConfigInput>();
        container.Connectable<ShellNodeConfig, ShellNodeConfigSection>();
        container.Connectable<IShellNodeConfigItem, ShellTemplateConfigNode>();

        container.Connectable<ShellNodeConfigSection, ShellNodeConfigInput>();
       
        container.Connectable<ShellNodeConfigSection, ShellNodeConfigSection>();
    }
        public override void Initialize(UFrameContainer container)
        {
            //
//#if UNITY_EDITOR

//            foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
//            {
//                InvertApplication.CachedAssemblies.Add(assembly);
//            }
//#endif
            var typeContainer = InvertGraphEditor.TypesContainer;

            // Drawers
            container.Register <DiagramViewModel, DiagramViewModel>();
            container.RegisterDrawer <PropertyFieldViewModel, PropertyFieldDrawer>();
            container.Register <SectionHeaderDrawer, SectionHeaderDrawer>();
            container.RegisterItemDrawer <GenericItemHeaderViewModel, GenericChildItemHeaderDrawer>();

            container.RegisterDrawer <InspectorViewModel, InspectorDrawer>();
            container.RegisterDrawer <SectionHeaderViewModel, SectionHeaderDrawer>();
            container.RegisterDrawer <ConnectorViewModel, ConnectorDrawer>();
            container.RegisterDrawer <ConnectionViewModel, ConnectionDrawer>();
            container.RegisterDrawer <InputOutputViewModel, SlotDrawer>();

            container.RegisterDrawer <DiagramViewModel, DiagramDrawer>();
            //typeContainer.AddItem<GenericSlot,InputOutputViewModel,SlotDrawer>();
            //typeContainer.AddItem<BaseClassReference, InputOutputViewModel, SlotDrawer>();

            // !! Keep TypedItemConnectionStrategy Before InputOutputStrategy to fix Type Connection Related Type problem
            container.RegisterInstance <IConnectionStrategy>(new TypedItemConnectionStrategy(), "TypedConnectionStrategy");
            container.RegisterInstance <IConnectionStrategy>(new InputOutputStrategy(), "InputOutputStrategy");
            container.RegisterConnectable <GenericInheritableNode, GenericInheritableNode>();
            //container.RegisterConnectable<GenericTypedChildItem, IClassTypeNode>();
            //container.RegisterInstance<IConnectionStrategy>(new RegisteredConnectionStrategy(),"RegisteredConnectablesStrategy");

            container.AddNode <EnumNode>("Enum").AddCodeTemplate <EnumNode, EnumNodeGenerator>();
            container.AddItem <EnumChildItem>();
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(byte), Group = "", Label = "byte", IsPrimitive = true
            }, "byte");
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(sbyte), Group = "", Label = "sbyte", IsPrimitive = true
            }, "sbyte");
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(int), Group = "", Label = "int", IsPrimitive = true
            }, "int");
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(uint), Group = "", Label = "uint", IsPrimitive = true
            }, "uint");
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(long), Group = "", Label = "long", IsPrimitive = true
            }, "long");
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(ulong), Group = "", Label = "ulong", IsPrimitive = true
            }, "ulong");
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(string), Group = "", Label = "string", IsPrimitive = true
            }, "string");
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(decimal), Group = "", Label = "decimal", IsPrimitive = true
            }, "decimal");
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(float), Group = "", Label = "float", IsPrimitive = true
            }, "float");
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(double), Group = "", Label = "double", IsPrimitive = true
            }, "double");
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(bool), Group = "", Label = "bool", IsPrimitive = true
            }, "bool");
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(char), Group = "", Label = "char", IsPrimitive = true
            }, "char");
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(DateTime), Group = "", Label = "date", IsPrimitive = true
            }, "date");
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(Vector2), Group = "", Label = "Vector2", IsPrimitive = true
            }, "Vector2");
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(Vector3), Group = "", Label = "Vector3", IsPrimitive = true
            }, "Vector3");

            container.Register <DesignerGeneratorFactory, RegisteredTemplateGeneratorsFactory>("TemplateGenerators");

#if UNITY_EDITOR
            typeContainer.RegisterInstance(new GraphTypeInfo()
            {
                Type = typeof(Quaternion), Group = "", Label = "Quaternion", IsPrimitive = true
            }, "Quaternion");
            //container.Register<DesignerGeneratorFactory, Invert.uFrame.CodeGen.ClassNodeGenerators.SimpleClassNodeCodeFactory>("ClassNodeData");
#endif
            // Register the container itself
            container.RegisterInstance <IUFrameContainer>(container);
            container.RegisterInstance <UFrameContainer>(container);

            container.AddNode <TypeReferenceNode, TypeReferenceNodeViewModel, TypeReferenceNodeDrawer>("Type Reference");
            container.AddNode <NoteNode, NoteNodeViewModel, NoteNodeDrawer>("Note");

            // TODO 2.0 Key-bindings
            //            container.RegisterKeyBinding(new RenameCommand(), "Rename", KeyCode.F2);
            //            container.RegisterKeyBinding(new SimpleEditorCommand<DiagramViewModel>((p) =>
            //            {
            //                p.DeselectAll();
            //            }), "End All Editing", KeyCode.Return);

            //            container.RegisterKeyBinding(new DeleteItemCommand(), "Delete Item", KeyCode.X, true);
            //            container.RegisterKeyBinding(new DeleteCommand(), "Delete", KeyCode.Delete);
//#if UNITY_EDITOR
//            container.RegisterKeyBinding(new MoveUpCommand(), "Move Up", KeyCode.UpArrow);
//            container.RegisterKeyBinding(new MoveDownCommand(), "Move Down", KeyCode.DownArrow);
//#endif


            //            container.RegisterKeyBinding(new SimpleEditorCommand<DiagramViewModel>((p) =>
            //            {
            //                InvertGraphEditor.Settings.ShowHelp = !InvertGraphEditor.Settings.ShowHelp;
            //            }), "Show/Hide This Help", KeyCode.F1);
            //#if DEBUG
            //            container.RegisterKeyBinding(new SimpleEditorCommand<DiagramViewModel>((p) =>
            //            {
            //                InvertGraphEditor.Settings.ShowGraphDebug = !InvertGraphEditor.Settings.ShowGraphDebug;
            //            }), "Show/Hide Debug", KeyCode.F3);
            //#endif
            //            container.RegisterKeyBinding(new SimpleEditorCommand<DiagramViewModel>((p) =>
            //            {
            //                var saveCommand = InvertApplication.Container.Resolve<IToolbarCommand>("Save");
            //                InvertGraphEditor.ExecuteCommand(saveCommand);
            //            }), "Save & Compile", KeyCode.S, true, true);
        }