⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 portalstate.js

📁 一个简单的Ext例子
💻 JS
字号:
/**
 * 门户状态管理
 */
Ext.ux.PortalState = function() {
	// -------------------- private 属性 ------------------
	var s = new Ext.state.Provider()
	var sm = Ext.state.Manager;
	var stateId, portal, portalId;

	// -------------------- private 方法 ------------------
	// 状态保存
	function saveState() {
		// 记忆布局
		var config
		try {
			config = portal.getConfig()
		} catch (e) {
			config = null
		} // 最大化时出错,避免保存
		if (!config)
			return

		divo.saveProfile({
			userId : divo.getUserId(),
			msgCode : portalId + '-layout',
			msgValue : s.encodeValue(config)
		})

		// 记忆打开的portlet
		var portletInfos = [];
		var portlets = [];
		var colNum = portal.items.length;
		var rowIndex = 0;
		while (true) {
			var bFound = false;
			for (var i = 0; i < colNum; i++) {
				var p = portal.items.itemAt(i).items.itemAt(rowIndex);
				if (p && p.pInfo && p.pInfo.id) {
					portletInfos.push(p.pInfo);
					portlets.push(p);
					bFound = true;
				}
			}
			if (!bFound) {
				break;
			}
			rowIndex++;
		}

		if (portletInfos.length > 0)
			sm.set(stateId, portletInfos);

		// 记忆高度
		for (var i = 0; i < portlets.length; i++) {
			if (portlets[i].lastSize) {
				var h = portlets[i].lastSize.height;
				var sid = stateId + '-h-' + portletInfos[i].id;
				if (h)
					sm.set(sid, h);
			}
		}
	}

	// 获取保存的门户列数
	function getColNum() {
		var result
		divo.restoreProfile(function(retValue) {
			result = retValue;
		}, divo.getUserId(), portalId + '-columnNum')

		if (result && result.msgValue)
			return parseInt(result.msgValue)
		else
			return 4
	}

	// 记忆门户列数
	function saveColNum(colNum) {
		divo.saveProfile({
			userId : divo.getUserId(),
			msgCode : portalId + '-columnNum',
			msgValue : colNum
		})
	}

	// -------------------- public 方法 ------------------
	return {
		/**
		 * 初始化
		 */
		init : function(_portalId, _stateId) {
			portalId = _portalId
			stateId = _stateId
			portal = Ext.ComponentMgr.get(portalId)
		},
		/**
		 * 保存门户状态
		 */
		save : function() {
			saveState();
		},
		/**
		 * 取得可见的门户
		 */
		getVisiblePortlets : function() {
			return sm.get(stateId);
		},
		/**
		 * 取得保存的高度
		 */
		getHeight : function(portletId) {
			return sm.get(stateId + '-h-' + portletId);
		},
		/**
		 * 获取保存的门户列数
		 */
		getColNum : function() {
			return getColNum();
		},
		/**
		 * 记忆门户列数
		 */
		saveColNum : function(colNum) {
			saveColNum(colNum);
		},
		/**
		 * 恢复门户的收缩状态
		 */
		restoreCollapseState : function(ps) {
			var result;
			for (var i = 0; i < ps.length; i++) {
				divo.restoreProfile(function(retValue) {
					result = retValue;
				}, divo.getUserId(), ps[i].pInfo.id + '-collapsed');
				if (result && result.msgValue == 'Y') {
					ps[i].collapse();
				}
			}
		}

	};
}
// EOP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -