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)); } }
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)); } }
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); }