Пример #1
0
        internal SwPropertyManagerPage(ISwApplication app, IPageSpec pageSpec, IServiceProvider svcProvider, SwPropertyManagerPageHandler handler,
                                       CreateDynamicControlsDelegate createDynCtrlHandler)
        {
            m_App = app;

            m_IsDisposed = false;

            m_SvcProvider = svcProvider;

            m_Logger = m_SvcProvider.GetService <IXLogger>();

            m_IconsConv = m_SvcProvider.GetService <IIconsCreator>();

            //TODO: validate that handler is COM visible
            Handler = handler;

            Handler.Closed  += OnClosed;
            Handler.Closing += OnClosing;
            m_PmpBuilder     = new PropertyManagerPageBuilder(app, m_IconsConv, Handler, pageSpec, m_Logger);

            m_ContextProvider = new BaseContextProvider();

            m_Page = m_PmpBuilder.CreatePage <TModel>(createDynCtrlHandler, m_ContextProvider);

            var ctrls = new List <IPropertyManagerPageElementEx>();

            foreach (var binding in m_Page.Binding.Bindings)
            {
                binding.Changed += OnBindingValueChanged;

                var ctrl = binding.Control;

                if (ctrl is IPropertyManagerPageElementEx)
                {
                    ctrls.Add((IPropertyManagerPageElementEx)ctrl);
                }
                else
                {
                    m_Logger.Log($"Unrecognized control type: {ctrl?.GetType().FullName}", XCad.Base.Enums.LoggerMessageSeverity_e.Error);
                }
            }

            Controls = ctrls.ToArray();
        }
Пример #2
0
 /// <summary>Creates instance of property manager page</summary>
 /// <param name="app">Pointer to session of SOLIDWORKS where the property manager page to be created</param>
 internal SwPropertyManagerPage(ISwApplication app, IServiceProvider svcProvider, SwPropertyManagerPageHandler handler,
                                CreateDynamicControlsDelegate createDynCtrlHandler)
     : this(app, null, svcProvider, handler, createDynCtrlHandler)
 {
 }