blob: 81fa47575ca2475af6794953e3f2624fd958a7c1 [file] [log] [blame]
/*
* Copyright 2008 Google Inc.
*
* 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.gwt.museum.client.defaultmuseum;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.logical.shared.CloseEvent;
import com.google.gwt.event.logical.shared.CloseHandler;
import com.google.gwt.museum.client.common.AbstractIssue;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
/**
* Visual tests for {@link PopupPanel}.
*/
public class VisualsForPopupEvents extends AbstractIssue {
static int xPos = 0;
@Override
public Widget createIssue() {
VerticalPanel panel = new VerticalPanel();
panel.setSpacing(3);
{
PopupPanel popup = createButton(true, false, panel);
Label partner0 = new Label("AutoHide Partner 0");
Label partner1 = new Label("AutoHide Partner 1");
popup.addAutoHidePartner(partner0.getElement());
popup.addAutoHidePartner(partner1.getElement());
HorizontalPanel hPanel = new HorizontalPanel();
hPanel.setBorderWidth(1);
hPanel.setSpacing(3);
hPanel.add(partner0);
hPanel.add(partner1);
panel.add(new Label(
"Clicking on partners should not autoHide this popup:"));
panel.add(hPanel);
}
createButton(true, true, panel);
createButton(false, false, panel);
createButton(false, true, panel);
return panel;
}
@Override
public String getInstructions() {
return "Open and close each popup, check for the closing text in the window title";
}
@Override
public String getSummary() {
return "popup event visual test";
}
@Override
public boolean hasCSS() {
return false;
}
private PopupPanel createButton(boolean autoHide, boolean modal,
VerticalPanel panel) {
final String text = " popup " + (modal ? " modal " : " non-modal ")
+ (autoHide ? "auto hide" : " persistent");
panel.add(new HTML("<h2>" + text + "</h2>"));
final PopupPanel p = new PopupPanel(autoHide, modal);
p.setTitle(text);
Button b = new Button("show", new ClickHandler() {
public void onClick(ClickEvent event) {
p.setPopupPosition(200,
((Button) event.getSource()).getAbsoluteTop() - 10);
p.show();
}
});
panel.add(b);
p.setWidget(new Button("hide me", new ClickHandler() {
public void onClick(ClickEvent event) {
p.hide();
}
}));
p.addCloseHandler(new CloseHandler<PopupPanel>() {
public void onClose(CloseEvent<PopupPanel> event) {
Window.setTitle("closing popup '" + p.getTitle() + "'. autohide:"
+ event.isAutoClosed());
}
});
return p;
}
}