仅供参考 - 除了为我的窗口创建一个共同的祖先并跟踪可见性变化之外,似乎没有其他方法可以做到这一点。 然后在需要时调用getVisibleCount()。
public class WindowBase extends Window {
private static ArrayList<Window> visibleWindows = new ArrayList<Window>();
VisibilityChangedHandler handlervc = new VisibilityChangedHandler() {
public void onVisibilityChanged(com.smartgwt.client.widgets.events.VisibilityChangedEvent event) {
if (event.getIsVisible()) {
if (!visibleWindows.contains(event.getSource()))
visibleWindows.add((Window)event.getSource());
} else
visibleWindows.remove(event.getSource());
}
};
@Override
public void show() {
if (!visibleWindows.contains(this))
visibleWindows.add(this);
addVisibilityChangedHandler(handlervc);
super.show();
}
public static int getVisibleCount() {
return visibleWindows.size();
}
}
来源
2017-06-28 16:34:35
kgz