blob: 772e92328299b3f8c26a0a153a2ae186281b2d84 [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.logical.shared.CloseEvent;
import com.google.gwt.event.logical.shared.CloseHandler;
import com.google.gwt.event.logical.shared.OpenEvent;
import com.google.gwt.event.logical.shared.OpenHandler;
import com.google.gwt.event.shared.GwtEvent;
import com.google.gwt.museum.client.common.AbstractIssue;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.DisclosureEvent;
import com.google.gwt.user.client.ui.DisclosureHandler;
import com.google.gwt.user.client.ui.DisclosurePanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.UIObject;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
/**
* Testing disclosure events.
*/
@SuppressWarnings("deprecation")
public class VisualsForDisclosurePanelEvents extends AbstractIssue {
VerticalPanel report = new VerticalPanel();
@Override
public Widget createIssue() {
VerticalPanel p = new VerticalPanel();
p.add(createDisclosurePanel("disclose 1"));
p.add(createDisclosurePanel("disclose 2"));
p.add(report);
report("reporting");
return p;
}
@Override
public String getInstructions() {
return "Click on disclosure panel, see the expected Open and Close events firing";
}
@Override
public String getSummary() {
return "DisclosurePanel event tests";
}
@Override
public boolean hasCSS() {
return false;
}
DisclosurePanel createDisclosurePanel(final String name) {
DisclosurePanel widget = new DisclosurePanel();
widget.setContent(new HTML("content for " + name));
widget.setTitle(name);
widget.setHeader(new CheckBox(name));
class MyHandler implements DisclosureHandler, OpenHandler<DisclosurePanel>,
CloseHandler<DisclosurePanel> {
public void onClose(CloseEvent<DisclosurePanel> event) {
report(event);
}
public void onClose(DisclosureEvent event) {
report(name + "close");
}
public void onOpen(DisclosureEvent event) {
report(name + "open");
}
public void onOpen(OpenEvent<DisclosurePanel> event) {
report(event);
}
}
MyHandler handler = new MyHandler();
widget.addCloseHandler(handler);
widget.addOpenHandler(handler);
widget.addEventHandler(handler);
return widget;
}
private void report(GwtEvent<?> event) {
String title = ((UIObject) event.getSource()).getTitle();
report(title + " fired " + event.toDebugString());
}
// will be replaced by logging
private void report(String s) {
report.insert(new Label(s), 0);
if (report.getWidgetCount() == 10) {
report.remove(9);
}
}
}