FYI - 私のウィンドウの共通の祖先を作成し、可視性の変更を追跡する以外にこれを行う方法は他にありません。 次に、必要に応じて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