/*
* Copyright 2000-2013 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.vaadin.tests.components.table;
import java.util.Random;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractReindeerTestUI;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.v7.data.Container;
import com.vaadin.v7.data.util.BeanItemContainer;
import com.vaadin.v7.ui.Table;
/**
* Test if the table sorting indicators update correctly when the table is
* sorted serverside
*
* @author Vaadin Ltd
*/
public class TableSortingIndicator extends AbstractReindeerTestUI {
/*
* (non-Javadoc)
*
* @see com.vaadin.tests.components.AbstractTestUI#setup(com.vaadin.server.
* VaadinRequest)
*/
@Override
protected void setup(VaadinRequest request) {
final Table table = new Table("Test table", buildContainer());
table.setSizeFull();
addComponent(table);
Button sortButton = new Button("Sort", new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
table.sort(new Object[] { "val1" }, new boolean[] { false });
}
});
addComponent(sortButton);
}
private Container buildContainer() {
BeanItemContainer<TestBean> container = new BeanItemContainer<>(
TestBean.class);
for (int i = 0; i < 100; ++i) {
TestBean item = new TestBean();
item.setVal1(i);
item.setVal2(randomWord());
item.setVal3(randomWord());
container.addBean(item);
}
return container;
}
/*
* (non-Javadoc)
*
* @see com.vaadin.tests.components.AbstractTestUI#getTestDescription()
*/
@Override
protected String getTestDescription() {
return "The table should have visible sorting indicators.";
}
/*
* (non-Javadoc)
*
* @see com.vaadin.tests.components.AbstractTestUI#getTicketNumber()
*/
@Override
protected Integer getTicketNumber() {
return 8978;
}
public class TestBean {
private Integer val1;
private String val2;
private String val3;
public Integer getVal1() {
return val1;
}
public void setVal1(Integer val1) {
this.val1 = val1;
}
public String getVal2() {
return val2;
}
public void setVal2(String val2) {
this.val2 = val2;
}
public String getVal3() {
return val3;
}
public void setVal3(String val3) {
this.val3 = val3;
}
}
private String randomWord() {
Random rng = new Random();
char[] word = new char[3 + rng.nextInt(10)];
for (int i = 0; i < word.length; ++i) {
word[i] = (char) ('a' + rng.nextInt(26));
}
return new String(word);
}
}