public override void Loaded(UFrameContainer container) { base.Loaded(container); MVVM.HasSubNode <ServiceNode>(); MVVM.HasSubNode <SimpleClassNode>(); MVVM.HasSubNode <TypeReferenceNode>(); MVVM.Name = "MVVM Kernel Graph"; ComputedProperty.Name = "Computed Property"; Subsystem.HasSubNode <TypeReferenceNode>(); Element.HasSubNode <TypeReferenceNode>(); Subsystem.HasSubNode <EnumNode>(); Element.HasSubNode <EnumNode>(); Service.HasSubNode <EnumNode>(); Service.HasSubNode <SimpleClassNode>(); Service.HasSubNode <TypeReferenceNode>(); SceneType.Name = "Scene Type"; Subsystem.Name = "Sub System"; Service.Name = "Service"; ViewComponent.Name = "View Component"; StateMachine.Name = "State Machine"; BindingTypes = InvertGraphEditor.Container.Instances.Where(p => p.Key.Item1 == typeof(uFrameBindingType)).ToArray(); container.AddItemFlag <CommandsChildItem>("Publish", Color.green); container.RegisterConnectable <PropertiesChildItem, ComputedPropertyNode>();// container.Connectable<PropertiesChildItem, ComputedPropertyNode>(); }
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 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); }