ChartPainter constructor

ChartPainter(
  1. ChartStyle chartStyle,
  2. ChartColors chartColors, {
  3. required List<TrendLine> lines,
  4. required bool isTrendLine,
  5. required double selectY,
  6. required TrendLineState trendLineState,
  7. required dynamic datas,
  8. required dynamic scaleX,
  9. required dynamic scrollX,
  10. required dynamic isLongPass,
  11. required dynamic selectX,
  12. dynamic isOnTap,
  13. dynamic isTapShowInfoDialog,
  14. required VerticalTextAlignment verticalTextAlignment,
  15. dynamic mainState,
  16. dynamic volHidden,
  17. dynamic isShowMainState,
  18. required List<SecondaryState> secondaryStates,
  19. StreamSink<InfoWindowEntity?>? sink,
  20. double? mainHeight,
  21. double? secondaryHeight,
  22. bool isLine = false,
  23. bool hideGrid = false,
  24. bool showNowPrice = true,
  25. int fixedLength = 2,
  26. List<int> maDayList = const [5, 10, 20],
  27. void onGoingUp(
    1. double probability
    )?,
  28. void onGoingDown(
    1. double probability
    )?,
  29. void onMainGoingUp(
    1. double probability
    )?,
  30. void onMainGoingDown(
    1. double probability
    )?,
  31. void onUpProbs(
    1. UpProbReport report
    )?,
  32. List<TradeMark> tradeMarks = const [],
  33. bool showTradeMarks = true,
})

Implementation

ChartPainter(
  this.chartStyle,
  this.chartColors, {
  required this.lines, //For TrendLine
  required this.isTrendLine, //For TrendLine
  required this.selectY, //For TrendLine
  required this.trendLineState,
  required datas,
  required scaleX,
  required scrollX,
  required isLongPass,
  required selectX,
  isOnTap,
  isTapShowInfoDialog,
  required this.verticalTextAlignment,
  mainState,
  volHidden,
  isShowMainState,
  required this.secondaryStates,
  this.sink,
  this.mainHeight, // 接收主图高度
  this.secondaryHeight, // 接收次图高度
  bool isLine = false,
  this.hideGrid = false,
  this.showNowPrice = true,
  this.fixedLength = 2,
  this.maDayList = const [5, 10, 20],
  this.onGoingUp,
  this.onGoingDown,
  this.onMainGoingUp,
  this.onMainGoingDown,
  this.onUpProbs,
  this.tradeMarks = const [],
  this.showTradeMarks = true,
})  : _secProviders = {
        SecondaryState.KDJ: const KdjSignalProvider(),
        SecondaryState.MACD: const MacdSignalProvider(),
        SecondaryState.RSI: const RsiSignalProvider(),
        SecondaryState.WR: const WrSignalProvider(),
        SecondaryState.WPR: const WprSignalProvider(),
        SecondaryState.CCI: const CciSignalProvider(),
        SecondaryState.STOCHASTIC: const StochSignalProvider(),
        SecondaryState.MOMENTUM: const MomentumSignalProvider(),
        SecondaryState.MFI: const MfiSignalProvider(),
        SecondaryState.DEMARKER: const DemSignalProvider(),
        SecondaryState.STDDEV: const StdDevSignalProvider(),
        SecondaryState.DMI: const DmiSignalProvider(),
        SecondaryState.ADX: const AdxOnlySignalProvider(),
        SecondaryState.AROON: const AroonSignalProvider(),
        SecondaryState.VORTEX: const VortexSignalProvider(),
        SecondaryState.SAR: const SarSignalProvider(),
        SecondaryState.ICHIMOKU: const IchimokuSignalProvider(),
        SecondaryState.TSI: const TsiSignalProvider(),
        SecondaryState.PPO: const PpoSignalProvider(),
        SecondaryState.TRIX: const TrixSignalProvider(),
        SecondaryState.OBV: const ObvSignalProvider(),
        SecondaryState.VWAP: const VwapSignalProvider(),
        SecondaryState.ADL: const AdlSignalProvider(),
        SecondaryState.ATR: const AtrSignalProvider(),
        SecondaryState.HV: const HvSignalProvider(),
        SecondaryState.VIX: const VixSignalProvider(),
        SecondaryState.VOLATILITY: const VolatilitySignalProvider(),
        SecondaryState.ENVELOPES: const EnvelopesSignalProvider(),
        SecondaryState.CMF: const NeutralSignalProvider(),
        SecondaryState.CHAIKIN_OSC: const NeutralSignalProvider(),
        SecondaryState.KLINGER: const NeutralSignalProvider(),
        SecondaryState.VPT: const NeutralSignalProvider(),
        SecondaryState.FORCE: const NeutralSignalProvider(),
        SecondaryState.ROC: const NeutralSignalProvider(),
        SecondaryState.ULTIMATE: const NeutralSignalProvider(),
        SecondaryState.CONNORS_RSI: const NeutralSignalProvider(),
        SecondaryState.STOCH_RSI: const NeutralSignalProvider(),
        SecondaryState.RVI: const NeutralSignalProvider(),
        SecondaryState.DPO: const NeutralSignalProvider(),
        SecondaryState.KAMA: const NeutralSignalProvider(),
        SecondaryState.HMA: const NeutralSignalProvider(),
        SecondaryState.KELTNER: const NeutralSignalProvider(),
        SecondaryState.DONCHIAN: const NeutralSignalProvider(),
        SecondaryState.BOLL_BANDWIDTH: const NeutralSignalProvider(),
        SecondaryState.CHAIKIN_VOLATILITY: const NeutralSignalProvider(),
        SecondaryState.HV_PERCENTILE: const NeutralSignalProvider(),
        SecondaryState.ATR_PERCENTILE: const NeutralSignalProvider(),
        SecondaryState.ELDER_RAY: const NeutralSignalProvider(),
        SecondaryState.ICHIMOKU_SPAN: const NeutralSignalProvider(),
        SecondaryState.PIVOT: const NeutralSignalProvider(),
        SecondaryState.GANN_FAN: const NeutralSignalProvider(),
        // 若有
        // SecondaryState.BSSIGNAL: const BsSignalProvider(),
        // …… 如有更多副图指标,可一并注册
      },
      _mainProviders = {
        MainState.MA: MaCrossSignalProvider(),
        MainState.BOLL: BollSignalProvider(),
        // …… 如有更多主图指标,可一并注册
      },
      super(
        chartStyle,
        datas: datas,
        scaleX: scaleX,
        scrollX: scrollX,
        isLongPress: isLongPass,
        isOnTap: isOnTap,
        isTapShowInfoDialog: isTapShowInfoDialog,
        selectX: selectX,
        mainState: mainState,
        volHidden: volHidden,
        isShowMainState: isShowMainState,
        secondaryStates: secondaryStates,
        isLine: isLine,
      ) {
  selectPointPaint = Paint()
    ..isAntiAlias = true
    ..strokeWidth = 0.5
    ..color = this.chartColors.selectFillColor;
  selectorBorderPaint = Paint()
    ..isAntiAlias = true
    ..strokeWidth = 0.5
    ..style = PaintingStyle.stroke
    ..color = this.chartColors.selectBorderColor;
  nowPricePaint = Paint()
    ..strokeWidth = this.chartStyle.nowPriceLineWidth
    ..isAntiAlias = true;
}