package org.nightlabs.jfire.voucher.admin.ui.tree; import java.util.Collection; import java.util.List; import java.util.Set; import javax.jdo.FetchPlan; import org.nightlabs.jdo.NLJDOHelper; import org.nightlabs.jfire.base.ui.jdo.tree.ActiveJDOObjectTreeController; import org.nightlabs.jfire.jdo.notification.TreeNodeParentResolver; import org.nightlabs.jfire.store.ProductType; import org.nightlabs.jfire.store.id.ProductTypeID; import org.nightlabs.jfire.voucher.dao.VoucherTypeDAO; import org.nightlabs.jfire.voucher.notification.VoucherTypeParentResolver; import org.nightlabs.jfire.voucher.store.VoucherType; import org.nightlabs.progress.ProgressMonitor; public abstract class ActiveVoucherTypeTreeController extends ActiveJDOObjectTreeController<ProductTypeID, VoucherType, VoucherTypeTreeNode> { public static final String[] FETCH_GROUPS_VOUCHER_TYPE = { FetchPlan.DEFAULT, ProductType.FETCH_GROUP_NAME, ProductType.FETCH_GROUP_EXTENDED_PRODUCT_TYPE_ID }; @Override protected VoucherTypeTreeNode createNode() { return new VoucherTypeTreeNode(); } @Override protected Collection<VoucherType> retrieveChildren(ProductTypeID parentID, VoucherType parent, ProgressMonitor monitor) { Collection<VoucherType> res = VoucherTypeDAO.sharedInstance().getChildVoucherTypes( parentID, FETCH_GROUPS_VOUCHER_TYPE, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, monitor); return res; } @Override protected Collection<VoucherType> retrieveJDOObjects(Set<ProductTypeID> objectIDs, ProgressMonitor monitor) { Collection<VoucherType> res = VoucherTypeDAO.sharedInstance().getVoucherTypes( objectIDs, FETCH_GROUPS_VOUCHER_TYPE, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, monitor); return res; } @Override protected void sortJDOObjects(List<VoucherType> objects) { // no need to sort now - later maybe } @Override protected TreeNodeParentResolver createTreeNodeParentResolver() { return new VoucherTypeParentResolver(); } @Override protected Class<VoucherType> getJDOObjectClass() { return VoucherType.class; } }