summaryrefslogtreecommitdiffstats
path: root/src/com/vaadin/tests/components/textfield/TextFieldRelativeWidth.java
blob: 06a6a7a7f74c795414ff260c332dbc361ed0b6d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package com.vaadin.tests.components.textfield;

import com.vaadin.data.Item;
import com.vaadin.data.Property;
import com.vaadin.data.util.IndexedContainer;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Button;
import com.vaadin.ui.Component;
import com.vaadin.ui.Table;
import com.vaadin.ui.TextField;
import com.vaadin.ui.Button.ClickEvent;

public class TextFieldRelativeWidth extends TestBase {

    @Override
    public void setup() {
        TextField tf = new TextField("test", "testing");
        tf.setWidth("100%");

        EditTable t = new EditTable();
        t.setButtonCaption("Click to add new Key Research Question");
        t.setInputPrompt("Key Reseach question");
        t.setInputPromptChild("Question details");
        t.addNewRow();
        addComponent(t);
    }

    public class EditTable extends Table implements Button.ClickListener {

        private Button addButton = new Button("Add new row",
                (Button.ClickListener) this);

        private String inputPrompt;

        private String inputPromptChild;

        private int nextItemIndex = 1;

        private static final long serialVersionUID = 3326806911297977454L;

        public EditTable() {
            setColumnHeaderMode(Table.COLUMN_HEADER_MODE_HIDDEN);
            inputPrompt = "";
            setPageLength(100);
            setHeight("100%");
            setSizeFull();
            addContainerProperty("id", Integer.class, null);
            addContainerProperty("text", Component.class, null);
            addContainerProperty("button", Button.class, null);
            setColumnExpandRatio("text", 1);
            Item i = getItem(addItem());
            i.getItemProperty("text").setValue(addButton);
            setImmediate(true);
            setSelectable(true);
            addListener(new Property.ValueChangeListener() {
                private static final long serialVersionUID = 448896474865195605L;

                public void valueChange(
                        com.vaadin.data.Property.ValueChangeEvent event) {
                    IndexedContainer idc = (IndexedContainer) getContainerDataSource();

                }

            });
        }

        public void addNewRow() {
            IndexedContainer idc = (IndexedContainer) this
                    .getContainerDataSource();
            int size = idc.size();
            Object itemId = idc.addItemAt(size - 1);
            Item newItem = idc.getItem(itemId);
            TextField tf = new TextField();
            if (inputPrompt != null && inputPrompt.length() > 0) {
                tf.setInputPrompt(inputPrompt);
            }
            tf.setWidth("100%");

            newItem.getItemProperty("id").setValue(nextItemIndex);
            nextItemIndex++;
            newItem.getItemProperty("text").setValue(tf);
            setValue(itemId);
            itemId = idc.addItemAt(size);
            newItem = idc.getItem(itemId);

            tf = new TextField();
            if (inputPromptChild != null && inputPromptChild.length() > 0) {
                tf.setInputPrompt(inputPromptChild);
            }
            tf.setRows(1);
            tf.setHeight("45px");
            tf.setWidth("100%");
            tf.addStyleName("childtf");
            newItem.getItemProperty("text").setValue(tf);

        }

        public void setButtonCaption(String caption) {
            addButton.setCaption(caption);
        }

        public void buttonClick(ClickEvent event) {
            Button b = event.getButton();
            if (b == addButton) {
                this.select(getNullSelectionItemId());
                addNewRow();
            }
        }

        public void setInputPrompt(String string) {
            inputPrompt = string;
        }

        public void setInputPromptChild(String string) {
            inputPromptChild = string;
        }

    }

    @Override
    protected String getDescription() {
        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.";
    }

    @Override
    protected Integer getTicketNumber() {
        return 3145;
    }
}