# Source: SimpleTheme.js

    /*
     * @Description: In User Settings Edit
     * @Author: xiaoying
     * @Date: 2019-09-03 19:52:38
     * @LastEditTime: 2019-09-09 15:16:02
     * @LastEditors: mayuanye
     */

    import { NativeModules } from 'react-native';
    import ThemeInfo from './ThemeInfo.js';
    import VectorTheme from './VectorTheme.js';
    let ST = NativeModules.JSSimpleTheme;

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

      /**
       * 创建一个新的SimpleTheme对象
       *
       * @memberof SimpleTheme
       * @returns {Promise<SimpleTheme>}
       */
      async createObj() {
        try {
          var { SimpleThemeId } = await ST.createObj();
          var simpleTheme = new SimpleTheme();
          simpleTheme._MGSimpleThemeId = SimpleThemeId;
          return simpleTheme;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取统一专题图的绘制信息
       *
       * @memberof SimpleTheme
       * @returns {Promise<ThemeInfo>}
       */
      async getThemeInfo() {
        try {
          var { ThemeInfoId } = await ST.getThemeInfo(this._MGSimpleThemeId);
          var themeInfo = null;
          if (ThemeInfoId != null) {
            themeInfo = new ThemeInfo();
            themeInfo._MGThemeInfoId = ThemeInfoId;
          }
          return themeInfo;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 设置统一专题图的绘制信息
       *
       * @memberof SimpleTheme
       * @param {Object} themeInfo 统一专题图的绘制信息
       * @returns {Promise<Void>}
       */
      async setThemeInfo(themeInfo) {
        try {
          await ST.setThemeInfo(this._MGSimpleThemeId, themeInfo._MGThemeInfoId);
        } catch (e) {
          console.error(e);
        }
      }
    }