This commit is contained in:
Xes
2025-08-14 22:39:38 +02:00
parent 3641e93527
commit 5403f346e3
3370 changed files with 327179 additions and 0 deletions

View 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);
}
}
});