diff options
author | Henri Sara <hesara@vaadin.com> | 2012-12-17 10:26:50 +0000 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2012-12-17 10:26:50 +0000 |
commit | c7070fc5754213b5d55c3db2d0fa52917f3bb544 (patch) | |
tree | ea267dff483cce4436925d2bbe509ce813452ab3 /uitest | |
parent | 8b7491d05c037205e31f182acf671f1ddd1ad380 (diff) | |
parent | 53c2e014976d8b45b4633e6d3f1d54a2147048a2 (diff) | |
download | vaadin-framework-c7070fc5754213b5d55c3db2d0fa52917f3bb544.tar.gz vaadin-framework-c7070fc5754213b5d55c3db2d0fa52917f3bb544.zip |
Merge "Added method setContainerDataSource(Container newDataSource, Collection<?> visibleIds) to Table. (#10419)"
Diffstat (limited to 'uitest')
-rw-r--r-- | uitest/src/com/vaadin/tests/components/table/SetDataSourceWithPropertyIds.html | 91 | ||||
-rw-r--r-- | uitest/src/com/vaadin/tests/components/table/SetDataSourceWithPropertyIds.java | 174 |
2 files changed, 265 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/components/table/SetDataSourceWithPropertyIds.html b/uitest/src/com/vaadin/tests/components/table/SetDataSourceWithPropertyIds.html new file mode 100644 index 0000000000..67964d9fb2 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/table/SetDataSourceWithPropertyIds.html @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head profile="http://selenium-ide.openqa.org/profiles/test-case"> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<link rel="selenium.base" href="" /> +<title>SetDataSourceWithPropertyIds</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">SetDataSourceWithPropertyIds</td></tr> +</thead><tbody> +<tr> + <td>open</td> + <td>/run/com.vaadin.tests.components.table.SetDataSourceWithPropertyIds?restartApplication</td> + <td></td> +</tr> +<tr> + <td>assertText</td> + <td>label</td> + <td>no ConversionException</td> +</tr> +<tr> + <td>assertElementPresent</td> + <td>vaadin=runcomvaadintestscomponentstableSetDataSourceWithPropertyIds::PID_Stable/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VTextField[0]</td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentstableSetDataSourceWithPropertyIds::PID_Sbutton/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>assertText</td> + <td>label</td> + <td>no ConversionException</td> +</tr> +<tr> + <td>assertElementNotPresent</td> + <td>vaadin=runcomvaadintestscomponentstableSetDataSourceWithPropertyIds::PID_Stable/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VTextField[0]</td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentstableSetDataSourceWithPropertyIds::PID_Sbutton/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>assertText</td> + <td>label</td> + <td>ConversionException caught</td> +</tr> +<tr> + <td>assertElementPresent</td> + <td>vaadin=runcomvaadintestscomponentstableSetDataSourceWithPropertyIds::PID_Stable/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VTextField[0]</td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentstableSetDataSourceWithPropertyIds::PID_Sbutton/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>assertText</td> + <td>label</td> + <td>no ConversionException</td> +</tr> +<tr> + <td>assertElementNotPresent</td> + <td>vaadin=runcomvaadintestscomponentstableSetDataSourceWithPropertyIds::PID_Stable/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VTextField[0]</td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentstableSetDataSourceWithPropertyIds::PID_Sbutton/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>assertText</td> + <td>label</td> + <td>ConversionException caught</td> +</tr> +<tr> + <td>assertElementPresent</td> + <td>vaadin=runcomvaadintestscomponentstableSetDataSourceWithPropertyIds::PID_Stable/FocusableScrollPanel[0]/VScrollTable$VScrollTableBody[0]/VScrollTable$VScrollTableBody$VScrollTableRow[0]/VTextField[0]</td> + <td></td> +</tr> +</tbody></table> +</body> +</html> diff --git a/uitest/src/com/vaadin/tests/components/table/SetDataSourceWithPropertyIds.java b/uitest/src/com/vaadin/tests/components/table/SetDataSourceWithPropertyIds.java new file mode 100644 index 0000000000..dbdd810440 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/table/SetDataSourceWithPropertyIds.java @@ -0,0 +1,174 @@ +package com.vaadin.tests.components.table; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import com.vaadin.data.util.BeanItemContainer; +import com.vaadin.data.util.converter.Converter.ConversionException; +import com.vaadin.server.VaadinRequest; +import com.vaadin.shared.ui.MarginInfo; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.Button; +import com.vaadin.ui.Label; +import com.vaadin.ui.Table; + +public class SetDataSourceWithPropertyIds extends AbstractTestUI { + + @Override + protected String getTestDescription() { + return "It should be possible to set a dataSource without generating columns that were never intended to be visible.<br>" + + "First initialization happens before the table is attached."; + } + + @Override + protected Integer getTicketNumber() { + return 10419; + } + + private static final String TABLE_NAME = "JOBS"; + private static final String[] PK_COLUMN_NAMES = new String[] { "JOB_ID" }; + private static final String SEQUENCE_NAME = ""; + private static final String VERSION_COLUMN_NAME = ""; + + Table table = new Table(); + BeanItemContainer<JobsBean> jobContainer = new BeanItemContainer( + JobsBean.class); + Label label = new Label(); + + @Override + protected void setup(VaadinRequest request) { + getLayout().setSpacing(true); + getLayout().setMargin(new MarginInfo(true, false, false, false)); + + Button button = new Button("Toggle editability"); + button.setId("button"); + button.addClickListener(new Button.ClickListener() { + @Override + public void buttonClick(Button.ClickEvent clickEvent) { + refreshTable(); + } + }); + + label.setSizeUndefined(); + label.setId("label"); + + table.setId("table"); + refreshTable(); + + addComponent(button); + addComponent(label); + addComponent(table); + } + + private void refreshTable() { + // error only occurs when table is editable and already attached + table.setEditable(table.getParent() == null || !table.isEditable()); + + jobContainer.removeAllItems(); + jobContainer.addAll(getBeanList()); + try { + table.setContainerDataSource(jobContainer); + table.setVisibleColumns(new String[] { "jobId" }); + label.setValue("no ConversionException"); + } catch (ConversionException e) { + ArrayList<String> propertyIds = new ArrayList<String>(); + propertyIds.add("jobId"); + table.setContainerDataSource(jobContainer, propertyIds); + label.setValue("ConversionException caught"); + } + } + + private List<JobsBean> getBeanList() { + + List<JobsBean> list = new ArrayList<JobsBean>(); + JobsBean jobsBean = new JobsBean(); + jobsBean.setJobId("1"); + list.add(jobsBean); + return list; + } + + public class JobsBean<T> implements Serializable { + + private static final long serialVersionUID = 1932918476339138393L; + protected String jobId; + protected String jobTitle; + protected Long minSalary; + protected Long maxSalary; + private T auxiliaryData; + + public T getAuxiliaryData() { + return auxiliaryData; + } + + public void setAuxiliaryData(final T pAuxiliaryData) { + auxiliaryData = pAuxiliaryData; + } + + public String getTableName() { + return TABLE_NAME; + } + + public String[] getPrimaryKeyColumnNames() { + return PK_COLUMN_NAMES; + } + + public String getSequenceName() { + return SEQUENCE_NAME; + } + + public String getVersionColumnName() { + return VERSION_COLUMN_NAME; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(final String pJobId) { + jobId = pJobId; + } + + public String getJobTitle() { + return jobTitle; + } + + public void setJobTitle(final String pJobTitle) { + jobTitle = pJobTitle; + } + + public Long getMinSalary() { + return minSalary; + } + + public void setMinSalary(final Long pMinSalary) { + minSalary = pMinSalary; + } + + public Long getMaxSalary() { + return maxSalary; + } + + public void setMaxSalary(final Long pMaxSalary) { + maxSalary = pMaxSalary; + } + + @Override + public boolean equals(Object pObject) { + if (this == pObject) { + return true; + } + if (!(pObject instanceof JobsBean)) { + return false; + } + JobsBean other = (JobsBean) pObject; + return getJobId().equals(other.getJobId()); + } + + @Override + public int hashCode() { + return getJobId().hashCode(); + } + } + +} |