コード例 #1
0
        internal PropertyPage(ISldWorks app, IPageSpec spec)
        {
            m_App = app;

            m_Page = new GeometryFeaturePropertyPage <TPage> (m_App, spec);
            m_Page.Handler.DataChanged += OnDataChanged;
            m_Page.Handler.Closed      += OnPageClosed;
            m_Page.Handler.Closing     += OnClosing;
        }
コード例 #2
0
        public PropertyManagerPageEx(ISldWorks app, IPageSpec pageSpec)
        {
            m_App = app;

            m_Logger = LoggerFactory.Create(this);

            m_IconsConv = new IconsConverter();

            m_Handler = new THandler();

            m_PmpBuilder = new PropertyManagerPageBuilder <THandler>(app, m_IconsConv, m_Handler, pageSpec, Logger);
        }
コード例 #3
0
 internal PropertyManagerPageBuilder(ISldWorks app, IconsConverter iconsConv, THandler handler, IPageSpec pageSpec, ILogger logger)
     : this(new PmpTypeDataBinder(),
            new PropertyManagerPageConstructor <THandler>(app, iconsConv, handler),
            new PropertyManagerPageGroupConstructor <THandler>(),
            new PropertyManagerPageTextBoxConstructor <THandler>(app, iconsConv),
            new PropertyManagerPageNumberBoxConstructor <THandler>(app, iconsConv),
            new PropertyManagerPageCheckBoxConstructor <THandler>(app, iconsConv),
            new PropertyManagerPageComboBoxConstructor <THandler>(app, iconsConv),
            new PropertyManagerPageSelectionBoxConstructor <THandler>(app, iconsConv, logger),
            new PropertyManagerPageOptionBoxConstructor <THandler>(app, iconsConv),
            new PropertyManagerPageButtonConstructor <THandler>(app, iconsConv),
            new PropertyManagerPageBitmapConstructor <THandler>(app, iconsConv),
            new PropertyManagerPageTabConstructor <THandler>(iconsConv))
 {
     m_PageSpec = pageSpec;
 }
コード例 #4
0
        public SwPropertyManagerPage(ISldWorks app, IPageSpec pageSpec, ILogger logger, Type handlerType)
        {
            m_App = app;

            Logger = logger;

            m_IconsConv = new IconsConverter();

            //TODO: validate that handlerType inherits PropertyManagerPageHandlerEx and it is COM visible with parameterless constructor
            Handler = (SwPropertyManagerPageHandler)Activator.CreateInstance(handlerType);

            Handler.DataChanged += OnDataChanged;
            Handler.Closed      += OnClosed;
            Handler.Closing     += OnClosing;
            m_PmpBuilder         = new PropertyManagerPageBuilder(app, m_IconsConv, Handler, pageSpec, Logger);
        }
コード例 #5
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();
        }
コード例 #6
0
            internal PmpAttributeSet(IAttributeSet baseAttSet, IPageSpec pageSpec)
            {
                m_BaseAttSet = baseAttSet;

                if (!Has <PageOptionsAttribute>())
                {
                    Add(new PageOptionsAttribute(new TitleIcon(pageSpec.Icon), pageSpec.Options));
                }

                if (string.IsNullOrEmpty(baseAttSet.Name) ||
                    baseAttSet.Name == BoundType.Name)
                {
                    m_Title = pageSpec.Title;
                }
                else
                {
                    m_Title = baseAttSet.Name;
                }
            }
コード例 #7
0
 internal PropertyManagerPageBuilder(ISwApplication app, IconsConverter iconsConv, SwPropertyManagerPageHandler handler, IPageSpec pageSpec, IXLogger logger)
     : this(app, new PmpTypeDataBinder(),
            new PropertyManagerPageConstructor(app.Sw, iconsConv, handler),
            new PropertyManagerPageGroupControlConstructor(),
            new PropertyManagerPageTextBoxControlConstructor(app.Sw, iconsConv),
            new PropertyManagerPageNumberBoxConstructor(app.Sw, iconsConv),
            new PropertyManagerPageCheckBoxControlConstructor(app.Sw, iconsConv),
            new PropertyManagerPageEnumComboBoxControlConstructor(app.Sw, iconsConv),
            new PropertyManagerPageCustomItemsComboBoxControlConstructor(app, iconsConv),
            new PropertyManagerPageSelectionBoxControlConstructor(app, iconsConv, logger),
            new PropertyManagerPageOptionBoxConstructor(app.Sw, iconsConv),
            new PropertyManagerPageButtonControlConstructor(app.Sw, iconsConv),
            new PropertyManagerPageBitmapControlConstructor(app.Sw, iconsConv),
            new PropertyManagerPageTabConstructor(iconsConv),
            new PropertyManagerPageCustomControlConstructor(app.Sw, iconsConv),
            new PropertyManagerPageBitmapButtonConstructor(app.Sw, iconsConv))
 {
     m_PageSpec = pageSpec;
 }
コード例 #8
0
ファイル: SwPropertyManagerPage.cs プロジェクト: windygu/xcad
        internal SwPropertyManagerPage(ISwApplication app, IPageSpec pageSpec, IXLogger logger, Type handlerType)
        {
            m_App = app;

            Logger = logger;

            m_IconsConv = new IconsConverter();

            //TODO: validate that handlerType inherits PropertyManagerPageHandlerEx and it is COM visible with parameterless constructor
            Handler = (SwPropertyManagerPageHandler)Activator.CreateInstance(handlerType);

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

            m_Page   = m_PmpBuilder.CreatePage <TModel>();
            Controls = m_Page.Binding.Bindings.Select(b => b.Control)
                       .OfType <IPropertyManagerPageControlEx>().ToArray();
        }
コード例 #9
0
            internal PmpAttributeSet(IAttributeSet baseAttSet, IPageSpec pageSpec)
            {
                m_BaseAttSet = baseAttSet;

                if (!Has <PageOptionsAttribute>())
                {
                    //TODO: process pageSpec.Icon
                    Add(new PageOptionsAttribute(pageSpec.Options));
                }

                if (string.IsNullOrEmpty(baseAttSet.Name) ||
                    baseAttSet.Name == ContextType.Name)
                {
                    Name = pageSpec.Title;
                }
                else
                {
                    Name = baseAttSet.Name;
                }
            }
コード例 #10
0
 internal GeometryFeaturePropertyPage(ISldWorks app, IPageSpec pageSpec) : base(app, pageSpec)
 {
 }