2015-09-21 19 views
1

Я создаю стол с Ваадином. Некоторые из ячеек повторяются. Поэтому я хочу, чтобы они слились в одну ячейку, как вы можете видеть на картинке: enter image description hereТабличные ячейки слияния - Vaadin

Первое изображение показывает, как выглядит таблица сейчас, а вторая - как я хочу смотреть с объединенными ячейками.

Я использую этот код:

Table table = new Table(AppData.getMessage("menu.report2")); 
table.addContainerProperty(tableHeaders[0], String.class, null); 
table.addContainerProperty(tableHeaders[1], String.class, null); 
table.addContainerProperty(tableHeaders[2], String.class, null); 
table.addContainerProperty(tableHeaders[3], String.class, null); 

List<User> employeeList = employeeDAO.findAllEmployees(); 
int i; 
for (i = 0; i < employeeList.size(); i++) { 
    User employee = employeeList.get(i); 
    table.addItem(new Object[]{ 
      CaseStatus.OPEN, 
      tasksDAO.countTasks(CaseStatus.OPEN), 
      employee.getFirstAndLastName(), 
      tasksDAO.countTasks(employee, CaseStatus.OPEN)}, 
      i); 
} 

for (int j = 0; j < employeeList.size(); j++) { 
    User employee = employeeList.get(j); 
    table.addItem(new Object[]{ 
      CaseStatus.CLOSED, 
      tasksDAO.countTasks(CaseStatus.CLOSED), 
      employee.getFirstAndLastName(), 
      tasksDAO.countTasks(employee, CaseStatus.CLOSED)}, 
      i + j); 
} 


table.setPageLength(table.size()); 

addComponent(table); 
setComponentAlignment(table, Alignment.TOP_CENTER); 
setMargin(true); 

ответ

1

Я думаю, что это не возможно в «нормальном режиме». Но у меня есть идея, как имитировать это.

Первое решение:

Вы могли бы просто использовать GridLayout построить сетку, как вы хотите. Тогда ничто не ограничивает ваше воображение рядом с размером такой сетки. Это не должно быть большим (также указано here).

Второе решение:

Другой совет является немного сумасшедшим.

  1. Отключить Table/Grid полосы.
  2. В группе подобных ячеек просто заполните только первую строку. Оставленный остаток пустой (или пробел в строке).

Затем вы удаляете повторяющиеся данные (из первого и второго столбцов), но вы не можете их выравнивать по вертикали (текст будет находиться в первой строке из группы).

Третье решение:

Проверить Add-ons список. Например, ItemGrid.

+0

ОК, я использовал GridLayout для создания таблицы, так что теперь, как я могу добавить строки таблицы на этом макете? – KiKo

+0

См. [Этот ответ] (http://stackoverflow.com/a/5622571). Я думаю, что самый простой способ - использовать CSS. – jsosnowski

Смежные вопросы