--- /dev/null
+package com.vaadin.tests.components.textfield;\r
+\r
+import com.vaadin.data.Item;\r
+import com.vaadin.data.Property;\r
+import com.vaadin.data.util.IndexedContainer;\r
+import com.vaadin.tests.components.TestBase;\r
+import com.vaadin.ui.Button;\r
+import com.vaadin.ui.Component;\r
+import com.vaadin.ui.Table;\r
+import com.vaadin.ui.TextField;\r
+import com.vaadin.ui.Button.ClickEvent;\r
+\r
+public class TextFieldRelativeWidth extends TestBase {\r
+\r
+ @Override\r
+ public void setup() {\r
+ TextField tf = new TextField("test", "testing");\r
+ tf.setWidth("100%");\r
+\r
+ EditTable t = new EditTable();\r
+ t.setButtonCaption("Click to add new Key Research Question");\r
+ t.setInputPrompt("Key Reseach question");\r
+ t.setInputPromptChild("Question details");\r
+ t.addNewRow();\r
+ addComponent(t);\r
+ }\r
+\r
+ public class EditTable extends Table implements Button.ClickListener {\r
+\r
+ private Button addButton = new Button("Add new row",\r
+ (Button.ClickListener) this);\r
+\r
+ private String inputPrompt;\r
+\r
+ private String inputPromptChild;\r
+\r
+ private int nextItemIndex = 1;\r
+\r
+ private static final long serialVersionUID = 3326806911297977454L;\r
+\r
+ public EditTable() {\r
+ setColumnHeaderMode(Table.COLUMN_HEADER_MODE_HIDDEN);\r
+ inputPrompt = "";\r
+ setPageLength(100);\r
+ setHeight("100%");\r
+ setSizeFull();\r
+ addContainerProperty("id", Integer.class, null);\r
+ addContainerProperty("text", Component.class, null);\r
+ addContainerProperty("button", Button.class, null);\r
+ setColumnExpandRatio("text", 1);\r
+ Item i = getItem(addItem());\r
+ i.getItemProperty("text").setValue(addButton);\r
+ setImmediate(true);\r
+ setSelectable(true);\r
+ addListener(new Property.ValueChangeListener() {\r
+ private static final long serialVersionUID = 448896474865195605L;\r
+\r
+ public void valueChange(\r
+ com.vaadin.data.Property.ValueChangeEvent event) {\r
+ IndexedContainer idc = (IndexedContainer) getContainerDataSource();\r
+\r
+ }\r
+\r
+ });\r
+ }\r
+\r
+ public void addNewRow() {\r
+ IndexedContainer idc = (IndexedContainer) this\r
+ .getContainerDataSource();\r
+ int size = idc.size();\r
+ Object itemId = idc.addItemAt(size - 1);\r
+ Item newItem = idc.getItem(itemId);\r
+ TextField tf = new TextField();\r
+ if (inputPrompt != null && inputPrompt.length() > 0) {\r
+ tf.setInputPrompt(inputPrompt);\r
+ }\r
+ tf.setWidth("100%");\r
+\r
+ newItem.getItemProperty("id").setValue(nextItemIndex);\r
+ nextItemIndex++;\r
+ newItem.getItemProperty("text").setValue(tf);\r
+ setValue(itemId);\r
+ itemId = idc.addItemAt(size);\r
+ newItem = idc.getItem(itemId);\r
+\r
+ tf = new TextField();\r
+ if (inputPromptChild != null && inputPromptChild.length() > 0) {\r
+ tf.setInputPrompt(inputPromptChild);\r
+ }\r
+ tf.setRows(1);\r
+ tf.setHeight("45px");\r
+ tf.setWidth("100%");\r
+ tf.addStyleName("childtf");\r
+ newItem.getItemProperty("text").setValue(tf);\r
+\r
+ }\r
+\r
+ public void setButtonCaption(String caption) {\r
+ addButton.setCaption(caption);\r
+ }\r
+\r
+ public void buttonClick(ClickEvent event) {\r
+ Button b = event.getButton();\r
+ if (b == addButton) {\r
+ this.select(getNullSelectionItemId());\r
+ addNewRow();\r
+ }\r
+ }\r
+\r
+ public void setInputPrompt(String string) {\r
+ inputPrompt = string;\r
+ }\r
+\r
+ public void setInputPromptChild(String string) {\r
+ inputPromptChild = string;\r
+ }\r
+\r
+ }\r
+\r
+ @Override\r
+ protected String getDescription() {\r
+ return "The table has 3 columns. The second column is expanded and contains 100% wide textfields. These should fill the available space. The third column is empty.";\r
+ }\r
+\r
+ @Override\r
+ protected Integer getTicketNumber() {\r
+ return 3145;\r
+ }\r
+}\r