Exemple #1
0
        public BaseCustomFeatureEditor(IXApplication app, IXExtension ext,
                                       Type featDefType,
                                       CustomFeatureParametersParser paramsParser,
                                       DataConverterDelegate <TPage, TData> pageToDataConv,
                                       DataConverterDelegate <TData, TPage> dataToPageConv,
                                       CreateGeometryDelegate <TData> geomCreator)
        {
            m_App         = app;
            m_FeatDefType = featDefType;

            if (!typeof(IXCustomFeatureDefinition <TData>).IsAssignableFrom(m_FeatDefType))
            {
                throw new InvalidCastException($"{m_FeatDefType.FullName} must implement {typeof(IXCustomFeatureDefinition<TData>).FullName}");
            }

            m_PageToDataConv = pageToDataConv;
            m_DataToPageConv = dataToPageConv;
            m_GeomCreator    = geomCreator;

            m_BodiesComparer = new XObjectEqualityComparer <IXBody>();

            m_PmPage = ext.CreatePage <TPage>();

            m_ParamsParser = paramsParser;

            m_PmPage.Closing     += OnPageClosing;
            m_PmPage.DataChanged += OnDataChanged;
            m_PmPage.Closed      += OnPageClosed;
        }
 public static IXCustomFeatureEditor <TData, TPage> CreateCustomFeatureEditor <TCustomFeatureDef, TData, TPage>(
     this IXExtension ext,
     DataConverterDelegate <TPage, TData> pageToDataConv, DataConverterDelegate <TData, TPage> dataToPageConv,
     CreateGeometryDelegate <TData> geomCreator)
     where TCustomFeatureDef : class, IXCustomFeatureDefinition <TData>, new()
     where TData : class, new()
     where TPage : class, new()
 {
     return(ext.CreateCustomFeatureEditor <TData, TPage>(typeof(TCustomFeatureDef), pageToDataConv, dataToPageConv, geomCreator));
 }
 public static IXCustomFeatureEditor <TData, TData> CreateCustomFeatureEditor <TCustomFeatureDef, TData>(
     this IXExtension ext, CreateGeometryDelegate <TData> geomCreator)
     where TCustomFeatureDef : class, IXCustomFeatureDefinition <TData>, new()
     where TData : class, new()
 {
     return(ext.CreateCustomFeatureEditor <TCustomFeatureDef, TData, TData>(
                d => d,
                d => d,
                geomCreator));
 }
Exemple #4
0
 public IXCustomFeatureEditor <TData, TPage> CreateCustomFeatureEditor <TData, TPage>(
     Type defType,
     DataConverterDelegate <TPage, TData> pageToDataConv,
     DataConverterDelegate <TData, TPage> dataToPageConv,
     CreateGeometryDelegate <TData> geomCreator)
     where TData : class, new()
     where TPage : class, new()
 {
     return(new SwMacroFeatureEditor <TData, TPage>(
                Application, this, defType, new MacroFeatureParametersParser(),
                pageToDataConv, dataToPageConv, geomCreator));
 }
Exemple #5
0
 internal SwMacroFeatureEditor(IXApplication app, IXExtension ext, Type defType, CustomFeatureParametersParser paramsParser,
                               DataConverterDelegate <TPage, TData> pageToDataConv, DataConverterDelegate <TData, TPage> dataToPageConv,
                               CreateGeometryDelegate <TData> geomCreator) : base(app, ext, defType, paramsParser, pageToDataConv, dataToPageConv, geomCreator)
 {
 }