正如它在锡上所说的......我无法获得标签的文字。基本上我正在建立一个评论面板,用户输入一个评论,并显示时间戳等。
我希望标签既可以显示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
显示为格式化,如果用户在单独的行上输入文本,并在他们输入长段注释时换行。
这是一幅描绘我的困境的图片。
任何帮助都将不胜感激。
谢谢,
答案 0 :(得分:2)
尝试使用css。 例如:
textLbl.addStyleName("wrapLine");
的CSS:
.wrapLine{
word-wrap: break-word; /* IE */
white-space: -moz-pre-wrap; /* Firefox */
}