예제 #1
0
 public AreaControllerRunner(IPageContext pageContext, IRouteData routeData, IViewContextProvider viewContextProvider, AreaRouteData areaRouteData)
     : base(areaRouteData.Controller, areaRouteData.Action)
 {
     _pageContext         = pageContext;
     _routeData           = routeData;
     _viewContextProvider = viewContextProvider;
     Area = areaRouteData.Area;
     UseChildActionBehavior = areaRouteData.UseChildActionBehavior;
 }
 public AreaControllerRunner(IPageContext pageContext, IRouteData routeData, IViewContextProvider viewContextProvider, AreaRouteData areaRouteData)
     : base(areaRouteData.Controller, areaRouteData.Action)
 {
     _pageContext = pageContext;
     _routeData = routeData;
     _viewContextProvider = viewContextProvider;
     Area = areaRouteData.Area;
     UseChildActionBehavior = areaRouteData.UseChildActionBehavior;
 }
예제 #3
0
 public TestRibbonFactory(
     AddInBase addInBase,
     IViewProvider viewProvider,
     IViewContextProvider contextProvider,
     string fallbackRibbonType,
     params Assembly[] assemblies)
     : base(addInBase, assemblies, contextProvider, fallbackRibbonType)
 {
     this.viewProvider = viewProvider;
 }
예제 #4
0
 public TestRibbonFactory(
     AddInBase addInBase,
     IViewProvider viewProvider,
     IViewContextProvider contextProvider,
     string fallbackRibbonType,
     params Assembly[] assemblies)
     : base(addInBase, UseIfEmpty(assemblies, Assembly.GetCallingAssembly()), contextProvider, null, fallbackRibbonType)
 {
     this.viewProvider = viewProvider;
 }
예제 #5
0
 public TestRibbonFactory(
     AddInBase addInBase,
     IViewProvider viewProvider,
     IViewContextProvider contextProvider,
     string fallbackRibbonType,
     params Assembly[] assemblies)
     : base(addInBase, UseIfEmpty(assemblies, Assembly.GetCallingAssembly()), contextProvider, null, fallbackRibbonType)
 {
     this.viewProvider = viewProvider;
 }
예제 #6
0
 public TestRibbonFactory(
     IViewModelFactory viewModelFactory, 
     Func<CustomTaskPaneCollection> customTaskPaneCollection,
     IViewProvider<TestRibbonTypes> viewProvider,
     IViewContextProvider contextProvider,
     params Assembly[] assemblies)
     : base(new RibbonFactoryController<TestRibbonTypes>(assemblies, contextProvider, viewModelFactory, customTaskPaneCollection, Substitute.For<Factory>(), new DefaultViewLocationStrategy()))
 {
     this.viewProvider = viewProvider;
 }
 public TestRibbonFactory(
     AddInBase addInBase,
     IViewProvider viewProvider,
     IViewContextProvider contextProvider,
     string fallbackRibbonType,
     params Assembly[] assemblies)
     : base(addInBase, assemblies, contextProvider, fallbackRibbonType)
 {
     this.viewProvider = viewProvider;
 }
예제 #8
0
        protected RibbonFactory(
            AddInBase addinBase, Assembly[] assemblies, IViewContextProvider contextProvider, IViewLocationStrategy viewLocationStrategy,
            [CanBeNull] string fallbackRibbonType)
        {
            if (assemblies.Length == 0)
                throw new InvalidOperationException("You must specify at least one assembly to scan for viewmodels");

            context = new VstoContribContext(assemblies, addinBase, fallbackRibbonType, viewLocationStrategy);
            ribbonFactoryController = new RibbonFactoryController(contextProvider, context);

            addinBase.Startup += AddinBaseOnStartup;
            addinBase.Shutdown += AddinBaseOnShutdown;
        }
예제 #9
0
        protected RibbonFactory(
            AddInBase addinBase, Assembly[] assemblies, IViewContextProvider contextProvider, IViewLocationStrategy viewLocationStrategy,
            [CanBeNull] string fallbackRibbonType)
        {
            if (assemblies.Length == 0)
            {
                throw new InvalidOperationException("You must specify at least one assembly to scan for viewmodels");
            }

            context = new VstoContribContext(assemblies, addinBase, fallbackRibbonType, viewLocationStrategy);
            ribbonFactoryController = new RibbonFactoryController(contextProvider, context);

            addinBase.Startup  += AddinBaseOnStartup;
            addinBase.Shutdown += AddinBaseOnShutdown;
        }
        public ViewModelResolver(IEnumerable <Type> viewModelType, ICustomTaskPaneRegister customTaskPaneRegister, IViewContextProvider viewContextProvider, VstoContribContext context)
        {
            currentlyLoadingRibbon      = DefaultRibbon;
            notifyChangeTargetLookup    = new Dictionary <Type, List <KeyValuePair <string, string> > >();
            ribbonTypeLookup            = new Dictionary <string, Type>();
            contextToViewModelLookup    = new Dictionary <object, IRibbonViewModel>();
            ribbonUiLookup              = new Dictionary <string, IRibbonUI>();
            this.customTaskPaneRegister = customTaskPaneRegister;
            this.viewContextProvider    = viewContextProvider;
            vstoContribContext          = context;

            foreach (var ribbonType in viewModelType)
            {
                CreateRibbonTypeToViewModelTypeLookup(ribbonType, context.FallbackRibbonType);
            }
        }
예제 #11
0
        public ViewModelResolver(IEnumerable<Type> viewModelType, ICustomTaskPaneRegister customTaskPaneRegister, IViewContextProvider viewContextProvider, VstoContribContext context)
        {
            currentlyLoadingRibbon = DefaultRibbon;
            notifyChangeTargetLookup = new Dictionary<Type, List<KeyValuePair<string, string>>>();
            ribbonTypeLookup = new Dictionary<string, Type>();
            contextToViewModelLookup = new Dictionary<object, IRibbonViewModel>();
            ribbonUiLookup = new Dictionary<string, IRibbonUI>();
            this.customTaskPaneRegister = customTaskPaneRegister;
            this.viewContextProvider = viewContextProvider;
            vstoContribContext = context;

            foreach (var ribbonType in viewModelType)
            {
                CreateRibbonTypeToViewModelTypeLookup(ribbonType, context.FallbackRibbonType);
            }
        }
        protected RibbonFactory(
            AddInBase addinBase, Assembly[] assemblies, IViewContextProvider contextProvider,
            [CanBeNull] string fallbackRibbonType)
        {
            if (assemblies.Length == 0)
                throw new InvalidOperationException("You must specify at least one assembly to scan for viewmodels");

            lock (InstanceLock)
            {
                if (Current != null)
                    throw new InvalidOperationException("You can only create a single ribbon factory");
                Current = this;
            }

            context = new VstoContribContext(assemblies, addinBase, fallbackRibbonType);
            ribbonFactoryController = new RibbonFactoryController(contextProvider, context);

            addinBase.Startup += AddinBaseOnStartup;
            addinBase.Shutdown += AddinBaseOnShutdown;
        }
        public RibbonFactoryController(
            IViewContextProvider viewContextProvider,
            VstoContribContext vstoContribContext)
        {
            this.vstoContribContext = vstoContribContext;
            var ribbonTypes = GetTRibbonTypesInAssemblies(vstoContribContext.Assemblies).ToList();

            customTaskPaneRegister = new CustomTaskPaneRegister(vstoContribContext.AddinBase);
            ribbonViewModelResolver = new ViewModelResolver(
                ribbonTypes, customTaskPaneRegister, viewContextProvider, 
                vstoContribContext);

            var ribbonXmlRewriter = new RibbonXmlRewriter(vstoContribContext, ribbonViewModelResolver);

            var loadExpression = ((Expression<Action<RibbonFactory>>)(r => r.Ribbon_Load(null)));
            string loadMethodName = loadExpression.GetMethodName();

            foreach (Type viewModelType in ribbonTypes)
            {
                ribbonXmlRewriter.LocateAndRegisterViewXml(viewModelType, loadMethodName, vstoContribContext.FallbackRibbonType);
            }
        }
        public RibbonFactoryController(
            IViewContextProvider viewContextProvider,
            VstoContribContext vstoContribContext)
        {
            this.vstoContribContext = vstoContribContext;
            var ribbonTypes = GetTRibbonTypesInAssemblies(vstoContribContext.Assemblies).ToList();

            customTaskPaneRegister  = new CustomTaskPaneRegister(vstoContribContext.AddinBase);
            ribbonViewModelResolver = new ViewModelResolver(
                ribbonTypes, customTaskPaneRegister, viewContextProvider,
                vstoContribContext);

            var ribbonXmlRewriter = new RibbonXmlRewriter(vstoContribContext, ribbonViewModelResolver);

            var    loadExpression = ((Expression <Action <RibbonFactory> >)(r => r.Ribbon_Load(null)));
            string loadMethodName = loadExpression.GetMethodName();

            foreach (Type viewModelType in ribbonTypes)
            {
                ribbonXmlRewriter.LocateAndRegisterViewXml(viewModelType, loadMethodName, vstoContribContext.FallbackRibbonType);
            }
        }
예제 #15
0
        protected RibbonFactory(
            AddInBase addinBase, Assembly[] assemblies, IViewContextProvider contextProvider,
            [CanBeNull] string fallbackRibbonType)
        {
            if (assemblies.Length == 0)
            {
                throw new InvalidOperationException("You must specify at least one assembly to scan for viewmodels");
            }

            lock (InstanceLock)
            {
                if (Current != null)
                {
                    throw new InvalidOperationException("You can only create a single ribbon factory");
                }
                Current = this;
            }

            context = new VstoContribContext(assemblies, addinBase, fallbackRibbonType);
            ribbonFactoryController = new RibbonFactoryController(contextProvider, context);

            addinBase.Startup  += AddinBaseOnStartup;
            addinBase.Shutdown += AddinBaseOnShutdown;
        }
 public TestAreaControllerRunner(IPageContext pageContext, IRouteData routeData, IViewContextProvider viewContextProvider, AreaRouteData areaRouteData)
     : base(pageContext, routeData, viewContextProvider, areaRouteData)
 {
 }
 public TestAreaControllerRunner(IPageContext pageContext, IRouteData routeData, IViewContextProvider viewContextProvider, AreaRouteData areaRouteData)
     : base(pageContext, routeData, viewContextProvider, areaRouteData)
 {
 }