package com.vaadin.tests.components.uitest.components;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import com.vaadin.server.ThemeResource;
import com.vaadin.server.UserError;
import com.vaadin.tests.components.uitest.TestSampler;
import com.vaadin.ui.AbsoluteLayout;
import com.vaadin.ui.Component;
import com.vaadin.ui.CssLayout;
import com.vaadin.ui.CustomLayout;
import com.vaadin.ui.GridLayout;
import com.vaadin.ui.HorizontalSplitPanel;
import com.vaadin.ui.Label;
import com.vaadin.ui.Panel;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.VerticalSplitPanel;
import com.vaadin.v7.ui.themes.ChameleonTheme;
import com.vaadin.v7.ui.themes.Reindeer;
public class LayoutsCssTest extends GridLayout {
private TestSampler parent;
private int debugIdCounter = 0;
public LayoutsCssTest(TestSampler parent) {
this.parent = parent;
setSpacing(true);
setColumns(4);
setWidth("100%");
VerticalLayout vl = new VerticalLayout();
vl.setCaption("VerticalLayout");
vl.setMargin(true);
vl.setSpacing(true);
vl.setComponentError(new UserError("A error message..."));
vl.addComponent(new Label("Some content"));
vl.setId("layout" + debugIdCounter++);
addComponent(vl);
CssLayout css = new CssLayout();
css.setCaption("CssLayout");
css.addComponent(new Label("Some content"));
css.setId("layout" + debugIdCounter++);
addComponent(css);
AbsoluteLayout abs = new AbsoluteLayout();
abs.setCaption("Abs layout");
abs.addComponent(new Label("Some content"));
abs.setComponentError(new UserError("A error message..."));
abs.setId("layout" + debugIdCounter++);
addComponent(abs);
GridLayout gl = new GridLayout();
gl.setMargin(true);
gl.setSpacing(true);
gl.setCaption("GridLayout");
gl.setComponentError(new UserError("A error message..."));
gl.addComponent(new Label("Some content"));
gl.setId("layout" + debugIdCounter++);
addComponent(gl);
VerticalSplitPanel vert = new VerticalSplitPanel();
vert.setCaption("VertSplitPan");
vert.setFirstComponent(new Label("Some content 1"));
vert.setSecondComponent(new Label("Some content 2"));
vert.setComponentError(new UserError("A error message..."));
vert.setSplitPosition(50);
vert.setEnabled(false);
vert.setHeight("50px");
vert.setId("layout" + debugIdCounter++);
addComponent(vert);
HorizontalSplitPanel horiz = new HorizontalSplitPanel();
horiz.setSplitPosition(50);
horiz.setFirstComponent(new Label("Some content 1"));
horiz.setSecondComponent(new Label("Some content 2"));
horiz.setIcon(new ThemeResource(parent.ICON_URL));
horiz.setCaption("HorizSplitPan");
horiz.setId("layout" + debugIdCounter++);
addComponent(horiz);
VerticalSplitPanel smallSplitPanel = new VerticalSplitPanel();
smallSplitPanel.setCaption("SmallVertSplitPan");
smallSplitPanel.setFirstComponent(new Label("Some content 1"));
smallSplitPanel.setSecondComponent(new Label("Some content 2"));
smallSplitPanel.setComponentError(new UserError("A error message..."));
smallSplitPanel.setSplitPosition(50);
smallSplitPanel.addStyleName(Reindeer.SPLITPANEL_SMALL);
smallSplitPanel.setEnabled(false);
smallSplitPanel.setHeight("50px");
smallSplitPanel.setId("layout" + debugIdCounter++);
addComponent(smallSplitPanel);
String customLayoutSrc = "<html><div location='pos1' class='customclass'> </div></html>";
CustomLayout custom;
try {
custom = new CustomLayout(
new ByteArrayInputStream(customLayoutSrc.getBytes()));
custom.addComponent(new Label("Some content"), "pos1");
custom.setComponentError(new UserError("A error mesasge..."));
custom.setCaption("CustomLayout");
custom.setId("layout" + debugIdCounter++);
addComponent(custom);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Panel defPanel = createPanelWith("A default panel", null);
addComponent(defPanel);
Panel light = createPanelWith("A light panel", Reindeer.PANEL_LIGHT);
addComponent(light);
Panel borderless = createPanelWith("A borderless panel",
ChameleonTheme.PANEL_BORDERLESS);
addComponent(borderless);
Panel bubbling = createPanelWith("A Bubbling panel",
ChameleonTheme.PANEL_BUBBLE);
addComponent(bubbling);
}
/**
* Helper to create panels for different theme variants...
*/
private Panel createPanelWith(String caption, String styleName) {
VerticalLayout panelLayout = new VerticalLayout();
panelLayout.setMargin(true);
Panel panel = new Panel(caption, panelLayout);
panelLayout.addComponent(new Label("Some content"));
panel.setIcon(new ThemeResource(parent.ICON_URL));
panel.setComponentError(new UserError("A error message..."));
panel.setId("layout" + debugIdCounter++);
if (styleName != null) {
panel.addStyleName(styleName);
}
return panel;
}
@Override
public void addComponent(Component component) {
parent.registerComponent(component);
super.addComponent(component);
}
}