content: package com.gamatechno.vrlib.plugins;
  
  import com.gamatechno.vrlib.model.MDHitEvent;
  import com.gamatechno.vrlib.model.MDHotspotBuilder;
  
  /**
   * Created by hzqiujiadi on 16/8/10.
   * hzqiujiadi ashqalcn@gmail.com
   */
  public class MDWidgetPlugin extends MDHotspotPlugin {
  
      private static final int STATUS_NORMAL = 0;
  
      private static final int STATUS_FOCUSED = 1;
  
      // private static final int STATUS_PRESSED = 2;
  
      private boolean mChecked;
  
      private int[] mStatusList;
  
      private int[] mCheckedStatusList;
  
      private int mCurrentStatus = STATUS_NORMAL;
  
      public MDWidgetPlugin(MDHotspotBuilder builder) {
          super(builder);
          this.mStatusList = builder.statusList;
          this.mCheckedStatusList = builder.checkedStatusList;
          if (this.mStatusList == null){
              mStatusList = new int[]{0, 0, 0};
          }
      }
  
      public void setChecked(boolean checked){
          this.mChecked = checked;
          updateStatus();
      }
  
      public boolean getChecked(){
          return mChecked;
      }
  
  
      @Override
      public void onEyeHitIn(MDHitEvent hitEvent) {
          super.onEyeHitIn(hitEvent);
          mCurrentStatus = STATUS_FOCUSED;
          updateStatus();
      }
  
      @Override
      public void onEyeHitOut(long timestamp) {
          super.onEyeHitOut(timestamp);
          mCurrentStatus = STATUS_NORMAL;
          updateStatus();
      }
  
      private void updateStatus(){
          int[] statusList = mChecked ? mCheckedStatusList : mStatusList;
          if (statusList == null){
              statusList = mStatusList;
          }
  
          if (statusList != null && mCurrentStatus < statusList.length){
              useTexture(statusList[mCurrentStatus]);
          }
  
      }
  }
  