# Source: TextAnno.js

    /**
     * @content 用于对多边形的几何功能组件
     * @author  2019-09-09
     */
    import { NativeModules } from 'react-native';

    let TA = NativeModules.JSTextAnno;

    import TextAnnInfo from './TextAnnInfo.js';
    import GeoAnno from './GeoAnno.js';

    /**
     * @class TextAnno
     */
    export default class TextAnno extends GeoAnno {
      constructor() {
        super();
        Object.defineProperty(this, '_MGTextAnnoId', {
          get: function() {
            return this._MGGeoAnnoId;
          },
          set: function(_MGTextAnnoId) {
            this._MGGeoAnnoId = _MGTextAnnoId;
          },
        });
      }

      /**
       * 构造一个新的 TextAnno 对象
       * @memberOf TextAnno
       * @return {Promise<TextAnno>}
       */
      async createObj() {
        try {
          var { TextAnnoId } = await TA.createObj();
          var textAnno = new TextAnno();
          textAnno._MGTextAnnoId = TextAnnoId;
          return textAnno;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取几何对象类型
       * @memberOf TextAnno
       * @return {Promise}几何对象类型
       */
      async getType() {
        try {
          return await TA.getType(this._MGTextAnnoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取注记类型
       * @memberOf TextAnno
       * @return {Promise}注记类型
       */
      async getAnnType() {
        try {
          return await TA.getAnnType(this._MGTextAnnoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 判断几何注记是否为空
       * @memberOf TextAnno
       * @return {Promise}为空返回true，不为空返回false
       */
      async isEmpty() {
        try {
          return await TA.isEmpty(this._MGTextAnnoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取文本注记文本内容
       * @memberOf TextAnno
       * @return {Promise}文本内容
       */
      async getText() {
        try {
          return await TA.getText(this._MGTextAnnoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 设置文本注记文本内容
       * @memberOf TextAnno
       * @param text 文本内容
       * @return {Promise<void>}
       */
      async setText(text) {
        try {
          await TA.setText(this._MGTextAnnoId, text);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取文本注记文本格式化信息
       * @memberOf TextAnno
       * @return {Promise<TextAnnInfo>} 文本格式化信息
       */
      async getTextAnnInfo() {
        try {
          let { TextAnnInfoId } = await TA.getTextAnnInfo(this._MGTextAnnoId);
          var annInfo = new TextAnnInfo();
          annInfo._MGTextAnnInfoId = TextAnnInfoId;
          return annInfo;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 设置文本注记文本格式化信息
       * @memberOf TextAnno
       * @param textInfo 文本格式化信息
       * @return {Promise<void>}
       */
      async setTextAnnInfo(textInfo) {
        try {
          await TA.setTextAnnInfo(this._MGTextAnnoId, textInfo._MGTextAnnInfoId);
        } catch (e) {
          console.error(e);
        }
      }
    }