예제 #1
0
        /// <summary>
        ///    All specific registration that needs to be performed once all other registrations are done
        /// </summary>
        private void finalizeRegistration(IContainer container)
        {
            var workspace = container.Resolve <IWorkspace>();

            container.RegisterImplementationOf <IWithWorkspaceLayout>(workspace);
            container.RegisterImplementationOf <OSPSuite.Core.IWorkspace>(workspace);

            //Create one instance of the invokers so that the object is available in the application
            //since the object is not created anywhere and is only used as event listener
            container.Resolve <ICloseSubjectPresenterInvoker>();
            container.Resolve <IExportToPDFInvoker>();

            var mainPresenter = container.Resolve <IMainViewPresenter>();

            container.RegisterImplementationOf((IChangePropagator)mainPresenter);
        }
예제 #2
0
        private static void registerLogging(IContainer container)
        {
            var loggerFactory = new LoggerFactory();

            container.RegisterImplementationOf((ILoggerFactory)loggerFactory);
            container.Register <ILogger, PKSimLogger>(LifeStyle.Singleton);
        }
예제 #3
0
        private static void registerLoggerIn(IContainer container, IPKSimConfiguration configuration)
        {
            var log4NetLogFactory = new Log4NetLogFactory();

            log4NetLogFactory.Configure(new FileInfo(configuration.LogConfigurationFile));
            log4NetLogFactory.UpdateLogFileLocation(configuration.AllUsersFolderPath);
            container.RegisterImplementationOf((ILogFactory)log4NetLogFactory);
        }
예제 #4
0
        private static void registerImport(IContainer container)
        {
            var mobiDataImprterSettings = new DataImporterSettings {
                Icon = ApplicationIcons.MoBi, Caption = "MoBi Data Import"
            };

            container.RegisterImplementationOf(mobiDataImprterSettings);
        }
예제 #5
0
        private static void registerImport(IContainer container)
        {
            var mobiDataImprterSettings = new DataImporterSettings {
                Icon = ApplicationIcons.MoBi, Caption = "MoBi Data Import"
            };

            container.RegisterImplementationOf(mobiDataImprterSettings);
            container.AddRegister(x => x.FromType <SBMLImportRegister>());
        }
예제 #6
0
        public static void InitDimensions(IContainer container)
        {
            var configuration = container.Resolve <IMoBiConfiguration>();
            var dimFactory    = container.Resolve <IMoBiDimensionFactory>();
            var persister     = container.Resolve <IDimensionFactoryPersistor>();

            persister.Load(dimFactory.BaseFactory, configuration.DimensionFilePath);
            dimFactory.BaseFactory.AddDimension(Constants.Dimension.NO_DIMENSION);
            container.RegisterImplementationOf <IDimensionFactory>(dimFactory);
            setUpDimensionMergings(dimFactory.BaseFactory);
        }
 public MoBiMainView(IContainer container)
 {
     InitializeComponent();
     container.RegisterImplementationOf(ribbonControl.Manager);
     container.RegisterImplementationOf(ribbonControl.Manager as BarManager);
     container.RegisterImplementationOf(applicationMenu);
     container.RegisterImplementationOf(defaultLookAndFeel);
     container.RegisterImplementationOf(defaultLookAndFeel.LookAndFeel);
     container.RegisterImplementationOf(panelControlAppMenuFileLabels);
     container.RegisterImplementationOf(dockManager);
 }
        /// <summary>
        ///    All specific registration that needs to be performed once all other registrations are done
        /// </summary>
        private void finalizeRegistration(IContainer container)
        {
            InfrastructureRegister.RegisterWorkspace(container);
            //Create one instance of the invokers so that the object is available in the application
            //since the object is not created anywhere and is only used as event listener
            container.Resolve <ICloseSubjectPresenterInvoker>();

            var mainPresenter = container.Resolve <IMainViewPresenter>();

            container.RegisterImplementationOf((IChangePropagator)mainPresenter);

            //This runner is only register when running PKSim as an executable. All other implementation should use the ISimulationRunner
            container.Register <IInteractiveSimulationRunner, InteractiveSimulationRunner>(LifeStyle.Singleton);
        }
예제 #9
0
        public override void RegisterInContainer(IContainer container)
        {
            container.AddScanner(scan =>
            {
                scan.AssemblyContainingType <InfrastructureRegister>();

                //ORM Repository should be registered as singleton
                scan.ExcludeNamespaceContainingType <SpeciesRepository>();

                //this type will be registered using another convention
                scan.ExcludeNamespaceContainingType <IObjectConverter>();             //Converter
                scan.ExcludeNamespaceContainingType <IReportBuilder>();               //report builder
                scan.ExcludeNamespaceContainingType <SimulationReporter>();           //tex reporter
                scan.ExcludeNamespaceContainingType <IndividualTeXBuilder>();         //tex builder
                scan.ExcludeNamespaceContainingType <PKSimXmlSerializerRepository>(); //Serializer

                scan.ExcludeType <CommandMetaDataRepository>();
                scan.ExcludeType <DefaultIndividualRetriever>();
                scan.ExcludeType <SessionManager>();
                scan.ExcludeType <TemplateDatabase>();
                scan.ExcludeType <ProteinExpressionDatabase>();
                scan.ExcludeType <ProteinExpressionQueries>();
                scan.ExcludeType <ModelDatabase>();
                scan.ExcludeType <VersionChecker>();
                scan.ExcludeType <Workspace>();

                //already registered
                scan.ExcludeType <PKSimXmlSerializerRepository>();
                scan.ExcludeType <PKSimConfiguration>();
                scan.ExcludeType <SerializationContext>();

                scan.WithConvention <PKSimRegistrationConvention>();
            });

            container.AddScanner(scan =>
            {
                scan.AssemblyContainingType <InfrastructureRegister>();
                scan.IncludeNamespaceContainingType <SpeciesRepository>(); //Repository

                scan.IncludeType <CommandMetaDataRepository>();
                scan.IncludeType <DefaultIndividualRetriever>();
                scan.IncludeType <SessionManager>();
                scan.IncludeType <TemplateDatabase>();
                scan.IncludeType <ProteinExpressionDatabase>();
                scan.IncludeType <ProteinExpressionQueries>();
                scan.IncludeType <ModelDatabase>();

                scan.IncludeType <VersionChecker>();

                scan.RegisterAs(LifeStyle.Singleton);
                scan.WithConvention <OSPSuiteRegistrationConvention>();
            });

            container.Register <IWorkspace, Workspace>(LifeStyle.Singleton);

            registerConverters(container);

            registerReportBuilders(container);

            registerTexReporters(container);

            container.Register <ICompression, SharpLibCompression>();
            container.Register <IStringCompression, StringCompression>();
            container.Register <IProjectRetriever, PKSimProjectRetriever>();
            container.Register <IObservedDataConfiguration, ImportObservedDataTask>();
            container.Register <IFlatContainerIdToContainerMapperSpecification, FlatContainerIdToFormulationMapper>();
            container.Register <IFileLocker, FileLocker>(LifeStyle.Singleton);

            registerORMDependencies();

            var xmlRegister = new CoreSerializerRegister();

            container.AddRegister(x => x.FromInstance(xmlRegister));
            var sbsuiteSerializerRepository = container.Resolve <IOSPSuiteXmlSerializerRepository>();

            sbsuiteSerializerRepository.AddPresentationSerializers();
            xmlRegister.PerformMappingForSerializerIn(container);

            container.AddRegister(x => x.FromType <ReportingRegister>());
            container.AddRegister(x => x.FromType <OSPSuite.TeXReporting.ReportingRegister>());
            container.AddRegister(x => x.FromType <OSPSuite.Infrastructure.InfrastructureRegister>());

            //register factory also as IObjectBaseFactoryIBuildTrackerFactory
            var factory = container.Resolve <IPKSimObjectBaseFactory>() as IObjectBaseFactory;

            container.RegisterImplementationOf(factory);

            var configuration  = container.Resolve <IPKSimConfiguration>();
            var versionChecker = container.Resolve <IVersionChecker>();

            versionChecker.VersionFileUrl = CoreConstants.VERSION_FILE_URL;
            versionChecker.CurrentVersion = configuration.Version;
            versionChecker.ProductName    = CoreConstants.PRODUCT_NAME;
        }
예제 #10
0
        public override void RegisterInContainer(IContainer container)
        {
            container.AddScanner(scan =>
            {
                scan.AssemblyContainingType <PresentationRegister>();

                scan.ExcludeNamespaceContainingType <IMenuAndToolBarPresenter>();
                scan.ExcludeNamespaceContainingType <ContextMenuBase>();
                scan.ExcludeNamespaceContainingType <IExitCommand>();

                scan.ExcludeType <MenuBarItemRepository>();
                scan.ExcludeType <SimulationRunner>();
                scan.ExcludeType <MoBiApplicationController>();
                scan.ExcludeType <MoBiXmlSerializerRepository>();
                scan.ExcludeType <MoBiMainViewPresenter>();
                scan.Exclude(t => t.IsAnImplementationOf <IMoBiBaseDiagramPresenter>());

                //exclude presenter already registered at startup
                scan.ExcludeType <SplashScreenPresenter>();

                scan.WithConvention <OSPSuiteRegistrationConvention>();
            });


            container.Register <IMenuBarItemRepository, MenuBarItemRepository>(LifeStyle.Singleton);
            container.Register <ISimulationRunner, SimulationRunner>(LifeStyle.Singleton);
            container.Register <IMoBiApplicationController, IApplicationController, MoBiApplicationController>(LifeStyle.Singleton);

            registerMainPresenters(container);
            registerSingleStartPresenters(container);
            registerCreatePresenter(container);
            registerContextMenuAndCommands(container);
            registerDiagramPresenter(container);

            //selection presenter
            container.Register <ISelectionPresenter <XElement>, SelectXmlElementPresenter>();
            container.Register(typeof(IBuildingBlockSelectionPresenter <>), typeof(BuildingBlockSelectionPresenter <>));
            container.Register(typeof(IDescriptorConditionListPresenter <>), typeof(DescriptorConditionListPresenter <>));
            container.Register(typeof(IBuildingBlockMergePresenter <>), typeof(BuildingBlockMergePresenter <>));
            container.Register(typeof(ICreateBuildingBlockMergePresenter <>), typeof(CreateBuildingBlockMergePresenter <>));
            container.Register <ISelectManyPresenter <XElement>, SelectXmlElementPresenter>();
            container.Register <ISelectManyPresenter <OSPSuite.Core.Domain.IContainer>, SelectObjectBasePresenter <OSPSuite.Core.Domain.IContainer> >();
            container.Register <ISelectManyPresenter <IEventGroupBuilder>, SelectObjectBasePresenter <IEventGroupBuilder> >();

            container.Register <ICreateStartValuesPresenter <IMoleculeStartValuesBuildingBlock>, CreateMoleculeStartValuesPresenter>();
            container.Register <ICreateStartValuesPresenter <IParameterStartValuesBuildingBlock>, CreateParameterStartValuesPresenter>();

            container.Register <ISettingsPersistor <IUserSettings>, UserSettingsPersistor>();
            container.Register <ISettingsPersistor <IApplicationSettings>, ApplicationSettingsPersistor>();

            container.Register(typeof(IItemToListItemMapper <>), typeof(ItemToListItemMapper <>));
            container.RegisterFactory <IHeavyWorkPresenterFactory>();

            container.Register <IObservedDataConfiguration, ObservedDataTask>();
            container.Register <IPathToPathElementsMapper, PathToPathElementsMapper>();
            container.Register <IDataColumnToPathElementsMapper, DataColumnToPathElementsMapper>();
            container.Register <IDisplayNameProvider, DisplayNameProvider>();
            container.Register <IRenameObjectDTOFactory, RenameObjectDTOFactory>();

            registerTasks(container);
            registerContextMenus(container);

            ApplicationIcons.DefaultIcon = ApplicationIcons.MoBi;

            //Create one instance of the invoker so that the object is available
            //since it is not created anywhere and is only used as event listener
            container.RegisterImplementationOf(container.Resolve <ICloseSubjectPresenterInvoker>());
            container.Register <IWithWorkspaceLayout, Workspace>(LifeStyle.Singleton);

            container.Register <IQuantityPathToQuantityDisplayPathMapper, MoBiQuantityPathToQuantityDisplayPathMapper>();

            container.Register <IMoBiXmlSerializerRepository, MoBiXmlSerializerRepository>(LifeStyle.Singleton);
        }
예제 #11
0
        public override void GlobalContext()
        {
            base.GlobalContext();

            var        windsorContainer = new CastleWindsorContainer();
            IContainer container        = windsorContainer;

            windsorContainer.WindsorContainer.AddFacility <TypedFactoryFacility>();
            IoC.InitializeWith(container);
            IoC.RegisterImplementationOf(container);

            //need to register these services for which the default implementation is in the UI
            using (container.OptimizeDependencyResolution())
            {
                container.RegisterImplementationOf(new SynchronizationContext());
                container.Register <IExceptionManager, ExceptionManagerForSpecs>(LifeStyle.Singleton);
                container.RegisterImplementationOf(A.Fake <IUserSettings>());
                container.RegisterImplementationOf(A.Fake <IDialogCreator>());
                container.RegisterImplementationOf(A.Fake <IProgressUpdater>());
                container.RegisterImplementationOf(A.Fake <IMoBiHistoryManager>());
                container.RegisterImplementationOf(A.Fake <IXmlContentSelector>());
                container.RegisterImplementationOf(A.Fake <IDiagramModel>());
                container.RegisterImplementationOf(A.Fake <IDiagramTask>());
                container.RegisterImplementationOf(A.Fake <IMRUProvider>());
                container.RegisterImplementationOf(A.Fake <IFileLocker>());
                container.RegisterImplementationOf(A.Fake <IDisplayUnitRetriever>());
                container.RegisterImplementationOf(A.Fake <IJournalDiagramManagerFactory>());
                container.RegisterImplementationOf(A.Fake <ISimulationDiagramManager>());
                container.RegisterImplementationOf(A.Fake <ISpatialStructureDiagramManager>());
                container.RegisterImplementationOf(A.Fake <IMoBiReactionDiagramManager>());
                container.RegisterImplementationOf(A.Fake <ISimulationDiagramView>());
                container.RegisterImplementationOf(A.Fake <IContainerBaseLayouter>());
                container.RegisterImplementationOf(A.Fake <ILayerLayouter>());

                container.Register <IDiagramModelToXmlMapper, BatchDiagramModelToXmlMapper>();
                container.Register <IMoBiConfiguration, MoBiConfiguration>(LifeStyle.Singleton);
                container.Register <IEventPublisher, EventPublisher>(LifeStyle.Singleton);
                IHeavyWorkManager heavyWorkManager = new HeavyWorkManagerForSpecs();
                container.RegisterImplementationOf(heavyWorkManager);
                container.RegisterImplementationOf(A.Fake <IProgressManager>());
                var config = container.Resolve <IMoBiConfiguration>();
                container.RegisterImplementationOf((IApplicationConfiguration)config);

                var register = new SerializerRegister();
                container.AddRegister(x =>
                {
                    x.FromType <CoreRegister>();
                    x.FromType <Core.CoreRegister>();
                    x.FromInstance(new PresentationRegister(false));
                    x.FromType <SBMLImportRegister>();
                    x.FromType <InfrastructureRegister>();
                    x.FromInstance(register);
                });
                register.PerformMappingForSerializerIn(container);

                container.RegisterImplementationOf(A.Fake <IMoBiMainViewPresenter>());

                setupDimensions(container);
                setupCalculationMethods(container);

                var context = container.Resolve <IMoBiContext>();
                container.RegisterImplementationOf <IWorkspace>(context);
            }
            //Required for usage with nunit 3
            Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory;
        }