fastkey_tool_manage

本文介绍了一个名为IBUS系统的配置界面,该界面允许用户通过拖拽操作调整系统菜单的显示顺序,并提供了添加、删除和调整菜单项位置的功能。此外,还支持通过应用和确定按钮保存更改。
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<head>
<title>IBUS</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />


<%@ include file="common/tablib.jsp" %>

<link rel="stylesheet" type="text/css" href="css/skins/ibusblue/dhtmlxwindows_dhx_ibusblue.css" />

<link rel="STYLESHEET" type="text/css" href="css/dhtmlxtree.css">
<link rel="stylesheet" type="text/css" href="css/dhtmlxwindows.css" />
<link rel="stylesheet" type="text/css" href="css/css.css" />




<script src="js/dhtmlx/dhtmlxcommon.js"></script>
<script src="js/dhtmlx/dhtmlxcontainer.js"></script>
<script src="js/dhtmlx/dhtmlxwindows.js"></script>
<script  src="js/dhtmlx/dhtmlxtree.js"></script>

<script src="js/dhtmlx/dhtmlxtoolbar.js"></script>

<script src="js/util/ibus_util.js"></script>
<script src="js/util/jquery-1.4.4.js"></script>
<script src="js/ibus/boc_invoker.js"></script>
<script src="js/ibus/ToolEntity.js"></script>
<script src="js/ibus/ToolBarEntity.js"></script>
<script src="js/ibus/FastkeyEntity.js"></script>

</head>

<body style="background:#f1f8ff; ">
<form id="form1" name="form1" method="post" action="">
<input type="hidden" id="buttonArray" value=""/>
<input type="hidden" id="updateButtonId" value=""/>
<input type="hidden" id="targetId" value="<%=request.getParameter("targetId") %>"/>


<table width="500" border="0" cellspacing="0" cellpadding="0" style="margin:3px 0 0 3px;">
  <tr style="height:30px;">
  	<td width="200">系统菜单</td>
  	<td width="100"> </td>
  	<td width="200">当前显示快捷键</td>
  </tr>
  
  <tr>
	
  <td valign="top">
		<div id="templatemo">
			<div id="templatemo_tooltree" style="height:300px; width:200px">
				
			</div>
		</div>
	</td>
    
    
	<td align="center">
	  <p>
	    <input type="button" id="addButton" 		value="添加->" 	rel="no_init_style" 	class="toolbarbnt" 	onclick="onClickAddButton()"/>
	    <input type="button" id="upButton"  		value="上  移" 		rel="no_init_style" 	class="toolbarbnt" 	onclick="onClickUpButton()"/>
	    <input type="button" id="downButton"  		value="下  移" 		rel="no_init_style" 	class="toolbarbnt" 	onclick="onClickDownButton()"/>    
	    <input type="button" id="removeButton" 		value="<-移除" 	rel="no_init_style" 	class="toolbarbnt" 	onclick="onClickRemoveButton()"/>
	  </p>
    </td>
        
        
        <td style=" vertical-align:top">
		<div id="templatemo">
			<div id="templatemo_menu" onDragStart= "return   false "   onSelectStart= "return   false " >
				<ul id="currentButtonUl">
 
				</ul>
			</div>
		</div>
	</td>
    
    
  </tr>
</table>


<div id="srcDiv" style="position: relative;padding-top:5px; text-align:center; width:500px;">
	<table width="500" border="0" cellpadding="0" cellspacing="0">
  <tr>
	<td align="center">
		<input type="button" name="ensure" value="确 定" rel="no_init_style" class="winensurebnt" onclick="ensureButton()"/>
		 
		<input type="button" name="cancel" value="取 消" rel="no_init_style" class="winclosedbnt" onclick="closeWindow();"/>
    	 
    	<input type="button" name="apply" value="应 用" rel="no_init_style" class="winapplybnt" onclick="applyButton();"/>
    </td>
  </tr>
</table>
</div>

</form>

<script type="text/javascript">

	var tabarId = document.getElementById("targetId").value;
	
	var designerObj = parent.getSelfDesigner(tabarId);
	var appid = designerObj.appid;

	var add_newbutton_frame = null;
	var update_newButton_frame = null;
	var dhxWins = designerObj.dhxWins;
	var userMenusArray=new Array();//存放当前显示工具对象
	var userMenusMap=new Map();//存放菜单项对象
	
	var toolTree = new dhtmlXTreeObject("templatemo_tooltree" ,"100%","100%",0);
	toolTree.setImagePath("imgs/ibus/system/");

	loadSystemTreeXml();
	
	//加载当前显示工具
	loadUserToolEntity();
	//初始化按扭样式
	initButtonCss();
	
	
	//点击树节点触发事件(设置按扭的样式)
	toolTree.attachEvent("onSelect", function(id){
		
		initButtonCss();
		var selectLevel=toolTree.getLevel(id);
		var img = toolTree.getItemImage(id,0,null);
		
		if(selectLevel==4 || img=="toolimg02.gif"){
			jQuery("#addButton").removeAttr("disabled");
		}		
	});
	
	
	
	//双击树节点时添加工具到当前显示工具列表
	toolTree.attachEvent("onDblClick", function(curId){
		
		var selectLevel=toolTree.getLevel(curId);
		var img = toolTree.getItemImage(curId,0,null);
	    
		if(selectLevel==4 || img=="toolimg02.gif"){

			for(var i=0;i<userMenusArray.length;i++){
			
				if(curId == userMenusArray[i].id){
					alert("当前显示工具列表中已包括事件,不能重复添加!");
					return false;
				}
			}
			
			userMenusArray.push(userMenusMap.get(curId));
			viewUserTool();
			return true;
		}
	});
	

	//添加
	function onClickAddButton(){
	    var curId=toolTree.getSelectedItemId(); 
		var selectLevel=toolTree.getLevel(curId);
		var img = toolTree.getItemImage(curId,0,null);
	    
		if(selectLevel==4 || img=="toolimg02.gif"){

			for(var i=0;i<userMenusArray.length;i++){
			
				if(curId == userMenusArray[i].id){
					alert("当前显示工具列表中已包括事件,不能重复添加!");
					return false;
				}
			}
			
			userMenusArray.push(userMenusMap.get(curId));
			viewUserTool();
			return true;
		}
	}
	
	
	//上移
	function onClickUpButton(){
		var curElement = jQuery(".current");
		if(curElement == null);
		var curId=jQuery(curElement).attr("id");
		
		var tempElement = null;
		var tempIndex = -1;
		
		for(var i=0;i<userMenusArray.length;i++){
		
			if(curId == userMenusArray[i].id){
				tempIndex = i-1;
				tempElement = userMenusArray[i];
				userMenusArray[i] = userMenusArray[i-1];
				userMenusArray[i-1] = tempElement;
				break;
			}
		}
		viewUserTool();
		initButtonCss();
		jQuery(jQuery("li[name='currentButton']")[tempIndex]).trigger("onclick");
	}
	

	//下移
	function onClickDownButton(){
	    
		var curElement = jQuery(".current");
		if(curElement == null) return;
		
		var curId=jQuery(curElement).attr("id");
		
		var tempElement = null;
		var tempIndex = 0;
		
		for(var i=0; i<userMenusArray.length; i++){
		
			if(curId == userMenusArray[i].id){
				tempIndex = i+1;
				tempElement = userMenusArray[i];
				userMenusArray[i] = userMenusArray[i+1];
				userMenusArray[i+1] = tempElement;
				break;
			}
		}
		viewUserTool();
		initButtonCss();
		jQuery(jQuery("li[name='currentButton']")[tempIndex]).trigger("onclick");
	}
	
		
	//移除
	function onClickRemoveButton(){
	
		var curElement = jQuery(".current");
		if(curElement == null) return;
		
		
		var curId=jQuery(curElement).attr("id");
		var tempArray=new Array();
		for(var i=0;i<userMenusArray.length;i++){
		
			if(curId != userMenusArray[i].id){
					tempArray.push(userMenusArray[i]);
			}
		}
		
		userMenusArray=tempArray;
		viewUserTool();
		initButtonCss();
		
		if(jQuery("li[name='currentButton']").length < 1){
			jQuery("li").removeClass("current");
		}else{
			jQuery(jQuery("li[name='currentButton']")[0]).trigger("onclick");
		}	
		
	}

	
	
	//设置当前显示工具 选中状态CSS
	function setItemSelected(curElement){

		jQuery("li").removeClass("current");
		curElement.className = "current";
		
		initButtonCss();
		
		var buttonArray = jQuery("li[name='currentButton']");
		
		var curId=jQuery(curElement).attr("id");
		var firstId = jQuery(buttonArray[0]).attr("id");
		var lastID = jQuery(buttonArray[buttonArray.length-1]).attr("id");
			
		jQuery("#removeButton").removeAttr("disabled");
		if(curId != firstId){
			jQuery("#upButton").removeAttr("disabled");
		}
			
		if(curId != lastID){
			jQuery("#downButton").removeAttr("disabled");
		}			
	}


	//设置当前显示工具 的双击响应事件
	function moveToAnotherSize(element){
	
		var curId=jQuery(element).attr("id");
		var tempArray=new Array();
		for(var i=0;i<userMenusArray.length;i++){
		
			if(curId != userMenusArray[i].id){
					tempArray.push(userMenusArray[i]);
			}
		}
		
		userMenusArray=tempArray;
		viewUserTool();
		initButtonCss();
		
		if(jQuery("li[name='currentButton']").length < 1){
			jQuery("li").removeClass("current");
		}else{
			jQuery(jQuery("li[name='currentButton']")[0]).trigger("onclick");
		}	
	}
	
	//从父页面designerObj对象中读取快捷键数据, 采用复制方式加载数据
	function loadUserToolEntity(){

		var userArray=new Array();

		if (designerObj.fastkeyEntity.menusArray==null) {
			return;
		}
	
		for(var i=0; i<designerObj.fastkeyEntity.menusArray.length; i++){
			//userArray[i]=designerObj.fastkeyEntity.menusArray[i];
			userArray.push(designerObj.fastkeyEntity.menusArray[i]);
		}
		
		userMenusArray=userArray;
		viewUserTool();
	}
	
	//加载菜单项对象
	function loadMenusObject(treeXmlString){
	    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	    xmlDoc.loadXML(treeXmlString);
		//alert(serializeXml(xmlDoc));
		
		var mNodes = xmlDoc.childNodes[1].childNodes;
		if (mNodes!=null) {
		    treeXml(mNodes);	
		}
	}
	
	//递归解析树XML
	function treeXml(el){
	    for ( var i = 0; i < el.length; i++) {
			var menuEntity = new FastMenuEntity()
			menuEntity.id = el[i].getAttribute("id");
			menuEntity.code = el[i].getAttribute("code");
			menuEntity.name = el[i].getAttribute("text");
			menuEntity.img = el[i].getAttribute("img");
			menuEntity.targer = el[i].getAttribute("url");
			userMenusMap.put(menuEntity.id,menuEntity);
			var mNodes = el[i].childNodes;
			if (mNodes!=null) {
		        treeXml(mNodes);	
		    }
				
		}
	}
	
	//根据用户工具数组对象,显示工具
	function viewUserTool(){
		
		var innerHTML="";
		for(var i = 0; i < userMenusArray.length; i++){
			
			var menuEntity=userMenusArray[i];
			innerHTML=innerHTML+"<li name=\"currentButton\"  id=\""+menuEntity.id+"\"  onclick=\"setItemSelected(this)\" ondblclick=\"moveToAnotherSize(this)\"><a><b><img src=\"imgs/ibus/system/toolimg02.gif" + "\" align=\"absmiddle\" /> "+menuEntity.name+"</b></a></li>";
		}
		jQuery("ul[id='currentButtonUl']").empty();
		jQuery(innerHTML).appendTo(jQuery("ul[id='currentButtonUl']"));	
		return true;
	}
	
	
	
	
	//加载系统菜单树数据
	function loadSystemTreeXml(){
		
		var clientController = new ClientBOController("fastkey_boc","loadTreeXml");
		clientController.addParameter("appid",appid);
		bocInvoker.bocName = "BOControllerAction";
		bocInvoker.bocMethod = "executeBoc";
	    var treeXml = bocInvoker.invokeSynchronized(clientController);
		toolTree.loadXMLString(treeXml,null);
		
		//加载菜单项对象
	    loadMenusObject(treeXml);
	}
	
	function initButtonCss(){
		
		jQuery("#addButton").attr("disabled","true");
		jQuery("#upButton").attr("disabled","true");
		jQuery("#downButton").attr("disabled","true");
		jQuery("#removeButton").attr("disabled","true");
		//jQuery("#updateButton").attr("disabled","true");
		//jQuery("#deleteButton").attr("disabled","true");
		
	}
	
	//点击取消时关闭窗口
	function closeWindow() {
		dhxWins.window("fastkey").close();				
	}



	//点击应用按钮
	function applyButton(){
		
		var toolbarObj = designerObj.ibusFastkey;
		toolbarObj.clearAll();
		
		parent.viewFastkey(toolbarObj, userMenusArray);
		
		var tempArray=new Array();
		designerObj.fastkeyEntity.menusArray = new Array();
		
		for(var j=0; j<userMenusArray.length; j++){
			tempArray[j]=userMenusArray[j];
			designerObj.fastkeyEntity.menusArray.push(userMenusArray[j]);
		}
		
		//designerObj.fastkeyEntity.menusArray=tempArray;
		var xmlStr = getFastkeyEntityXmlStr(designerObj.fastkeyEntity);
		//alert(xmlStr);
		//alert(designerObj.fastkeyEntity.menusArray);
		
		//alert(getFastkeyEntityXmlStr(designerObj.fastkeyEntity));
		
		var clientController = new ClientBOController("fastkey_boc","save");
		clientController.addParameter("xmlStr",xmlStr);
		bocInvoker.bocName = "BOControllerAction";
		bocInvoker.bocMethod = "executeBoc";
	    var returnStr = bocInvoker.invokeSynchronized(clientController);
	    alert(returnStr);
	}
	
	
	
	//点击确定按钮
	function ensureButton(){
		applyButton();
		closeWindow();
	}
	
	
</script>

</body>
</html>

【负荷预测】基于VMD-CNN-LSTM的负荷预测研究(Python代码实现)内容概要:本文介绍了基于变分模态分解(VMD)、卷积神经网络(CNN)和长短期记忆网络(LSTM)相结合的VMD-CNN-LSTM模型在负荷预测中的研究与应用,采用Python代码实现。该方法首先利用VMD对原始负荷数据进行分解,降低序列复杂性并提取不同频率的模态分量;随后通过CNN提取各模态的局部特征;最后由LSTM捕捉时间序列的长期依赖关系,实现高精度的负荷预测。该模型有效提升了预测精度,尤其适用于非平稳、非线性的电力负荷数据,具有较强的鲁棒性和泛化能力。; 适合人群:具备一定Python编程基础和深度学习背景,从事电力系统、能源管理或时间序列预测相关研究的科研人员及工程技术人员,尤其适合研究生、高校教师及电力行业从业者。; 使用场景及目标:①应用于日前、日内及实时负荷预测场景,支持智慧电网调度与能源优化管理;②为研究复合型深度学习模型在非线性时间序列预测中的设计与实现提供参考;③可用于学术复现、课题研究或实际项目开发中提升预测性能。; 阅读建议:建议读者结合提供的Python代码,深入理解VMD信号分解机制、CNN特征提取原理及LSTM时序建模过程,通过实验调试参数(如VMD的分解层数K、惩罚因子α等)优化模型性能,并可进一步拓展至风电、光伏等其他能源预测领域。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值