extjs 桌面,无法保存窗口位置



我需要将窗口的位置和大小保存到DB表中,因此:

在事件"创建"中 ->保存位置和大小

在事件"移动" ->保存位置

在事件"调整大小"上 ->保存大小

在事件"最大化" ->保存"最大化",
但不是位置(0,0)和size(desktopsize)

  • 这种情况的必要条件:
    1. 用户注销并在
    2. 中登录
    3. 推动"还原" -button
    4. 窗口应在最大化之前收缩到大小(和位置)

当旧位置和大小保留在数据库中时,才能实现这一点。

某些事件开始某些功能,以通过Ajax到DB存储值,如下所示:

resize saveSize()
移动savePosition()
最大化saveMaximize()
还原restoreWindow()

但我不知道如何处理这些事件,因为事件没有被解雇,因为我希望"被解雇。因此,我需要存储的价值在有机会获得它们之前被覆盖。我记录了事件:

(案例 ->事件(S))

打开窗口:
1. 移动
2. 调整
3. 移动
那还可以

"单击"最大化:
1. 调整
2. 移动
3. 最大化
位置和尺寸值被覆盖,但只需要保存标志"最大化":true

"单击"还原:
1. 移动
2. 还原
3. 调整大小
位置保存到DB中,然后才能从DB到还原的"旧"值

移动窗口:
- 移动
一切都很好

如何处理这个??

不要手动执行此操作,而是使用组件状态处理:http://docs.sencha.com/extjs/4.2.2/# !/#!/example/sample/state/state/state.html

陷入了我自己的想法。只是忘了问

" extjs如何管理:最大化和还原"。

状态存储在窗口对象本身中:

scope = win.events.maximize.listeners[0].scope;
(object) size = scope.restoreSize
[] position = scope.restorePos

因此,事件"最大化"是最后触发的,因此我可以将以前的状态写入db,我认为这有点脏,因为我不知道为什么Extjs频繁地发射事件