desktop.jsp
上传用户:jhtang88
上传日期:2014-01-27
资源大小:28528k
文件大小:13k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. <%@ page contentType="text/html;charset=utf-8"%>
  2. <%@ page import="java.util.*" %>
  3. <%@ page import="cn.js.fan.web.*" %>
  4. <%@ page import="cn.js.fan.util.*" %>
  5. <%@ page import="com.redmoon.oa.person.*" %>
  6. <%@ page import="com.redmoon.oa.ui.*" %>
  7. <html>
  8. <head>
  9. <title>Desktop</title>
  10. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  11. <link href="common.css" rel="stylesheet" type="text/css">
  12. <style type='text/css'>
  13. <!--
  14. body{font-size:12px;}
  15. a:visited{text-decoration:none;color:#000000;}
  16. a:hover{text-decoration:underline;color:red;}
  17. a:link{text-decoration:none;color:#000000;}
  18. ul {
  19. list-style:none;
  20. margin-left: 0px;
  21. line-height:200%;
  22. margin-bottom:0px;
  23. }
  24. .title a:visited{text-decoration:none;color:#ffffff;}
  25. .title a:hover{text-decoration:underline;color:yellow;}
  26. .title a:link{text-decoration:none;color:#ffffff;}
  27. -->
  28. </style>
  29. <script src="inc/common.js"></script>
  30. <script language=JScript>
  31. <!--
  32. var x0=0,y0=0,x1=0,y1=0;
  33. var offx=6,offy=6;
  34. var moveable=false;
  35. var hover='orange',normal='#848684';//color;336699
  36. var fontColor = "#000000";
  37. var index=100;//z-index;
  38. //开始拖动;
  39. function startDrag(obj)
  40. {
  41. if(event.button==1)
  42. {
  43. //锁定标题栏;
  44. obj.setCapture();
  45. //定义对象;
  46. var win = obj.parentNode;
  47. var sha = win.nextSibling;
  48. //记录鼠标和层位置;
  49. x0 = event.clientX;
  50. y0 = event.clientY;
  51. x1 = parseInt(win.style.left);
  52. y1 = parseInt(win.style.top);
  53. win.style.zIndex += 1; 
  54. //记录颜色;
  55. normal = obj.style.backgroundColor;
  56. //改变风格;
  57. obj.style.backgroundColor = hover;
  58. win.style.borderColor = hover;
  59. obj.nextSibling.style.color = hover;
  60. sha.style.left = x1 + offx;
  61. sha.style.top  = y1 + offy;
  62. moveable = true;
  63. }
  64. }
  65. // 拖动;
  66. function drag(obj)
  67. {
  68. if(moveable)
  69. {
  70. var win = obj.parentNode;
  71. var sha = win.nextSibling;
  72. win.style.left = x1 + event.clientX - x0;
  73. win.style.top  = y1 + event.clientY - y0;
  74. sha.style.left = parseInt(win.style.left) + offx;
  75. sha.style.top  = parseInt(win.style.top) + offy;
  76. }
  77. }
  78. // 停止拖动;
  79. function stopDrag(obj, id)
  80. {
  81. if(moveable)
  82. {
  83. var win = obj.parentNode;
  84. var sha = win.nextSibling;
  85. var msg = obj.nextSibling;
  86. win.style.borderColor     = normal;
  87. obj.style.backgroundColor = normal;
  88. msg.style.color           = normal;
  89. sha.style.left = obj.parentNode.style.left;
  90. sha.style.top  = obj.parentNode.style.top;
  91. obj.releaseCapture();
  92. moveable = false;
  93. hidFrame.location.href = "user/desktop_adjust.jsp?id=" + id + "&left=" + win.offsetLeft + "&top=" + win.offsetTop + "&width=" + win.offsetWidth + "&height=" + win.offsetHeight + "&zIndex=" + win.style.zIndex;
  94. }
  95. }
  96. // 获得焦点;
  97. function getFocus(obj)
  98. {
  99. if(obj.style.zIndex!=index)
  100. {
  101. // index = index + 2;
  102. // var idx = index;
  103. var idx = obj.style.zIndex + 1;
  104. obj.style.zIndex=idx;
  105. obj.nextSibling.style.zIndex=idx-1;
  106. }
  107. }
  108. // 最小化;
  109. function min(obj)
  110. {
  111. var win = obj.parentNode.parentNode;
  112. var sha = win.nextSibling;
  113. var tit = obj.parentNode;
  114. var msg = tit.nextSibling;
  115. var flg = msg.style.display=="none";
  116. if(flg)
  117. {
  118. win.style.height  = parseInt(msg.style.height) + parseInt(tit.style.height) + 2*2;
  119. sha.style.height  = win.style.height;
  120. msg.style.display = "block";
  121. obj.innerHTML = "0";
  122. }
  123. else
  124. {
  125. win.style.height  = parseInt(tit.style.height) + 2*2;
  126. sha.style.height  = win.style.height;
  127. obj.innerHTML = "2";
  128. msg.style.display = "none";
  129. }
  130. }
  131. // 创建一个对象;
  132. function xWin(id,l,t,w,h,tit,msg, index, pageList)
  133. {
  134. // index = index+2;
  135. this.id      = id;
  136. this.width   = w;
  137. this.height  = h;
  138. this.left    = l;
  139. this.top     = t;
  140. this.zIndex  = index;
  141. this.title   = tit;
  142. this.message = msg;
  143. this.obj     = null;
  144. this.bulid   = bulid;
  145. this.pageList = pageList;
  146. this.bulid();
  147. }
  148. // 初始化
  149. function bulid()
  150. {
  151. var str = ""
  152. + "<div class='resizeMe' id=xMsg" + this.id + " "
  153. + "style='"
  154. + "z-index:" + this.zIndex + ";"
  155. + "width:" + this.width + ";"
  156. + "height:" + this.height + ";"
  157. + "left:" + this.left + ";"
  158. + "top:" + this.top + ";"
  159. + "background-color:" + normal + ";"
  160. + "color:" + fontColor + ";"
  161. + "font-size:8pt;"
  162. + "font-family:Tahoma;"
  163. + "position:absolute;"
  164. + "cursor:default;"
  165. + "border:2px solid " + normal + ";"
  166. + "' "
  167. + "onmousedown='getFocus(this)'>"
  168. + "<div class='title'"
  169. + "style='"
  170. + "background-color:" + normal + ";background-image:url(images/top-right.gif);"
  171. + "width:" + (this.width-2*2) + ";"
  172. + "height:24;"
  173. + "color:white;"
  174. + "' "
  175. + "onmousedown='startDrag(this)' "
  176. + "onmouseup='stopDrag(this, " + this.id + ")' "
  177. + "onmousemove='drag(this)' "
  178. + "ondblclick='min(this.childNodes[1])'"
  179. + ">"
  180.  + "<span style='width:" + (this.width-2*12-4) + ";padding-left:3px;'><img src='images/icon.gif' align='absmiddle'>&nbsp;&nbsp;<a href='" + this.pageList + "'>" + this.title + "</a></span>"
  181.  + "<span style='width:12;border-width:0px;color:white;font-family:webdings;' onclick='min(this)'>0</span>"
  182.  + "<span style='width:12;border-width:0px;color:white;font-family:webdings;' onclick='ShowHide(""+this.id+"",null)'>r</span>"
  183. + "</div>"
  184. + "<div style='"
  185. + "width:100%;"
  186. + "height:" + (this.height-20-4) + ";"
  187. + "background-color:white;"
  188. + "line-height:14px;"
  189. + "word-break:break-all;"
  190. + "padding:3px;"
  191. + "'>" + this.message + "</div>"
  192. + "</div>"
  193. + "<div id=xMsg" + this.id + "bg style='"
  194. + "width:" + this.width + ";"
  195. + "height:" + this.height + ";"
  196. + "top:" + this.top + ";"
  197. + "left:" + this.left + ";"
  198. + "z-index:" + (this.zIndex-1) + ";"
  199. + "position:absolute;"
  200. + "background-color:black;"
  201. + "filter:alpha(opacity=40);"
  202. + "'></div>";
  203. document.body.insertAdjacentHTML("beforeEnd",str);
  204. }
  205. // 显示隐藏窗口
  206. function ShowHide(id,dis){
  207. var bdisplay = (dis==null)?((document.getElementById("xMsg"+id).style.display=="")?"none":""):dis
  208. document.getElementById("xMsg"+id).style.display = bdisplay;
  209. document.getElementById("xMsg"+id+"bg").style.display = bdisplay;
  210. if (bdisplay=="none") {
  211. hidFrame.location.href = "user/desktop_adjust.jsp?op=del&id=" + id;
  212. }
  213. }
  214. //modify by haiwa @ 2005-7-14 
  215. //http://www.51windows.Net
  216. //-->
  217. </script>
  218. <SCRIPT language=javascript>
  219. /////////////////////////////////////////////////////////////////////////
  220. // Generic Resize by Erik Arvidsson                                    //
  221. //                                                                     //
  222. // You may use this script as long as this disclaimer is remained.     //
  223. // See www.dtek.chalmers.se/~d96erik/dhtml/ for mor info               //
  224. //                                                                     //
  225. // How to use this script!                                             //
  226. // Link the script in the HEAD and create a container (DIV, preferable //
  227. // absolute positioned) and add the class="resizeMe" to it.            //
  228. /////////////////////////////////////////////////////////////////////////
  229. var theobject = null; // This gets a value as soon as a resize start
  230. function resizeObject() {
  231. this.el        = null; //pointer to the object
  232. this.dir    = "";      //type of current resize (n, s, e, w, ne, nw, se, sw)
  233. this.grabx = null;     //Some useful values
  234. this.graby = null;
  235. this.width = null;
  236. this.height = null;
  237. this.left = null;
  238. this.top = null;
  239. }
  240. //Find out what kind of resize! Return a string inlcluding the directions
  241. function getDirection(el) {
  242. var xPos, yPos, offset, dir;
  243. dir = "";
  244. xPos = window.event.offsetX;
  245. yPos = window.event.offsetY;
  246. offset = 8; //The distance from the edge in pixels
  247. if (yPos<offset) dir += "n";
  248. else if (yPos > el.offsetHeight-offset) dir += "s";
  249. if (xPos<offset) dir += "w";
  250. else if (xPos > el.offsetWidth-offset) dir += "e";
  251. return dir;
  252. }
  253. function doDown() {
  254. var el = getReal(event.srcElement, "className", "resizeMe");
  255. if (el == null) {
  256. theobject = null;
  257. return;
  258. }
  259. dir = getDirection(el);
  260. if (dir == "") return;
  261. theobject = new resizeObject();
  262. theobject.el = el;
  263. theobject.dir = dir;
  264. theobject.grabx = window.event.clientX;
  265. theobject.graby = window.event.clientY;
  266. theobject.width = el.offsetWidth;
  267. theobject.height = el.offsetHeight;
  268. theobject.left = el.offsetLeft;
  269. theobject.top = el.offsetTop;
  270. window.event.returnValue = false;
  271. window.event.cancelBubble = true;
  272. }
  273. function doUp() {
  274. if (theobject != null) {
  275. var win = theobject.el;
  276. var id = win.id.substring(4, win.id.length);
  277. hidFrame.location.href = "user/desktop_adjust.jsp?id=" + id + "&left=" + win.offsetLeft + "&top=" + win.offsetTop + "&width=" + win.offsetWidth + "&height=" + win.offsetHeight + "&zIndex=" + win.style.zIndex;
  278. theobject = null;
  279. }
  280. }
  281. function rebuildWin(win) {
  282. try {
  283. var shadow = win.nextSibling;
  284. shadow.style.left = win.style.left;
  285. shadow.style.top  = win.style.top;
  286. shadow.style.width = win.style.width;
  287. shadow.style.height = win.style.height;
  288. var divTitle = win.childNodes(0);
  289. divTitle.style.width = parseInt(win.style.width)-2*2;
  290. var spanTitle = divTitle.childNodes(0);
  291. spanTitle.style.width = parseInt(win.style.width)-2*12-4
  292. var divMsg = divTitle.nextSibling;
  293. divMsg.style.width = divTitle.style.width;
  294. divMsg.style.height = parseInt(win.style.height) - 20 - 2*2;
  295. }
  296. catch (e) {
  297. }
  298. }
  299. function doMove() {
  300. var el, xPos, yPos, str, xMin, yMin;
  301. xMin = 8; //The smallest width possible
  302. yMin = 8; //             height
  303. el = getReal(event.srcElement, "className", "resizeMe");
  304. if (el.className == "resizeMe") {
  305. str = getDirection(el);
  306. // Fix the cursor
  307. if (str == "")
  308. str = "default";
  309. else
  310. str += "-resize";
  311. el.style.cursor = str;
  312. }
  313.     // Dragging starts here
  314. if(theobject != null) {
  315. if (dir.indexOf("e") != -1)
  316. theobject.el.style.width = Math.max(xMin, theobject.width + window.event.clientX - theobject.grabx) + "px";
  317. if (dir.indexOf("s") != -1)
  318. theobject.el.style.height = Math.max(yMin, theobject.height + window.event.clientY - theobject.graby) + "px";
  319. if (dir.indexOf("w") != -1) {
  320. theobject.el.style.left = Math.min(theobject.left + window.event.clientX - theobject.grabx, theobject.left + theobject.width - xMin) + "px";
  321. theobject.el.style.width = Math.max(xMin, theobject.width - window.event.clientX + theobject.grabx) + "px";
  322. }
  323. if (dir.indexOf("n") != -1) {
  324. theobject.el.style.top = Math.min(theobject.top + window.event.clientY - theobject.graby, theobject.top + theobject.height - yMin) + "px";
  325. theobject.el.style.height = Math.max(yMin, theobject.height - window.event.clientY + theobject.graby) + "px";
  326. }
  327. rebuildWin(theobject.el);
  328. window.event.returnValue = false;
  329. window.event.cancelBubble = true;
  330. }
  331. function getReal(el, type, value) {
  332. temp = el;
  333. while ((temp != null) && (temp.tagName != "BODY")) {
  334. if (eval("temp." + type) == value) {
  335. el = temp;
  336. return el;
  337. }
  338. temp = temp.parentElement;
  339. }
  340. return el;
  341. }
  342. document.onmousedown = doDown;
  343. document.onmouseup   = doUp;
  344. document.onmousemove = doMove;
  345. </SCRIPT>
  346. </head>
  347. <!--<base target="_blank">-->
  348. <body>
  349. <jsp:useBean id="privilege" scope="page" class="com.redmoon.oa.pvg.Privilege"/>
  350. <%
  351. String priv="read";
  352. if (!privilege.isUserPrivValid(request,priv))
  353. {
  354. out.println(cn.js.fan.web.SkinUtil.makeErrMsg(request, cn.js.fan.web.SkinUtil.LoadString(request, "pvg_invalid")));
  355. return;
  356. }
  357. String userName = privilege.getUser(request);
  358. UserDesktopSetupDb udsd = new UserDesktopSetupDb();
  359. String sql = "select id from " + udsd.getTableName() + " where user_name=" + StrUtil.sqlstr(userName);
  360. Vector v = udsd.list(sql);
  361. Iterator ir = v.iterator();
  362. DesktopMgr dm = new DesktopMgr();
  363. while (ir.hasNext()) {
  364. udsd = (UserDesktopSetupDb) ir.next();
  365. DesktopUnit du = dm.getDesktopUnit(udsd.getModuleCode());
  366. %>
  367. <div id='div_cont_<%=udsd.getId()%>' style='display:none'><%=du.getIDesktopUnit().display(request, udsd)%></div>
  368. <%}%>
  369. <script>
  370. function initialize()
  371. {
  372. <%
  373. ir = v.iterator();
  374. while (ir.hasNext()) {
  375. udsd = (UserDesktopSetupDb) ir.next();
  376. DesktopUnit du = dm.getDesktopUnit(udsd.getModuleCode());
  377. %>
  378. new xWin("<%=udsd.getId()%>", <%=udsd.getLeft()%>, <%=udsd.getTop()%>, <%=udsd.getWidth()%>, <%=udsd.getHeight()%>, "<%=udsd.getTitle()%>", div_cont_<%=udsd.getId()%>.innerHTML, <%=udsd.getZIndex()%>, "<%=du.getIDesktopUnit().getPageList(request, udsd)%>");
  379. <%}%>
  380. }
  381. </script>
  382. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<iframe id="hidFrame" src="user/desktop_adjust.jsp" width="0" height="0"></iframe>
  383. </body>
  384. <script language='JScript'>
  385. <!--
  386. window.onload = initialize;
  387. //-->
  388. </script>
  389. </html>