package org.gwtoolbox.sample.widget.client.layout;
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.user.client.Command;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.ResizeComposite;
import com.google.gwt.user.client.ui.Widget;
import org.gwtoolbox.ioc.core.client.annotation.Component;
import org.gwtoolbox.ioc.core.client.annotation.Order;
import org.gwtoolbox.sample.widget.client.SamplePanel;
import org.gwtoolbox.sample.widget.client.WidgetExplorerImages;
import org.gwtoolbox.commons.ui.client.event.custom.ToggleEvent;
import org.gwtoolbox.commons.ui.client.event.custom.ToggleHandler;
import org.gwtoolbox.widget.client.menu.Menu;
import org.gwtoolbox.widget.client.menu.MenuBuilder;
import org.gwtoolbox.widget.client.panel.layout.PanelLayout;
/**
* @author Uri Boness
*/
@Component
@Order(50)
@LayoutSample
public class PanelLayoutSample extends ResizeComposite implements SamplePanel {
public PanelLayoutSample() {
PanelLayout panel = new PanelLayout("The Title", WidgetExplorerImages.Instance.get().formGroup().createImage());
panel.addTool(PanelLayout.Tools.GEAR, new ClickHandler() {
public void onClick(ClickEvent event) {
Window.alert("Gear tool was clicked");
}
});
panel.addToggleTool(PanelLayout.ToggleTools.PIN, new ToggleHandler() {
public void onToggle(ToggleEvent event) {
Window.alert("Pin tool is " + (event.getState() ? "up" : "down"));
}
});
panel.addMenuTool(PanelLayout.Tools.ADD, new MenuBuilder() {
public void build(Menu menu) {
menu.addItem("Action 1", new Command() {
public void execute() {
Window.alert("Action 1 was executed");
}
});
}
}).setEnabled(false);
panel.setClosable(true);
panel.addCloseHandler(new CloseHandler<PanelLayout>() {
public void onClose(CloseEvent<PanelLayout> panelLayoutCloseEvent) {
Window.alert("Close was clicked");
}
});
panel.addTool(PanelLayout.Tools.ADD, new ClickHandler() {
public void onClick(ClickEvent event) {
Window.alert("Add clicked");
}
}).setEnabled(false);
panel.setCollapsable(true);
panel.setContent(new HTML("The content of the panel"));
initWidget(panel);
}
public String getName() {
return "Panel";
}
public Widget getContentWidget() {
return this;
}
public void reset() {
}
//================================================ Helper Methods ==================================================
private static HTML createHTML(String text, String color) {
HTML html = new HTML(text);
html.getElement().getStyle().setBackgroundColor(color);
html.setSize("100%", "100%");
return html;
}
}