val logger = LoggerFactory.getLogger("UserManager")
val users = DataServices.getUsers()
var userContainer = new IndexedContainer
userContainer.addContainerProperty("name", classOf[String],None)
userContainer.addContainerProperty("user", classOf[User], None)
val userList = new ListSelect { container = userContainer }
userList.itemCaptionMode_=(AbstractSelect.ItemCaptionMode.Property)
userList.itemCaptionPropertyId_=("name")
users.foreach(u=>{
val item = userContainer.getItem(userContainer.addItem)
item.getProperty("name").value = u.name
item.getProperty("user").value = u
})
addComponent(userList)
val delButton = new Button { caption = "DeleteUser" }
delButton.enabled = false
addComponent(delButton)
userList.valueChangeListeners += (e => {
val selItem = userList.getItem(e.property.value.get).getProperty("user")
logger.info("{}",selItem)
})
最終的logline給我正確的值vaadin但我得到警告:入門選擇從目錄選擇項目與scaladin
您正在使用的toString()代替的getValue()獲取的價值a com.vaadin.data.util.IndexedContainer $ IndexedContainerProperty類型的屬性。此 強烈建議不要只與Vaadin 6
提供向後兼容性 。要禁用此警告消息並保留該行爲,請將init參數「legacyPropertyToString
」設置爲「true
」。要禁用舊功能,請將「legacyPropertyToString
」設置爲false
。 (請注意,您的調試器可能會調用toString()
並觸發此消息)。要找出誰在呼叫toString()
,請啓用FINE級別日誌記錄。
我無法弄清楚使用scaladin得到所選項目的正確方法。
使用vaadin 7.6.3
和scaladin 3.1.0
那麼,什麼是確定所選擇的項目,並沒有得到警告的正確方法?