@Beta public class CachedViewModelCellFactory<V extends de.saxsys.mvvmfx.internal.viewloader.View<VM>,VM extends ViewModel> extends Object implements ViewListCellFactory<VM>
ViewListCellFactory that can be used for ListViews that are based on a list
of ViewModels. Additionally this CellFactory has a cache for ViewTuples that where already loaded before.
public class OverviewView implements FxmlViewThe example above uses the<OverviewViewModel>{ @FXML public ListView<ItemViewModel>itemList; @InjectViewModel private OverviewViewModel viewModel; public void initialize(){ itemList.setItems(viewModel.itemsProperty()); itemList.setCellFactory(CachedViewModelCellFactory.createForFxmlView(ItemView.class)); } }
createForFxmlView(Class) factory method for a specific View type.
create(Callback) method instead. This method takes a Callback as argument. This callback gets an
instance of the ViewModel as argument and has to return a ViewTuple for this viewModel. This means
that you have to call the FluentViewLoader by yourself.
itemList.setCellFactory(CachedViewModelCellFactory.create(
vm -> FluentViewLoader.fxmlView(ItemView.class).viewModel(vm).load()));
| Constructor and Description |
|---|
CachedViewModelCellFactory(javafx.util.Callback<VM,ViewTuple<V,VM>> loadFactory) |
| Modifier and Type | Method and Description |
|---|---|
static <V extends de.saxsys.mvvmfx.internal.viewloader.View<VM>,VM extends ViewModel> |
create(javafx.util.Callback<VM,ViewTuple<V,VM>> callback) |
static <V extends FxmlView<VM>,VM extends ViewModel> |
createForFxmlView(Class<V> viewType) |
static <V extends JavaView<VM>,VM extends ViewModel> |
createForJavaView(Class<V> viewType) |
ViewTuple<V,VM> |
map(VM viewModel)
Map a
<T> to a ViewTuple. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcallpublic ViewTuple<V,VM> map(VM viewModel)
ViewTupleMapper<T> to a ViewTuple.map in interface ViewListCellFactory<VM extends ViewModel>map in interface ViewTupleMapper<VM extends ViewModel>viewModel - to mapViewTuplepublic static <V extends de.saxsys.mvvmfx.internal.viewloader.View<VM>,VM extends ViewModel> CachedViewModelCellFactory<V,VM> create(javafx.util.Callback<VM,ViewTuple<V,VM>> callback)
public static <V extends FxmlView<VM>,VM extends ViewModel> CachedViewModelCellFactory<V,VM> createForFxmlView(Class<V> viewType)
public static <V extends JavaView<VM>,VM extends ViewModel> CachedViewModelCellFactory<V,VM> createForJavaView(Class<V> viewType)
Copyright © 2019 Saxonia Systems AG. All rights reserved.