package org.gwtoolbox.sample.widget.client.panel;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.*;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.ChangeEvent;
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.panel.split.horizontal.SimpleHorizontalSplitPanel;
/**
* @author Uri Boness
*/
@Component
@Order(2)
@PanelSample
public class SimpleHorizontalSplitPanelSample extends Composite implements SamplePanel {
public SimpleHorizontalSplitPanelSample() {
DockPanel main = new DockPanel();
FlowPanel buttons = new FlowPanel();
buttons.setWidth("100%");
final SimpleToggleButton toggleLeftBtn = new SimpleToggleButton("Hide Left");
toggleLeftBtn.getDownFace().setText("Show Left");
DOM.setStyleAttribute(toggleLeftBtn.getElement(), "marginRight", "20px");
buttons.add(toggleLeftBtn);
final SimpleToggleButton toggleRightBtn = new SimpleToggleButton("Hide Right");
toggleRightBtn.getDownFace().setText("Show Right");
buttons.add(toggleRightBtn);
final SimpleHorizontalSplitPanel hsp = new SimpleHorizontalSplitPanel();
hsp.setSize("100%", "100%");
ScrollPanel lsp = new ScrollPanel(createContent(createVeryLongText(), "#CCFFCC"));
lsp.setSize("100%", "100%");
hsp.setLeftWidget(lsp);
ScrollPanel rsp = new ScrollPanel(createContent(createVeryLongText(), "#FFFBA3"));
rsp.setSize("100%", "100%");
hsp.setRightWidget(rsp);
hsp.setSize("100%", "100%");
toggleLeftBtn.addChangeHandler(new ChangeHandler() {
public void onChange(ChangeEvent event) {
hsp.setLeftWidgetVisible(!toggleLeftBtn.isDown());
toggleRightBtn.setDown(!toggleLeftBtn.isDown());
}
});
toggleRightBtn.addChangeHandler(new ChangeHandler() {
public void onChange(ChangeEvent event) {
hsp.setRightWidgetVisible(!toggleRightBtn.isDown());
toggleLeftBtn.setDown(!toggleRightBtn.isDown());
}
});
main.add(buttons, DockPanel.NORTH);
main.add(hsp, DockPanel.CENTER);
main.setCellHeight(buttons, "30px");
main.setCellWidth(buttons, "100%");
main.setCellHeight(hsp, "100%");
main.setCellWidth(hsp, "100%");
main.setCellVerticalAlignment(buttons, DockPanel.ALIGN_MIDDLE);
main.setCellHorizontalAlignment(buttons, DockPanel.ALIGN_CENTER);
initWidget(main);
main.setSize("100%", "100%");
}
public String getName() {
return "SimpleHorizontalSplitPanel";
}
public Widget getContentWidget() {
return this;
}
public void reset() {
}
//================================================ Helper Methods ==================================================
private static Widget createContent(String text, String color) {
VerticalPanel main = new VerticalPanel();
DOM.setStyleAttribute(main.getElement(), "backgroundColor", color);
HTML html = new HTML(text);
html.setHorizontalAlignment(HTML.ALIGN_CENTER);
main.add(html);
// main.setSize("100%", "100%");
return main;
}
private static String createVeryLongText() {
return "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc laoreet pharetra nunc. Nulla magna lorem, " +
"vehicula lobortis, dignissim eu, adipiscing in, metus. Nullam velit massa, fringilla in, congue quis, " +
"fringilla eu, libero. Cras sapien. Cras ut lectus. Lorem ipsum dolor sit amet, consectetur adipiscing " +
"elit. Phasellus pharetra lectus non quam. Fusce turpis ante, iaculis sit amet, rutrum ut, eleifend eu, " +
"justo. Morbi sollicitudin lacus vel magna. Cras varius volutpat diam. Quisque a lorem. Fusce in risus " +
"vel dui semper tempus. Proin iaculis nulla sit amet ligula suscipit egestas. Duis eleifend neque id " +
"nunc. Etiam et orci.\n" + "\n" + "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices " +
"posuere cubilia Curae; Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos " +
"himenaeos. Integer sagittis. Integer porttitor odio non metus. Quisque sagittis feugiat magna. Integer " +
"venenatis nulla sollicitudin nunc tristique consectetur. Duis tincidunt odio. Nulla id arcu. Quisque " +
"tortor. Nulla purus arcu, bibendum nec, placerat sit amet, egestas a, tellus. Curabitur tempus justo " +
"non velit. Proin et metus. Sed risus mauris, aliquet quis, imperdiet sit amet, dictum vel, massa. " +
"Praesent quis augue. Fusce dictum augue non mi. Donec eu tortor. Praesent tempor posuere felis. " +
"Phasellus convallis mattis tellus.\n" + "\n" + "Donec ultricies, mauris quis egestas interdum, " +
"turpis quam tincidunt enim, sit amet varius dui nulla in sem. Mauris scelerisque sodales nisi. " +
"Suspendisse neque justo, egestas interdum, laoreet quis, tristique vel, metus. Vestibulum augue. " +
"Aliquam eget odio. Donec consectetur. Ut neque. Suspendisse orci eros, aliquam id, pharetra vel, " +
"vestibulum a, nulla. In varius. Praesent pretium augue a sem. Cras tincidunt. Nulla sollicitudin. " +
"Suspendisse ullamcorper, dui nec lobortis gravida, odio elit convallis leo, eu porttitor arcu erat " +
"eu lacus. Pellentesque nec mauris at massa pharetra varius. Integer bibendum. Fusce pulvinar massa " +
"id enim mattis lacinia. Donec libero urna, bibendum a, ullamcorper eu, commodo id, risus. Maecenas " +
"nec ipsum. Etiam egestas. Donec aliquet.\n" + "\n" + "Cras semper euismod lacus. Fusce sit amet " +
"neque et turpis pulvinar vestibulum. Nullam magna. Vestibulum erat. Donec ipsum libero, dapibus ac, " +
"gravida eget, dignissim pharetra, libero. Aliquam lobortis ullamcorper nunc. In purus lectus, " +
"tincidunt quis, euismod sed, ornare in, nisl. Aenean faucibus, massa volutpat sagittis gravida, " +
"lectus quam aliquet dolor, eget elementum metus eros pharetra neque. Praesent condimentum velit " +
"luctus erat tristique feugiat. Aliquam volutpat, nulla at volutpat tristique, velit lectus molestie " +
"pede, vitae placerat est enim eget libero. Nullam varius, lorem a sagittis eleifend, dui diam " +
"scelerisque ante, in adipiscing eros ante quis ligula. Vivamus faucibus convallis ipsum. Vivamus " +
"sollicitudin lacus vel diam. Morbi volutpat ultricies velit. Aenean tellus. Morbi semper erat sit amet " +
"sem. Nullam a ipsum in leo hendrerit rutrum.";
}
}