--- /dev/null
+package com.vaadin.tests.components.customcomponent;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+import com.vaadin.ui.CustomLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.TextField;
+
+public class CustomLayoutUsingTemplate extends TestBase implements
+ ClickListener {
+
+ CustomLayout layout;
+
+ @Override
+ protected void setup() {
+ String thisPackage = CustomLayoutUsingTemplate.class.getName().replace(
+ '.', '/');
+ thisPackage = thisPackage.replaceAll(
+ CustomLayoutUsingTemplate.class.getSimpleName() + "$", "");
+ String template = thisPackage + "template.html";
+ InputStream is = getClassLoader().getResourceAsStream(template);
+ try {
+ layout = new CustomLayout(is);
+ layout.addComponent(new Button(
+ "Click to add a TextField to second location", this),
+ "location1");
+ addComponent(layout);
+ } catch (IOException e) {
+ addComponent(new Label(e.getMessage()));
+ e.printStackTrace();
+ } finally {
+ try {
+ is.close();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Test for using a CustomLayout with a template read from an input stream and passed through the state";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return null;
+ }
+
+ public void buttonClick(ClickEvent event) {
+ layout.addComponent(new TextField("A text field!"), "location2");
+ }
+}
--- /dev/null
+package com.vaadin.tests.components.customcomponent;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.tests.util.LoremIpsum;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+import com.vaadin.ui.CustomLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.NativeButton;
+import com.vaadin.ui.TextField;
+import com.vaadin.ui.VerticalLayout;
+
+public class CustomLayoutUsingTheme extends TestBase implements ClickListener {
+
+ private CustomLayout layout;
+
+ @Override
+ protected void setup() {
+ setTheme("tests-tickets");
+ layout = new CustomLayout("Ticket1775.html");
+ addComponent(layout);
+ layout.addComponent(new TextField("Username"), "loginUser");
+ layout.addComponent(new TextField("Password"), "loginPassword");
+ layout.addComponent(new Button("Login"), "loginButton");
+
+ VerticalLayout menu = new VerticalLayout();
+ menu.addComponent(new Button("Set main to label", new ClickListener() {
+
+ public void buttonClick(ClickEvent event) {
+ layout.addComponent(new Label(LoremIpsum.get(200)), "main");
+ }
+ }));
+ menu.addComponent(new Button("Set main to huge NativeButton",
+ new ClickListener() {
+
+ public void buttonClick(ClickEvent event) {
+ layout.addComponent(new NativeButton(
+ "This is it, the main!"), "main");
+ }
+ }));
+ layout.addComponent(menu, "menu");
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Test for using a CustomLayout with a template read from an input stream and passed through the state";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return null;
+ }
+
+ public void buttonClick(ClickEvent event) {
+ layout.addComponent(new TextField("A text field!"), "location2");
+ }
+
+}
--- /dev/null
+<b>Contents</b>
+<div location="location1">This is where the first component goes</div>
+<div style="width: 500px; border: 1 px solid blue; margin: 10px;" location="location2">This is where the second component goes</div>
+<b>End of template</b>
\ No newline at end of file
layout.setSizeFull();
addComponent(layout);
- layout.addComponent(createButton("color:red"));
+ Button red, green;
+ layout.addComponent(red = createButton("color:red"));
layout.addComponent(createButton("color: blue"));
- layout.addComponent(createButton("color: green"));
+ layout.addComponent(green = createButton("color: green"));
+ red.click();
+ green.click();
layout.addComponent(createMarginsToggle());
}
return cb;
}
- private Component createButton(String string) {
+ private Button createButton(String string) {
NativeButton button = new NativeButton(string);
css.put(button, string);
button.addListener(this);