# Source: PointStyle.js

    /*
     * @Description: In User Settings Edit
     * @Author: xiaoying
     * @Date: 2019-09-10 16:52:51
     * @LastEditTime: 2019-09-11 09:30:17
     * @LastEditors: mayuanye
     */
    import { NativeModules } from 'react-native';
    let PS = NativeModules.JSPointStyle;

    /**
     * @class PointStyle
     * @description  点样式（实心圆点）
     */
    export default class PointStyle {
      /**
       * 构造一个新的PointStyle对象，可通过无参或有参构造。
       * 有参构造的参数为：颜色（string，eg：'rgba(128, 128, 128, 128)'），大小（float类型的Number）
       *
       * @memberof PointStyle
       * @returns {Promise<PointStyle>}
       */
      async createObj() {
        try {
          if (
            typeof arguments[0] === 'string' &&
            typeof arguments[1] === 'number'
          ) {
            var { PointStyleId } = await PS.createObjByCS(
              arguments[0],
              arguments[1]
            );

            var pointStyle = new PointStyle();
            pointStyle._MGPointStyleId = PointStyleId;
            return pointStyle;
          } else {
            var { PointStyleId } = await PS.createObj();
            var pointStyle = new PointStyle();
            pointStyle._MGPointStyleId = PointStyleId;
            return pointStyle;
          }
        } catch (e) {
          console.error(e);
        }
      }

      // /**
      //  * 通过颜色、大小构造一个新的FillStyle对象
      //  *
      //  * @memberof PointStyle
      //  * @param {Number} color 颜色 （int类型的Number）
      //  * @param {Number} size 大小  （float类型的Number）
      //  * @returns {Promise<PointStyle>}
      //  */
      // async createObjByCS(color, size){
      //     try {
      //         var {PointStyleId} = await PS.createObjByCS(color, size);
      //         var pointStyle = new PointStyle();
      //         pointStyle._MGPointStyleId = PointStyleId;
      //         return pointStyle;
      //     } catch (e) {
      //         console.error(e);
      //     }
      // }

      /**
       * 获取点样式的颜色
       *
       * @memberof PointStyle
       * @returns {String} 颜色
       */
      async getColor() {
        try {
          let color = await PS.getColor(this._MGPointStyleId);
          return color;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 设置点样式的颜色
       *
       * @memberof PointStyle
       * @param {String} color 颜色 eg:'rgba(128, 128, 128, 128)'
       * @returns {Promise<Void>}
       */
      async setColor(color) {
        try {
          await PS.setColor(this._MGPointStyleId, color);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取点的大小
       *
       * @memberof PointStyle
       * @returns {Number} 点的大小 （float类型的Number）
       */
      async getSize() {
        try {
          let size = await PS.getSize(this._MGPointStyleId);
          return size;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 设置点的大小
       *
       * @memberof PointStyle
       * @param {Number} size 点的大小 （float类型的Number)
       * @returns {Promise<Void>}
       */
      async setSize(size) {
        try {
          await PS.setSize(this._MGPointStyleId, size);
        } catch (e) {
          console.error(e);
        }
      }
    }