vaadin标签文字没有包装

时间:2014-09-23 08:33:50

标签: java vaadin vaadin7

正如它在锡上所说的......我无法获得标签的文字。基本上我正在建立一个评论面板,用户输入一个评论,并显示时间戳等。

我希望标签既可以显示ContentMode.PREFORMATTED,也可以包装。

其中包含标签的布局是固定宽度(100%),显然默认情况下是标签,从我在vaadin中读到的内容我应该做什么应该起作用?

这是我的代码段:

VerticalLayout container = new VerticalLayout();
rootLayout.addComponent(container);

VerticalLayout comment = new VerticalLayout();
container.addComponent(comment);

Label createdByLbl = new Label(entity.getManagedMetadata().getAttrValue("createdBy") + " said:");
createdByLbl.setId("conversation.comment.username." + repositoryUID);
createdByLbl.setStyleName("conversation-comment-username");

Label createdDateLbl = new Label(entity.getManagedMetadata().getAttrValue("createdDate"));
createdDateLbl.setId("conversation.comment.createddate." + repositoryUID);
createdDateLbl.setSizeUndefined();

String text = entity.getDataNode().getAttrValue("text");
Label textLbl = new Label(text, ContentMode.PREFORMATTED);
textLbl.setId("conversation.comment.text." + repositoryUID);

comment.addComponent(createdByLbl);
comment.addComponent(textLbl);
comment.addComponent(createdDateLbl);

comment.setExpandRatio(createdByLbl, 0.2f);
comment.setExpandRatio(textLbl, 0.7f);
comment.setExpandRatio(createdDateLbl, 0.1f);

请注意,容器也由CssLayout(rootLayout)包装,它是全尺寸的。

我希望上面显示的textLbl显示为格式化,如果用户在单独的行上输入文本,并在他们输入长段注释时换行。

这是一幅描绘我的困境的图片。

example

任何帮助都将不胜感激。

谢谢,

1 个答案:

答案 0 :(得分:2)

尝试使用css。 例如:

textLbl.addStyleName("wrapLine");

的CSS:

.wrapLine{
   word-wrap: break-word; /* IE  */
   white-space: -moz-pre-wrap; /* Firefox */
}