package org.robobinding.gallery.presentationmodel;
import java.util.List;
import org.robobinding.annotation.ItemPresentationModel;
import org.robobinding.annotation.PresentationModel;
import org.robobinding.gallery.model.MemoryProductStore;
import org.robobinding.gallery.model.Product;
import org.robobinding.gallery.presentationmodel.ContextMenuPresentationModel.ProductOperationListener;
import org.robobinding.presentationmodel.HasPresentationModelChangeSupport;
import org.robobinding.presentationmodel.PresentationModelChangeSupport;
/**
* @author Cheng Wei
* @version $Revision: 1.0 $
* @since 1.0
*/
@PresentationModel
public class ContextMenuDemoPresentationModel implements ProductOperationListener, HasPresentationModelChangeSupport {
private final MemoryProductStore productStore;
private final PresentationModelChangeSupport changeSupport;
public ContextMenuDemoPresentationModel(MemoryProductStore productStore) {
this.productStore = productStore;
changeSupport = new PresentationModelChangeSupport(this);
}
@ItemPresentationModel(value = ToStringItemPresentationModel.class)
public List<Product> getProducts() {
return productStore.getAll();
}
@Override
public void onProductDeleted(Product deletedProduct) {
refreshProducts();
}
private void refreshProducts() {
changeSupport.firePropertyChange("products");
}
@Override
public PresentationModelChangeSupport getPresentationModelChangeSupport() {
return changeSupport;
}
}