package org.gwtoolbox.sample.widget.client.panel;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.HTML;
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.panel.dashboard.DashboardPanel;
import org.gwtoolbox.widget.client.panel.dashboard.Gadget;
/**
* @author Uri Boness
*/
@Component
@Order(3)
@PanelSample
public class DashboardPanelSample extends Composite implements SamplePanel {
private SimplePanel main;
public DashboardPanelSample() {
main = new SimplePanel();
DashboardPanel panel = createDashboard();
panel.setSize("100%", "100%");
main.setWidget(panel);
initWidget(main);
}
public String getName() {
return "DashboardPanel";
}
public Widget getContentWidget() {
return this;
}
public void reset() {
DashboardPanel panel = createDashboard();
panel.setSize("100%", "100%");
main.setWidget(panel);
}
private DashboardPanel createDashboard() {
DashboardPanel panel = new DashboardPanel(3);
SampleGadget gadget = new SampleGadget("Gadget 1", "Content of gadget 1", "Maximized content of gadget 1");
panel.addGadget(0, gadget);
gadget = new SampleGadget("Gadget 2", "Content of gadget 2", "Maximized content of gadget 2");
panel.addGadget(0, gadget);
gadget = new SampleGadget("Gadget 3", "Content of gadget 3");
panel.addGadget(0, gadget);
gadget = new SampleGadget("Gadget 4", "Content of gadget 4", "Maximized content of gadget 4");
panel.addGadget(1, gadget);
gadget = new SampleGadget("Gadget 5", "Content of gadget 5", "Maximized content of gadget 5");
panel.addGadget(1, gadget);
gadget = new SampleGadget("Gadget 6", "Content of gadget 6");
panel.addGadget(1, gadget);
gadget = new SampleGadget("Gadget 7", "Content of gadget 7", "Maximized content of gadget 7");
panel.addGadget(2, gadget);
gadget = new SampleGadget("Gadget 8", "Content of gadget 8", "Maximized content of gadget 8");
panel.addGadget(2, gadget);
gadget = new SampleGadget("Gadget 9", "Content of gadget 9");
panel.addGadget(2, gadget);
HTML widget = new HTML("Widget");
widget.setHeight("100px");
panel.addWidget(2, "The Widget", widget);
return panel;
}
//============================================== Inner Classes =====================================================
private class SampleGadget implements Gadget {
private final String title;
private final String content;
private final String maximizedContent;
private SampleGadget(String title, String content) {
this(title, content, null);
}
private SampleGadget(String title, String content, String maximizedContent) {
this.title = title;
this.content = content;
this.maximizedContent = maximizedContent;
}
public String getTitle() {
return title;
}
public Widget getContent() {
HTML html = new HTML(content);
html.setHeight("100px");
return html;
}
public boolean supportsMaximiz() {
return maximizedContent != null;
}
public Widget getMaximizedContent() {
return new HTML(maximizedContent);
}
}
}