| // Copyright (C) 2009 The Android Open Source Project |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| package com.google.gwtexpui.user.client; |
| |
| import com.google.gwt.user.client.ui.DialogBox; |
| |
| /** |
| * A DialogBox that can appear over Flash movies and Java applets. |
| * <p> |
| * Some browsers have issues with placing a <div> (such as that used by |
| * the DialogBox implementation) over top of native UI such as that used by the |
| * Flash plugin. Often the native UI leaks over top of the <div>, which is |
| * not the desired behavior for a dialog box. |
| * <p> |
| * This implementation hides the native resources by setting their display |
| * property to 'none' when the dialog is shown, and restores them back to their |
| * prior setting when the dialog is hidden. |
| * */ |
| public class PluginSafeDialogBox extends DialogBox { |
| public PluginSafeDialogBox() { |
| this(false); |
| } |
| |
| public PluginSafeDialogBox(final boolean autoHide) { |
| this(autoHide, true); |
| } |
| |
| public PluginSafeDialogBox(final boolean autoHide, final boolean modal) { |
| super(autoHide, modal); |
| } |
| |
| @Override |
| public void setVisible(final boolean show) { |
| UserAgent.fireDialogVisible(show); |
| super.setVisible(show); |
| } |
| |
| @Override |
| public void show() { |
| UserAgent.fireDialogVisible(true); |
| super.show(); |
| } |
| |
| @Override |
| public void hide(final boolean autoClosed) { |
| UserAgent.fireDialogVisible(false); |
| super.hide(autoClosed); |
| } |
| } |