# Source: VectorTheme.js

    /*
     * @Description: In User Settings Edit
     * @Author: xiaoying
     * @Date: 2019-09-04 14:45:37
     * @LastEditTime: 2019-09-09 16:03:10
     * @LastEditors: mayuanye
     */
    import { NativeModules } from 'react-native';
    import Theme from './Theme';
    let VT = NativeModules.JSVectorTheme;

    /**
     * @class VectorTheme
     * @description 矢量专题图
     */
    export default class VectorTheme extends Theme {
      constructor() {
        super();
        Object.defineProperty(this, '_MGVectorThemeId', {
          get: function() {
            return this._MGThemeId;
          },
          set: function(_MGVectorThemeId) {
            this._MGThemeId = _MGVectorThemeId;
          },
        });
      }

      /**
       * 获取专题图类型
       *
       * @memberof VectorTheme
       * @returns {int} 专题图类型，例 1-ThemeType.SimpleTheme
       */
      async getType() {
        try {
          let themeType = await VT.getType(this._MGVectorThemeId);
          return themeType;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 专题图可见性
       *
       * @memberof VectorTheme
       * @returns {boolean}
       */
      async getVisible() {
        try {
          let result = await VT.getVisible(this._MGVectorThemeId);
          return result;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 设置专题图可见性
       * @memberof VectorTheme
       * @param {boolean} isVisible 专题图是否可见
       * @returns {int}  1-成功 ；0-失败
       */
      async setVisible(isVisible) {
        try {
          let result = await VT.setVisible(this._MGVectorThemeId, isVisible);
          return result;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取专题图名称
       *
       * @memberof VectorTheme
       * @returns {String} 专题图名称
       */
      async getName() {
        try {
          let name = await VT.getName(this._MGVectorThemeId);
          return name;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 设置专题图名称
       * @memberof VectorTheme
       * @param {String} name 专题图名称
       * @returns {int} 1-成功 ；0-失败
       */
      async setName(name) {
        try {
          let result = await VT.setName(this._MGVectorThemeId, name);
          return result;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 是否是单值或者分段专题图
       *
       * @memberof VectorTheme
       * @returns {boolean}
       */
      async getIsBaseTheme() {
        try {
          let result = await VT.getIsBaseTheme(this._MGVectorThemeId);
          return result;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 存为XML
       *
       * @memberof VectorTheme
       * @param {boolean} onlyStyle 支持仅导出样式
       * @returns {String} XML字符串
       */
      async toXML(onlyStyle) {
        try {
          let xml = await VT.toXML(this._MGVectorThemeId, onlyStyle);
          return xml;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 从XML导入
       *
       * @memberof VectorTheme
       * @param {String} strXML XML字符串
       * @param {boolean} onlyStyle 支持仅导出样式
       * @returns {boolean} 成功/失败 true/false
       */
      async fromXML(strXML, onlyStyle) {
        try {
          let result = await VT.fromXML(this._MGVectorThemeId, strXML, onlyStyle);
          return result;
        } catch (e) {
          console.error(e);
        }
      }
    }