Notification.js
上传用户:snow1005
上传日期:2015-11-10
资源大小:3151k
文件大小:2k
源码类别:

Ajax

开发平台:

JavaScript

  1. /*
  2.  * qWikiOffice Desktop 0.8.1
  3.  * Copyright(c) 2007-2008, Integrated Technologies, Inc.
  4.  * licensing@qwikioffice.com
  5.  * 
  6.  * http://www.qwikioffice.com/license
  7.  *
  8.  * Ext.ux.Notification is based on code from the Ext JS forum.
  9.  * I have made some minor modifications.
  10.  */
  11. Ext.ux.NotificationMgr = {
  12.     positions: []
  13. };
  14. Ext.ux.Notification = Ext.extend(Ext.Window, {
  15. initComponent : function(){
  16. Ext.apply(this, {
  17. iconCls: this.iconCls || 'x-icon-information'
  18. , width: 200
  19. , autoHeight: true
  20. , closable: true
  21. , plain: false
  22. , draggable: false
  23. , bodyStyle: 'text-align:left;padding:10px;'
  24. , resizable: false
  25. });
  26. if(this.autoDestroy){
  27. this.task = new Ext.util.DelayedTask(this.close, this);
  28. }else{
  29. this.closable = true;
  30. }
  31. Ext.ux.Notification.superclass.initComponent.call(this);
  32.     }
  33. , setMessage : function(msg){
  34. this.body.update(msg);
  35. }
  36. , setTitle : function(title, iconCls){
  37.         Ext.ux.Notification.superclass.setTitle.call(this, title, iconCls||this.iconCls);
  38.     }
  39. , onRender : function(ct, position) {
  40. Ext.ux.Notification.superclass.onRender.call(this, ct, position);
  41. }
  42. , onDestroy : function(){
  43. Ext.ux.NotificationMgr.positions.remove(this.pos);
  44. Ext.ux.Notification.superclass.onDestroy.call(this);
  45. }
  46. , afterShow : function(){
  47. Ext.ux.Notification.superclass.afterShow.call(this);
  48. this.on('move', function(){
  49. Ext.ux.NotificationMgr.positions.remove(this.pos);
  50. if(this.autoDestroy){
  51. this.task.cancel();
  52. }
  53. }, this);
  54. if(this.autoDestroy){
  55. this.task.delay(this.hideDelay || 5000);
  56. }
  57. }
  58. , animShow : function(){
  59. this.pos = 0;
  60. while(Ext.ux.NotificationMgr.positions.indexOf(this.pos)>-1){
  61. this.pos++;
  62. }
  63. Ext.ux.NotificationMgr.positions.push(this.pos);
  64. this.setSize(200,100);
  65. this.el.alignTo(this.animateTarget || document, "br-tr", [ -1, -1-((this.getSize().height+10)*this.pos) ]);
  66. this.el.slideIn('b', {
  67. duration: .7
  68. , callback: this.afterShow
  69. , scope: this
  70. });
  71. }
  72. , animHide : function(){
  73. Ext.ux.NotificationMgr.positions.remove(this.pos);
  74. this.el.ghost("b", {
  75. duration: 1
  76. , remove: true
  77. });
  78. }
  79. });