package org.gwtoolbox.sample.widget.client.layout;
import com.google.gwt.dom.client.Style;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.*;
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.widget.client.button.SimpleToggleButton;
import org.gwtoolbox.widget.client.button.version2.Button;
import org.gwtoolbox.widget.client.panel.layout.DeckLayout;
import org.gwtoolbox.widget.client.panel.layout.DockLayout;
/**
* @author Uri Boness
*/
@Component
@Order(35)
@LayoutSample
public class DeckLayoutSample extends ResizeComposite implements SamplePanel {
public DeckLayoutSample() {
LayoutPanel panel = new LayoutPanel();
final DeckLayout deck = new DeckLayout();
deck.setAnimationEnabled(true);
panel.add(deck);
panel.setWidgetLeftRight(deck, 50, Style.Unit.PX, 50, Style.Unit.PX);
panel.setWidgetTopBottom(deck, 50, Style.Unit.PX, 50, Style.Unit.PX);
FlowPanel buttons = new FlowPanel();
DockLayout main = new DockLayout();
main.addNorth(buttons, 50);
main.add(panel);
createHTML(buttons, deck, "Red", "#ff9999");
createHTML(buttons, deck, "Green", "#ccffcc");
createHTML(buttons, deck, "Blue", "#cacaf7");
createHTML(buttons, deck, "Yellow", "#ffcc66");
Button clearButton = new Button("Clear Selection", new ClickHandler() {
public void onClick(ClickEvent event) {
deck.clearSelection();
}
});
clearButton.getElement().getStyle().setMarginLeft(10, Style.Unit.PX);
buttons.add(clearButton);
SimpleToggleButton enableDisableButton = new SimpleToggleButton("Disable Animation");
enableDisableButton.addChangeHandler(new ChangeHandler() {
public void onChange(ChangeEvent event) {
deck.setAnimationEnabled(!deck.isAnimationEnabled());
}
});
enableDisableButton.getElement().getStyle().setMarginLeft(10, Style.Unit.PX);
buttons.add(enableDisableButton);
initWidget(main);
}
public String getName() {
return "Deck";
}
public Widget getContentWidget() {
return this;
}
public void reset() {
}
//================================================ Helper Methods ==================================================
private static void createHTML(FlowPanel buttons, final DeckLayout layout, String text, String color) {
final HTML html = new HTML(text);
html.getElement().getStyle().setBackgroundColor(color);
html.setSize("100%", "100%");
layout.add(html);
Button button = new Button(text, new ClickHandler() {
public void onClick(ClickEvent event) {
layout.selectWidget(html);
}
});
button.getElement().getStyle().setMarginLeft(10, Style.Unit.PX);
buttons.add(button);
}
}