gpt4 book ai didi

java - 从 wicket 中的列表模型制作项目模型

转载 作者:行者123 更新时间:2023-11-30 09:04:59 25 4
gpt4 key购买 nike

Wicket 口版本:6.14

我有一个

LoadableDetachableModel<List<Foo>>

我正在尝试将模型与向导一起使用,但向导的每一页都将使用列表中的一个项目。

我想获取列表中每一个的模型,并在向导中的每个屏幕之间更改模型。

理想情况下我可以做这样的事情:

PropertyModel<Foo> fooItemModel = new PropertyModel<Foo>(fooItems, "get(0)");

我的另一个想法是滚动我自己的 ListItemModel 并让它接受

IModel<List<?>>

而不是 ListView。

public ListItemModel(final ListView<T> listView, final int index)
{
this.listView = listView;
this.index = index;
}

/**
* @see org.apache.wicket.model.IModel#getObject()
*/
@Override
public T getObject()
{
return listView.getModelObject().get(index);
}

/**
* @see org.apache.wicket.model.IModel#setObject(java.lang.Object)
*/
@Override
public void setObject(T object)
{
listView.getModelObject().set(index, object);
}

如果有任何建议,我们将不胜感激

最佳答案

我通过使自己的模型类似于 ListItemModel 并使用页面索引来确定从主模型中拉出哪个模型来解决这个问题。

public class ElementModel<T> implements IModel<T>
{
private static final long serialVersionUID = 1L;

/** The list model */
private IModel<List<T>> listModel;

/** The list item's index */
private final int index;

/**
* Construct
*
* @param listModel
* The list model
* @param index
* The index of this model
*/
public ElementModel(final IModel<List<T>> listModel, final int index)
{
this.listModel = listModel;
this.index = index;
}

/**
* @see org.apache.wicket.model.IModel#getObject()
*/
@Override
public T getObject()
{
return listModel.getObject().get(index);
}

/**
* @see org.apache.wicket.model.IModel#setObject(java.lang.Object)
*/
@Override
public void setObject(T object)
{
listModel.getObject().set(index, object);
}

/**
* @see org.apache.wicket.model.IDetachable#detach()
*/
@Override
public void detach()
{
// Do nothing.
}
}

关于java - 从 wicket 中的列表模型制作项目模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25002458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com