|
@@ -0,0 +1,214 @@
|
|
|
+package com.cr.pages
|
|
|
+
|
|
|
+import android.os.Bundle
|
|
|
+import android.view.LayoutInflater
|
|
|
+import android.view.View
|
|
|
+import android.view.ViewGroup
|
|
|
+import android.widget.CompoundButton
|
|
|
+import android.widget.CompoundButton.OnCheckedChangeListener
|
|
|
+import android.widget.Switch
|
|
|
+import com.cr.cruav.CrApplication
|
|
|
+import com.cr.cruav.R
|
|
|
+import com.cr.event.BarAction
|
|
|
+import com.cr.event.EventFragmentBarAction
|
|
|
+import com.cr.widget.CrButton
|
|
|
+import com.squareup.otto.Subscribe
|
|
|
+
|
|
|
+/**
|
|
|
+ * 操作系统:MAC系统
|
|
|
+ * 创建者:王成
|
|
|
+ * 创建日期:2023/6/9 17:12
|
|
|
+ * 描述:案件图斑编辑页面
|
|
|
+ */
|
|
|
+class FragmentCaseTools : CrNavigationFragment(), CrButton.OnClickListener,
|
|
|
+ OnCheckedChangeListener {
|
|
|
+ /**
|
|
|
+ * 操作监听接口
|
|
|
+ */
|
|
|
+ interface OnOperationListener {
|
|
|
+ // todo: 2023/6/9 开启绘制
|
|
|
+ fun onStartDraw()
|
|
|
+
|
|
|
+ // todo: 2023/6/9 停止绘制
|
|
|
+ fun onStopDraw()
|
|
|
+
|
|
|
+ // todo: 2023/6/9 保存
|
|
|
+ fun onSave()
|
|
|
+
|
|
|
+ // todo: 2023/6/9 删除
|
|
|
+ fun onRemove()
|
|
|
+
|
|
|
+ // todo: 2023/6/9 回退一步
|
|
|
+ fun onUndo()
|
|
|
+
|
|
|
+ // todo: 2023/6/9 重绘
|
|
|
+ fun onReset()
|
|
|
+
|
|
|
+ // todo: 2023/6/9 移动案件点
|
|
|
+ fun onMoveCasePoint()
|
|
|
+ }
|
|
|
+
|
|
|
+ private var btnSave: CrButton? = null // define: 2023/6/9 保存
|
|
|
+ private var btnDelete: CrButton? = null // define: 2023/6/9 删除
|
|
|
+ private var btnUndo: CrButton? = null // define: 2023/6/9 回退一步
|
|
|
+ private var btnReset: CrButton? = null // define: 2023/6/9 重新绘制
|
|
|
+ private var btnMovePoint: CrButton? = null // define: 2023/6/9 移动案件点
|
|
|
+ private var switchDraw: Switch? = null // define: 2023/6/9 开启绘制
|
|
|
+
|
|
|
+ // todo: 2023/6/9 操作监听
|
|
|
+ private var listener: OnOperationListener? = null
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建视图
|
|
|
+ * @param inflater LayoutInflater
|
|
|
+ * @param container ViewGroup?
|
|
|
+ * @param savedInstanceState Bundle?
|
|
|
+ * @return View?
|
|
|
+ */
|
|
|
+ override fun onCreateView(
|
|
|
+ inflater: LayoutInflater,
|
|
|
+ container: ViewGroup?,
|
|
|
+ savedInstanceState: Bundle?
|
|
|
+ ): View? {
|
|
|
+ // todo: 2023/4/17 订阅监听
|
|
|
+ CrApplication.getEventBus().register(this)
|
|
|
+ self = this
|
|
|
+ mainView = inflater.inflate(R.layout.frag_case_tools, null)
|
|
|
+ // todo: 2023/4/17 设置导航栏
|
|
|
+ setBar(R.id.nv)
|
|
|
+ // todo: 2023/4/17 设置展现方式
|
|
|
+ setAnimationDirection(AnimationDirection.LEFT)
|
|
|
+ // todo: 2023/4/17 关联控件
|
|
|
+ joinControls()
|
|
|
+ return mainView
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 重写挂载控件
|
|
|
+ */
|
|
|
+ override fun joinControls() {
|
|
|
+ // todo: 2023/6/9 挂在控件
|
|
|
+ switchDraw = mainView?.findViewById(R.id.case_on_draw)
|
|
|
+ btnSave = mainView?.findViewById(R.id.case_save)
|
|
|
+ btnDelete = mainView?.findViewById(R.id.cases_delete)
|
|
|
+ btnUndo = mainView?.findViewById(R.id.case_undo)
|
|
|
+ btnReset = mainView?.findViewById(R.id.case_reset)
|
|
|
+ btnMovePoint = mainView?.findViewById(R.id.case_move_point)
|
|
|
+ // todo: 2023/6/9 设置监听
|
|
|
+ btnSave?.setListener(this)
|
|
|
+ btnDelete?.setListener(this)
|
|
|
+ btnUndo?.setListener(this)
|
|
|
+ btnReset?.setListener(this)
|
|
|
+ btnMovePoint?.setListener(this)
|
|
|
+ switchDraw?.setOnCheckedChangeListener(this)
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 关闭页面
|
|
|
+ */
|
|
|
+ override fun dismiss() {
|
|
|
+ CrApplication.getEventBus().post(EventFragmentBarAction(self!!, BarAction.ACTION_DISMISS))
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 视图点击事件
|
|
|
+ * @param view View
|
|
|
+ */
|
|
|
+ override fun onClick(view: View) {
|
|
|
+ when (view?.id) {
|
|
|
+ R.id.case_save -> {
|
|
|
+ if (listener != null) listener?.onSave()
|
|
|
+ }
|
|
|
+ R.id.cases_delete -> {
|
|
|
+ if (listener != null) listener?.onRemove()
|
|
|
+ }
|
|
|
+ R.id.case_undo -> {
|
|
|
+ if (listener != null) listener?.onUndo()
|
|
|
+ }
|
|
|
+ R.id.case_reset -> {
|
|
|
+ if (listener != null) listener?.onReset()
|
|
|
+ }
|
|
|
+ R.id.case_move_point->{
|
|
|
+ if(listener != null) listener?.onMoveCasePoint()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 开关事件
|
|
|
+ * @param view CompoundButton
|
|
|
+ * @param isChecked Boolean
|
|
|
+ */
|
|
|
+ override fun onCheckedChanged(view: CompoundButton?, isChecked: Boolean) {
|
|
|
+ when (view?.id) {
|
|
|
+ R.id.case_on_draw -> {
|
|
|
+ if (isChecked) {
|
|
|
+ if (listener != null) {
|
|
|
+ listener?.onStartDraw()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (listener != null) listener?.onStopDraw()
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 重写页面初始化
|
|
|
+ */
|
|
|
+ override fun initPage() {
|
|
|
+ switchDraw?.isChecked = false
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置操作监听
|
|
|
+ * @param listener OnOperationListener 操作监听
|
|
|
+ */
|
|
|
+ fun setListener(listener: OnOperationListener) {
|
|
|
+ this.listener = listener
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 订阅事件执行
|
|
|
+ * @param event EventAction
|
|
|
+ */
|
|
|
+ @Subscribe
|
|
|
+ fun onAction(event: EventCaseToolsAction) {
|
|
|
+ when (event.action) {
|
|
|
+ EventCaseToolsAction.CLOSE_DRAW -> {
|
|
|
+ switchDraw?.isChecked = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo: 2023/4/17 生命周期
|
|
|
+ /**
|
|
|
+ * 销毁
|
|
|
+ */
|
|
|
+ override fun onDestroy() {
|
|
|
+ // todo: 2023/4/17 解除订阅监听
|
|
|
+ CrApplication.getEventBus().unregister(this)
|
|
|
+ super.onDestroy()
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo: 2023/4/17 订阅事件类
|
|
|
+ class EventCaseToolsAction @JvmOverloads constructor(
|
|
|
+ action: Int
|
|
|
+ ) {
|
|
|
+ // define: 2023/4/17 定义动作常量
|
|
|
+ companion object {
|
|
|
+ const val CLOSE_DRAW: Int = 0
|
|
|
+ }
|
|
|
+
|
|
|
+ // define: 2023/4/17 定义动作
|
|
|
+ var action: Int = -1
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化
|
|
|
+ */
|
|
|
+ init {
|
|
|
+ this.action = action
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|