/* * Beanfabrics Framework Copyright (C) by Michael Karneim, beanfabrics.org * Use is subject to license terms. See license.txt. */ package org.beanfabrics.test; import org.beanfabrics.Path; import org.beanfabrics.model.AbstractPM; import org.beanfabrics.model.IOperationPM; import org.beanfabrics.model.ListPM; import org.beanfabrics.model.OperationPM; import org.beanfabrics.model.PMManager; import org.beanfabrics.support.Operation; import org.beanfabrics.support.Property; public class ProductListPM extends AbstractPM { @Property ListPM<ProductPM> elements = new ListPM<ProductPM>(); @Property IOperationPM sortByName = new OperationPM(); @Property IOperationPM sortByType = new OperationPM(); @Property IOperationPM sortByPrice = new OperationPM(); @Property IOperationPM sortByCountry = new OperationPM(); public ProductListPM() { PMManager.setup(this); } public void populate() { addProduct("apple", "fruit", "italy", 1); addProduct("orange", "fruit", "spain", 2); addProduct("pineapple", "fruit", "brazil", 3); addProduct("lemon", "fruit", "brazil", 4); addProduct("potato", "vegetable", "germany", 5); addProduct("tomato", "vegetable", "spain", 6); addProduct("banana", "fruit", "brazil", 7); addProduct("olive", "vegetable", "spain", 8); } private void addProduct(String name, String type, String country, int price) { ProductPM pModel = new ProductPM(); pModel.name.setText(name); pModel.type.setText(type); pModel.country.setText(country); pModel.price.setInteger(price); elements.add(pModel); } @Operation public void sortByName() { this.elements.sortBy(true, new Path("name")); } @Operation public void sortByType() { this.elements.sortBy(true, new Path("type")); } @Operation public void sortByPrice() { this.elements.sortBy(true, new Path("price")); } @Operation public void sortByCountry() { this.elements.sortBy(true, new Path("country")); } }