Ячейка столбца Vaadin ведет себя как ссылка

У меня есть таблица в Vaadin, которая отображает данные в зависимости от типа данных, выбранного в дереве. Для данных типа URL-адреса отображается строка (два столбца) URL-адреса и фактический URL-адрес в другом, но отображается как обычный текст. Я хотел бы, чтобы этот URL-адрес можно было щелкнуть и открыть в другом окне.

Я попытался добавить ссылку в этот случай, но вместо фактической ссылки отображается что-то вроде com.vaadin.ui.Link@596bf9. Вот код, который я использую:

xincoTable.addItem(new Object[]{header, header.equals("URL") ? new Link(value,
                                new ExternalResource(value)) : value}, i++);

value имеет фактическую строку URL. Я видел учебник, но он использует сгенерированные столбцы, поэтому я не уверен, как его вытащить. Я предполагаю, что часть проблемы заключается в том, что в этом случае поведение желательно только для этой ячейки, во всех других случаях это будет текст, и, конечно, в этих столбцах есть и другие вещи в других строках.

Есть идеи?


person javydreamercsw    schedule 16.11.2011    source источник


Ответы (1)


Ваша проблема в том, что тип столбца, содержащего Link, — String. Тип столбца должен быть Component:

table.addContainerProperty("mylinkproperty", Component.class, null);

Затем установите для свойства значение Link или Label вместо Link или String.

person Henri Kerola    schedule 16.11.2011