Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
x649585723
incubator-echarts
提交
a7126332
I
incubator-echarts
项目概览
x649585723
/
incubator-echarts
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
incubator-echarts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a7126332
编写于
12月 31, 2015
作者:
P
pah100
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
datazoom history
上级
a088695c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
147 addition
and
79 deletion
+147
-79
src/component/dataZoom/DataZoomModel.js
src/component/dataZoom/DataZoomModel.js
+0
-2
src/component/dataZoom/HistoryManager.js
src/component/dataZoom/HistoryManager.js
+128
-0
src/component/toolbox/feature/DataZoom.js
src/component/toolbox/feature/DataZoom.js
+15
-77
src/component/toolbox/feature/Restore.js
src/component/toolbox/feature/Restore.js
+4
-0
未找到文件。
src/component/dataZoom/DataZoomModel.js
浏览文件 @
a7126332
...
...
@@ -7,9 +7,7 @@ define(function(require) {
var
env
=
require
(
'
zrender/core/env
'
);
var
echarts
=
require
(
'
../../echarts
'
);
var
modelUtil
=
require
(
'
../../util/model
'
);
var
numberUtil
=
require
(
'
../../util/number
'
);
var
AxisProxy
=
require
(
'
./AxisProxy
'
);
var
asc
=
numberUtil
.
asc
;
var
each
=
zrUtil
.
each
;
var
eachAxisDim
=
modelUtil
.
eachAxisDim
;
...
...
src/component/dataZoom/HistoryManager.js
0 → 100644
浏览文件 @
a7126332
/**
* @file History manager.
*/
define
(
function
(
require
)
{
var
zrUtil
=
require
(
'
zrender/core/util
'
);
var
each
=
zrUtil
.
each
;
var
ATTR
=
'
\
0_ec_hist_mgr
'
;
/**
* Only one instance exists in one chart instance.
*
* @class
*/
var
HistoryManager
=
function
(
ecModel
)
{
/**
* @readOnly
* @type {module: echarts/model/Global}
*/
this
.
ecModel
=
ecModel
;
/**
* [{key: dataZoomId, value: {dataZoomId, range}}, ...]
* History length of each dataZoom may be different.
* this._history[0] is used to store origin range.
* @private
* @type {Array.<Object>}
*/
this
.
_history
=
[{}];
};
HistoryManager
.
prototype
=
{
constructor
:
HistoryManager
,
/**
* @public
* @param {Object} newSnapshot {dataZoomId, batch: [payloadInfo, ...]}
*/
push
:
function
(
newSnapshot
)
{
var
history
=
this
.
_history
;
var
ecModel
=
this
.
ecModel
;
// If previous dataZoom can not be found,
// complete an range with current range.
each
(
newSnapshot
,
function
(
batchItem
,
dataZoomId
)
{
var
i
=
history
.
length
-
1
;
for
(;
i
>=
0
;
i
--
)
{
var
snapshot
=
history
[
i
];
if
(
snapshot
[
dataZoomId
])
{
break
;
}
}
if
(
i
<
0
)
{
// No origin range set, create one by current range.
var
dataZoomModel
=
ecModel
.
queryComponents
(
{
mainType
:
'
dataZoom
'
,
subType
:
'
select
'
,
id
:
dataZoomId
}
)[
0
];
if
(
dataZoomModel
)
{
var
percentRange
=
dataZoomModel
.
getPercentRange
();
history
[
0
][
dataZoomId
]
=
{
dataZoomId
:
dataZoomId
,
start
:
percentRange
[
0
],
end
:
percentRange
[
1
]
};
}
}
});
history
.
push
(
newSnapshot
);
},
/**
* @public
* @return {Object} snapshot
*/
pop
:
function
()
{
var
history
=
this
.
_history
;
var
head
=
history
[
history
.
length
-
1
];
history
.
length
>
1
&&
history
.
pop
();
// Find top for all dataZoom.
var
snapshot
=
{};
each
(
head
,
function
(
batchItem
,
dataZoomId
)
{
for
(
var
i
=
history
.
length
-
1
;
i
>=
0
;
i
--
)
{
var
batchItem
=
history
[
i
][
dataZoomId
];
if
(
batchItem
)
{
snapshot
[
dataZoomId
]
=
batchItem
;
break
;
}
}
});
return
snapshot
;
},
/**
* @public
*/
clear
:
function
()
{
this
.
_history
=
[{}];
},
/**
* @public
* @return {number} records. always >= 1.
*/
count
:
function
()
{
return
this
.
_history
.
length
;
}
};
/**
* @return {module:echarts/component/dataZoom/HistoryManager}
*/
HistoryManager
.
getInstance
=
function
(
ecModel
)
{
var
instance
=
ecModel
[
ATTR
];
if
(
!
instance
)
{
instance
=
ecModel
[
ATTR
]
=
new
HistoryManager
(
ecModel
);
}
return
instance
;
};
return
HistoryManager
;
});
\ No newline at end of file
src/component/toolbox/feature/DataZoom.js
浏览文件 @
a7126332
...
...
@@ -6,6 +6,7 @@ define(function(require) {
var
SelectController
=
require
(
'
../../helper/SelectController
'
);
var
BoundingRect
=
require
(
'
zrender/core/BoundingRect
'
);
var
Group
=
require
(
'
zrender/container/Group
'
);
var
HistoryManager
=
require
(
'
../../dataZoom/HistoryManager
'
);
var
each
=
zrUtil
.
each
;
var
asc
=
numberUtil
.
asc
;
...
...
@@ -37,15 +38,6 @@ define(function(require) {
* @type {Object}
*/
this
.
_selectedMap
=
{
zoom
:
false
,
back
:
false
};
/**
* [{key: dataZoomId, value: {dataZoomId, range}}, ...]
* History length of each dataZoom may be different.
* this._history[0] is used to store origin range.
* @private
* @type {Array.<Object>}
*/
this
.
_history
=
[{}];
}
DataZoom
.
defaultOption
=
{
...
...
@@ -77,12 +69,10 @@ define(function(require) {
proto
.
remove
=
function
()
{
this
.
_disposeController
();
this
.
_history
=
{};
};
proto
.
dispose
=
function
(
ecModel
,
api
)
{
this
.
_disposeController
();
this
.
_history
=
{};
this
.
_controllerGroup
&&
api
.
getZr
().
remove
(
this
.
_controllerGroup
);
};
...
...
@@ -96,6 +86,7 @@ define(function(require) {
var
zr
=
api
.
getZr
();
featureModel
.
setIconStatus
(
'
zoom
'
,
isZoomActive
?
'
emphasis
'
:
'
normal
'
);
if
(
isZoomActive
)
{
zr
.
setDefaultCursorStyle
(
'
crosshair
'
);
...
...
@@ -117,7 +108,13 @@ define(function(require) {
},
back
:
function
(
controllerGroup
,
featureModel
,
ecModel
,
api
)
{
this
.
_dispatchAction
(
this
.
_popHistory
(),
api
);
var
histMgr
=
HistoryManager
.
getInstance
(
ecModel
);
var
snapshot
=
histMgr
.
pop
();
// Update state of back button.
this
.
_selectedMap
.
back
=
histMgr
.
count
()
<=
1
;
this
.
_dispatchAction
(
snapshot
,
api
);
}
};
...
...
@@ -209,7 +206,12 @@ define(function(require) {
}
});
this
.
_pushHistory
(
snapshot
,
ecModel
);
var
histMgr
=
HistoryManager
.
getInstance
(
ecModel
);
histMgr
.
push
(
snapshot
);
// Update state of back button.
this
.
_selectedMap
.
back
=
histMgr
.
count
()
<=
1
;
this
.
_dispatchAction
(
snapshot
,
api
);
};
...
...
@@ -264,70 +266,6 @@ define(function(require) {
});
};
/**
* @private
*/
proto
.
_pushHistory
=
function
(
newSnapshot
,
ecModel
)
{
var
history
=
this
.
_history
;
// If previous dataZoom can not be found,
// complete an range with current range.
each
(
newSnapshot
,
function
(
batchItem
,
dataZoomId
)
{
var
i
=
history
.
length
-
1
;
for
(;
i
>=
0
;
i
--
)
{
var
snapshot
=
history
[
i
];
if
(
snapshot
[
dataZoomId
])
{
break
;
}
}
if
(
i
<
0
)
{
// No origin range set, create one by current range.
var
dataZoomModel
=
ecModel
.
queryComponents
(
{
mainType
:
'
dataZoom
'
,
subType
:
'
select
'
,
id
:
dataZoomId
}
)[
0
];
if
(
dataZoomModel
)
{
var
percentRange
=
dataZoomModel
.
getPercentRange
();
history
[
0
][
dataZoomId
]
=
{
dataZoomId
:
dataZoomId
,
start
:
percentRange
[
0
],
end
:
percentRange
[
1
]
};
}
}
});
history
.
push
(
newSnapshot
);
// Update state of back button.
this
.
_selectedMap
.
back
=
history
.
length
<=
1
;
};
/**
* @private
*/
proto
.
_popHistory
=
function
()
{
var
history
=
this
.
_history
;
var
head
=
history
[
history
.
length
-
1
];
history
.
length
>
1
&&
history
.
pop
();
// Update state of back button.
this
.
_selectedMap
.
back
=
history
.
length
<=
1
;
// Find top for all dataZoom.
var
snapshot
=
{};
each
(
head
,
function
(
batchItem
,
dataZoomId
)
{
for
(
var
i
=
history
.
length
-
1
;
i
>=
0
;
i
--
)
{
var
batchItem
=
history
[
i
][
dataZoomId
];
if
(
batchItem
)
{
snapshot
[
dataZoomId
]
=
batchItem
;
break
;
}
}
});
return
snapshot
;
};
require
(
'
../featureManager
'
).
register
(
'
dataZoom
'
,
DataZoom
);
...
...
src/component/toolbox/feature/Restore.js
浏览文件 @
a7126332
define
(
function
(
require
)
{
'
use strict
'
;
var
HistoryManager
=
require
(
'
../../dataZoom/HistoryManager
'
);
function
Restore
(
model
)
{
this
.
model
=
model
;
}
...
...
@@ -15,6 +17,8 @@ define(function(require) {
var
proto
=
Restore
.
prototype
;
proto
.
onclick
=
function
(
ecModel
,
api
,
type
)
{
HistoryManager
.
getInstance
(
ecModel
).
clear
();
api
.
dispatchAction
({
type
:
'
restore
'
,
from
:
this
.
uid
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录