upgrade
This commit is contained in:
125
plugin/mindmap/edit-mindmap/vendor/js/MapsManager.js
vendored
Normal file
125
plugin/mindmap/edit-mindmap/vendor/js/MapsManager.js
vendored
Normal file
@@ -0,0 +1,125 @@
|
||||
/*global kampfer*/
|
||||
kampfer.require('Class');
|
||||
kampfer.require('store');
|
||||
|
||||
kampfer.provide('mindMap.MapsManager');
|
||||
|
||||
/*
|
||||
* 负责维护localStorage
|
||||
* MapsManager提供的查询方法返回的都是对数据的引用,因此它们都是只读的。
|
||||
* 绝对不要直接对它们进行写操作。
|
||||
* localStorage目前维护两部分内容:
|
||||
* 1. map的信息
|
||||
* 2. clipboard的信息
|
||||
*/
|
||||
|
||||
kampfer.mindMap.MapsManager = kampfer.Class.extend({
|
||||
|
||||
initializer : function(appName) {
|
||||
if(appName) {
|
||||
this._appName = appName;
|
||||
}
|
||||
},
|
||||
|
||||
_appName : 'mindMap',
|
||||
|
||||
getAppName : function() {
|
||||
return this._appName;
|
||||
},
|
||||
|
||||
//从localStorage中读取mindMap保存的数据。
|
||||
//如果没有任何数据,那么就创建一个新的空的数据对象,并将它写入 localStorage。
|
||||
getMapStorage : function() {
|
||||
var mapStore = kampfer.store.get(this._appName);
|
||||
if(!mapStore) {
|
||||
mapStore = {};
|
||||
|
||||
mapStore.maps = {};
|
||||
mapStore.maps._count = 0;
|
||||
|
||||
kampfer.store.set(this._appName, mapStore);
|
||||
}
|
||||
return mapStore;
|
||||
},
|
||||
|
||||
getMapData : function(name) {
|
||||
var mapStore = this.getMapStorage();
|
||||
if(name) {
|
||||
return mapStore.maps[name];
|
||||
}
|
||||
},
|
||||
|
||||
//只接受object作为参数
|
||||
saveMapToLocalStorage : function(data) {
|
||||
if( kampfer.type(data) === 'object' ) {
|
||||
var mapStorage = this.getMapStorage(),
|
||||
name = data.name;
|
||||
if( !(name in mapStorage.maps) ) {
|
||||
mapStorage.maps._count++;
|
||||
}
|
||||
mapStorage.maps[name] = data;
|
||||
kampfer.store.set(this._appName, mapStorage);
|
||||
}
|
||||
},
|
||||
|
||||
getMapCount : function() {
|
||||
var mapStorage = this.getMapStorage();
|
||||
return mapStorage.maps._count;
|
||||
},
|
||||
|
||||
//返回包含所有map名字的数组
|
||||
getMapList : function() {
|
||||
var mapStorage = this.getMapStorage();
|
||||
if(mapStorage.maps._count > 0) {
|
||||
var ret = [];
|
||||
for(var map in mapStorage.maps) {
|
||||
if( map !== '_count') {
|
||||
ret.push(mapStorage.maps[map]);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
},
|
||||
|
||||
hasMap : function(mapName) {
|
||||
var mapStore = kampfer.store.get(this._appName);
|
||||
if(mapStore) {
|
||||
if(mapName in mapStore.maps) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
removeMap : function(mapName) {
|
||||
if( this.hasMap(mapName) ) {
|
||||
var mapStore = kampfer.store.get(this._appName);
|
||||
delete mapStore.maps[mapName];
|
||||
kampfer.store.set(this._appName, mapStore);
|
||||
}
|
||||
},
|
||||
|
||||
setClipboard : function(data) {
|
||||
var mapStore = kampfer.store.get(this._appName);
|
||||
if(mapStore) {
|
||||
mapStore.clipboard = data;
|
||||
kampfer.store.set(this._appName, mapStore);
|
||||
}
|
||||
},
|
||||
|
||||
getClipboard : function() {
|
||||
var mapStore = kampfer.store.get(this._appName);
|
||||
if(mapStore && mapStore.clipboard) {
|
||||
return mapStore.clipboard;
|
||||
}
|
||||
},
|
||||
|
||||
removeClipboard : function() {
|
||||
var mapStore = kampfer.store.get(this._appName);
|
||||
if(mapStore && mapStore.clipboard) {
|
||||
delete mapStore.clipboard;
|
||||
kampfer.store.set(this._appName, mapStore);
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user