// Start is called before the first frame update void Start() { var container = new UFrameContainer(); container.RegisterInstance(container); container.Register <IPlayer, Player>(); container.Resolve <IPlayer>().Run(); var player1 = container.Resolve <IPlayer>(); var player2 = container.Resolve <IPlayer>(); Debug.Log(player1.GetHashCode()); Debug.Log(player2.GetHashCode()); container.RegisterInstance <IPlayer>(new Player()); var player3 = container.Resolve <IPlayer>(); var player4 = container.Resolve <IPlayer>(); Debug.Log(player3.GetHashCode()); Debug.Log(player4.GetHashCode()); Debug.Log(container.Resolve <UFrameContainer>().GetHashCode()); Debug.Log(container.GetHashCode()); }
public override void Initialize(UFrameContainer container) { base.Initialize(container); var path = DbRootPath; var dbDirectories = Directory.GetDirectories(path, "*.db", SearchOption.AllDirectories); foreach (var item in dbDirectories) { var db = new TypeDatabase(new JsonRepositoryFactory(item)); var config = GetConfig(db, Path.GetFileNameWithoutExtension(item)); config.FullPath = item; container.RegisterInstance <IGraphConfiguration>(config, config.Identifier); } CurrentConfiguration = Configurations.ContainsKey(CurrentDatabaseIdentifier) ? Configurations[CurrentDatabaseIdentifier] : Configurations.Values.FirstOrDefault(); if (CurrentConfiguration != null) { container.RegisterInstance <IGraphConfiguration>(CurrentConfiguration); container.RegisterInstance <IRepository>(CurrentConfiguration.Database); //var typeDatabase = container.Resolve<IRepository>(); CurrentConfiguration.Database.AddListener <IDataRecordInserted>(this); CurrentConfiguration.Database.AddListener <IDataRecordRemoved>(this); CurrentConfiguration.Database.AddListener <IDataRecordPropertyChanged>(this); CurrentConfiguration.Database.AddListener <IDataRecordPropertyBeforeChange>(this); } else { InvertApplication.Log("A uFrameDatabase doesn't exist."); } }
public override void Initialize(UFrameContainer container) { EditorUtility.ClearProgressBar(); // TODO 2.0: Obviously fix undo //Undo.undoRedoPerformed = delegate //{ // var ps = container.Resolve<WorkspaceService>(); // ps.RefreshProjects(); // InvertGraphEditor.DesignerWindow.RefreshContent(); //}; container.RegisterInstance <IPlatformDrawer>(InvertGraphEditor.PlatformDrawer); container.RegisterInstance <IStyleProvider>(new UnityStyleProvider()); #if DOCS container.RegisterToolbarCommand <GenerateDocsCommand>(); container.RegisterToolbarCommand <DocsModeCommand>(); #endif // container.RegisterInstance<IToolbarCommand>(new Test(), "Test"); //container.RegisterInstance<IAssetManager>(new UnityAssetManager()); // Command Drawers container.RegisterInstance <ToolbarUI>(new UnityToolbar() { }); container.Register <ContextMenuUI, UnityContextMenu>(); container.RegisterInstance <IGraphEditorSettings>(new UFrameSettings()); // Where the generated code files are placed container.Register <ICodePathStrategy, DefaultCodePathStrategy>("Default"); container.RegisterInstance <IWindowManager>(new UnityWindowManager()); }
public override void Initialize(UFrameContainer container) { base.Initialize(container); var typeDatabase = new TypeDatabase(new JsonRepositoryFactory(Path.Combine(Application.dataPath, "../uFrame"))); container.RegisterInstance <IRepository>(typeDatabase, "Settings"); container.RegisterInstance <IDesctiptorsService>(new DescriptorsService(typeDatabase)); }
public override void Initialize(UFrameContainer container) { container.RegisterInstance<IDiagramNodeCommand>(new CreateSceneCommand(), "CreateScene"); container.RegisterInstance<IDiagramNodeCommand>(new AddManagerToSceneCommand(), "AddToScene"); container.RegisterInstance<IDiagramNodeCommand>(new AddManagerToSceneSelectionCommand(), "AddToSceneSelection"); container.RegisterInstance<IDiagramNodeCommand>(new AddViewToSceneCommand(), "AddViewToScene"); //container.RegisterInstance<IDiagramNodeCommand>(new AddViewToSceneSelectionCommand(), "AddViewToSceneSelection"); container.RegisterInstance<IToolbarCommand>(new ScaffoldOrUpdateKernelCommand(),"ScaffoldOrUpdateKernel"); }
public override void Initialize(UFrameContainer container) { container.RegisterInstance <IDiagramNodeCommand>(new CreateSceneCommand(), "CreateScene"); container.RegisterInstance <IDiagramNodeCommand>(new AddManagerToSceneCommand(), "AddToScene"); container.RegisterInstance <IDiagramNodeCommand>(new AddManagerToSceneSelectionCommand(), "AddToSceneSelection"); container.RegisterInstance <IDiagramNodeCommand>(new AddViewToSceneCommand(), "AddViewToScene"); //container.RegisterInstance<IDiagramNodeCommand>(new AddViewToSceneSelectionCommand(), "AddViewToSceneSelection"); container.RegisterInstance <IToolbarCommand>(new ScaffoldOrUpdateKernelCommand(), "ScaffoldOrUpdateKernel"); }
// Start is called before the first frame update void Start() { var container = new UFrameContainer(); container.RegisterInstance(new A()); container.Inject(this); AObj.LogSelf(); }
public override void Initialize(UFrameContainer container) { EditorUtility.ClearProgressBar(); // TODO 2.0: Obviously fix undo //Undo.undoRedoPerformed = delegate //{ // var ps = container.Resolve<WorkspaceService>(); // ps.RefreshProjects(); // InvertGraphEditor.DesignerWindow.RefreshContent(); //}; container.RegisterInstance<IPlatformDrawer>(InvertGraphEditor.PlatformDrawer); container.RegisterInstance<IStyleProvider>(new UnityStyleProvider()); #if DOCS container.RegisterToolbarCommand<GenerateDocsCommand>(); container.RegisterToolbarCommand<DocsModeCommand>(); #endif // container.RegisterInstance<IToolbarCommand>(new Test(), "Test"); //container.RegisterInstance<IAssetManager>(new UnityAssetManager()); // Command Drawers container.RegisterInstance<ToolbarUI>(new UnityToolbar() { }); container.Register<ContextMenuUI, UnityContextMenu>(); container.RegisterInstance<IGraphEditorSettings>(new UFrameSettings()); // Where the generated code files are placed container.Register<ICodePathStrategy, DefaultCodePathStrategy>("Default"); container.RegisterInstance<IWindowManager>(new UnityWindowManager()); }
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) { base.Initialize(container); container.RegisterInstance <IExplorerProvider>(new GraphExplorerProvider(), "Graphs"); }
public override void Initialize(UFrameContainer container) { base.Initialize(container); container.RegisterInstance <IConnectionStrategy>(new ConvertConnectionStrategy(), "ConvertConnectionStrategy"); }
public override void Initialize(UFrameContainer container) { base.Initialize(container); container.RegisterInstance<IExplorerProvider>(new GraphExplorerProvider(),"Graphs"); }
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); }