%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/tjamichg/cursos.tjamich.gob.mx/plugin/mindmap/edit-mindmap/vendor/js/
Upload File :
Create Path :
Current File : /home/tjamichg/cursos.tjamich.gob.mx/plugin/mindmap/edit-mindmap/vendor/js/MapsManager.js

/*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);
		}
	}

});

Zerion Mini Shell 1.0