2011-04-20 46 views
1

我使用PopUpManager将一堆事件窗口向上。直接通过PopUpManager统计窗口数量的方法?

我想让它一次只能打开一个窗口,但我没有看到跟踪打开窗口设置条件的代码中的任何地方。我想它只是创建窗口,然后设置它们是免费的?

思考一个windowCount变量,当我添加一个窗口时递增,当我删除一个窗口时递减,但由于PopupManager是在不同的类中调用的,所以我不得不开始在整个地方抛出事件。我可以做到这一点,但我想知道是否有更直接的方法?

回答

3

systemManager(而不是PopUpManager,去图...)提供了有关当前打开的弹出窗口的信息。

如果你的弹出窗口都是模型,那么你将有兴趣在“systemManager.numModalWindows”:

模式窗口的数量。 Modal 窗口不允许在 窗口中点击 另一个窗口,该窗口通常会在 窗口中激活FocusManager。 PopUpManager会在创建并销毁模态窗口 时修改此计数。

否则试试 'systemManager.popUpChildren':

最高(弹出窗口) 的名单通过此ISystemManager作为父。

一个ISystemManager具有各种类型的 子项,如应用程序, 弹出窗口,工具提示和自定义光标。 您可以通过popUpChildren属性访问最上方的窗口 。

IChildList对象具有像 getChildAt()和 numChildren等属性的方法。例如, popUpChildren.numChildren给出了 最多的窗口数量,并且您可以将其访问为 popUpChildren.getChildAt(i)。

+0

很高兴知道! wouldnt已经猜到了..我非常兴奋我的新popUpDistrictManager类。我想这是没有任何要求 – Damon 2011-04-20 08:00:43

+0

不幸的是我创建bordercontainers而不是窗口与弹出管理器和那些似乎不算作popUpChildren ..有numChildren属性,但它是不可靠的(不完全确定什么是重要的一个孩子,但往往比我能说的更多) – Damon 2011-04-20 08:33:05

2

我看到几个选项:

1)使所有的窗口模态;这样应用程序才能在窗口关闭之前使用。这是PopUpManager上createPopUp方法的一个参数。想必你没有Popups创建其他弹出窗口。

2)创建自己的管理器类,可能是跟踪所有打开的窗口的PopUpManager类的扩展。然后,你将拥有所有PopUps的单一来源,并可以以这种方式维护它们。

+0

我让他们原本模态,但我讨厌的滞后和模糊效果...延长PopUpManager将可能是要走的最简单的方法..谢谢 – Damon 2011-04-20 02:29:31

+2

哇,延长甚至抄袭单身是不适合心脏 – Damon 2011-04-20 05:54:39

+3

微弱@ Damon你可以使用CSS去除模糊窗口的模糊和滞后。请参阅以下样式'modalTransparency','modalTransparencyBlur','modalTransparencyColor'和'modalTransparencyDuration'。您可以在'全局'样式中设置新值。 – Constantiner 2011-04-20 07:55:45