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)); }
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)); }
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) { }