From d74b495736f0c04522ec54274b70fed0ded2878d Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 27 Jun 2023 11:30:06 +0800
Subject: [PATCH] 任务新增导出
---
public/map/controls/toolbar/tools/BaseTool.js | 239 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 239 insertions(+), 0 deletions(-)
diff --git a/public/map/controls/toolbar/tools/BaseTool.js b/public/map/controls/toolbar/tools/BaseTool.js
new file mode 100644
index 0000000..a300682
--- /dev/null
+++ b/public/map/controls/toolbar/tools/BaseTool.js
@@ -0,0 +1,239 @@
+/**
+ * 所有工具的基类,自定义工具必需继承于此。BaseTool定义了工具的所有必需方法,有必要时,请重写。
+ * @author 温杨彪 2015-9-12
+ **/
+define([
+ "dojo",
+ "dojo/_base/declare",
+ "dijit/_WidgetBase",
+ "dijit/_TemplatedMixin",
+ "dojo/text!controls/toolbar/tools/template.html",
+ "dojo/dom-construct",
+ "dojo/dom-attr",
+ "dojo/dom-style",
+ "dojo/_base/lang",
+ "dojo/on",
+ "dojo/dom-class"
+], function(
+ dojo,
+ declare,
+ _WidgetBase,
+ _TemplatedMixin,
+ template,
+ domConstruct,
+ domAttr,
+ domStyle,
+ lang,
+ on,
+ domClass
+) {
+ var RL = declare([_WidgetBase, _TemplatedMixin], {
+ templateString: template,
+ _activated: false,
+ map: null,
+ _graphicsLayer: null,
+ _label: "",
+ _toolCursor: null,
+ /**
+ * 正常的样式类
+ */
+ _normalClass: "toolbar-item-normal",
+
+ /**
+ * 正常的图标样式类
+ */
+ _normalIconClass: "",
+ /**
+ * 鼠标上浮的图标样式类
+ */
+ _overIconClass: "",
+ /**
+ * 鼠标上浮的样式类
+ */
+ _overClass: "toolbar-item-over",
+ /**
+ * 工具激活的样式类
+ */
+ _selectedClass: "toolbar-item-select",
+ /**
+ * 工具激活的图标样式类
+ */
+ _selectedIconClass: "",
+ _config: null,
+ _status: "",
+ /**
+ * 工具不可用的样式类
+ */
+ _disableClass: "",
+ _enable: true,
+ mapEvents: [],
+ /**
+ *
+ */
+ constructor: function(args) {
+ if (args) {
+ declare.safeMixin(this, args);
+ }
+ this.tooltip = "工具"
+ },
+ postCreate: function() {
+ domClass.add(this.tool, this._normalClass);
+ domClass.add(this.toolicon, this._normalIconClass);
+ },
+ _onClick: function(evt) {
+ evt.stopPropagation();
+ if (!this._enable) {
+ return;
+ }
+ },
+ _onMouseOverHandler: function(evt) {
+ evt.stopPropagation();
+ if (this._enable && this._activated == false) {
+ domClass.add(this.tool, this._overClass);
+ domClass.add(this.toolicon, this._overIconClass);
+ }
+ },
+ _onMouseOutHandler: function(evt) {
+ evt.stopPropagation();
+ if (this._enable && this._activated == false) {
+ domClass.remove(this.tool, this._overClass);
+ domClass.remove(this.toolicon, this._overIconClass);
+ }
+ },
+ _onMouseDownHandler: function(evt) {
+ evt.stopPropagation();
+ if (!this._enable)
+ return;
+ if (this._activated) {
+ this.deactivate(null);
+ this.ondeactivate();
+ } else {
+ this.activate(null);
+ }
+ },
+ _onMouseUpHandler: function(evt) {
+ evt.stopPropagation();
+ if (!this._enable)
+ return;
+ if (!this._activated) {
+ domClass.remove(this.toolicon, this._selectedIconClass);
+ domClass.remove(this.tool, this._selectedClass);
+ }
+ domClass.add(this.toolicon, this._overIconClass);
+ domClass.add(this.tool, this._overClass);
+ },
+ disable:function(){
+ this._enable=false;
+ domStyle.set(this.domNode,"background-color","#DBDBDB");
+ },
+ enable:function(){
+ this._enable=true;
+ domStyle.set(this.domNode,"background-color","");
+ },
+ activate: function(args) {
+ if (this._activated || !this._enable)
+ return;
+ this._activated = true;
+ domClass.add(this.toolicon, this._selectedIconClass);
+ domClass.add(this.tool, this._selectedClass);
+ if (this.map != null) {
+ var map = this.map;
+ var events = this.mapEvents;
+ events.push(map.on("click", this._onMapClickHandler));
+ events.push(map.on("mouse-down", this._onMapMouseDownHandler));
+ events.push(map.on("mouse-up", this._onMapMouseUpHandler));
+ events.push(map.on("mouse-move", this._onMapMouseMoveHandler));
+ events.push(map.on("dbl-click", this._onMapDoubleClickHandler));
+ }
+ this.onactivate();
+ },
+ onactivate: function() {
+ return this;
+ },
+ ondeactivate: function() {
+ return this;
+ },
+ deactivate: function(args) {
+ if (!this._enable || !this._activated)
+ return;
+ this._activated = false;
+ domClass.remove(this.toolicon, this._selectedIconClass);
+ domClass.remove(this.tool, this._selectedClass);
+ domClass.remove(this.toolicon, this._overIconClass);
+ domClass.remove(this.tool, this._overClass);
+ if (this.map != null) {
+ var events = this.mapEvents;
+ for (var i = 0; i < events.length; i++) {
+ events[i].remove();
+ }
+ this.mapEvents = [];
+ }
+ this.ondeactivate();
+ },
+ _onMapClickHandler: function(evt) {},
+ _onMapMouseDownHandler: function(evt) {},
+ _onMapMouseUpHandler: function(evt) {},
+ _onMapMouseMoveHandler: function(evt) {},
+ _onMapDoubleClickHandler: function(evt) {},
+ _setNormalClassAttr: function(normalClass) {
+ this._normalClass = normalClass;
+ },
+ _getNormalClassAttr: function() {
+ return this._normalClass;
+ },
+ _setOverClassAttr: function(overClass) {
+ this._overClass = overClass;
+ },
+ _getOverClassAttr: function() {
+ return this._overClass;
+ },
+ _setSelectedClassAttr: function(selectedClass) {
+ this._selectedClass = _selectedClass;
+ },
+ _getSelectedClassAttr: function() {
+ return this._selectedClass;
+ },
+ _setDisableClassAttr: function(disableClass) {
+ this._disableClass = disableClass;
+ },
+ _getDisableClassAttr: function() {
+ return this._disableClass;
+ },
+ _getStatusAttr: function() {
+ return this._status;
+ },
+ _setStatusAttr: function(status) {
+ this._status = status;
+ },
+ _setLabelAttr: function(label) {
+ if (label !== undefined && label != "") {
+ domStyle.set(this.toollabel, "display", "inline-block");
+ this._label = label;
+ } else {
+ domStyle.set(this.toollabel, "display", "none");
+ this._label = "";
+ }
+ this.toollabel.innerHTML = this._label;
+ },
+ getLabelAttr: function() {
+ return this.label;
+ }
+ });
+
+ /**
+ * 用户激活工具
+ */
+ RL.ACTIVATE_EVENT = "onactivate";
+
+ /**
+ * 用户用鼠标点击工具后的释放
+ **/
+ RL.DEACTIVATE_EVEN = "ondeactivate";
+
+ /**
+ * 工具自动释放事件。有的工具激活后只能使用一次就必须释放,比如测量、标注等
+ **/
+ RL.SELFDEACTIVATE_EVENT = "selfDeactivate";
+
+ return RL;
+});
\ No newline at end of file
--
Gitblit v1.9.3