001 package org.springframework.richclient.samples.dataeditor.ui; 002 003 import org.springframework.richclient.samples.dataeditor.domain.Supplier; 004 import org.springframework.richclient.samples.dataeditor.domain.SupplierFilter; 005 import org.springframework.richclient.samples.dataeditor.domain.SupplierService; 006 import org.springframework.richclient.widget.editor.provider.AbstractDataProvider; 007 008 import java.util.List; 009 010 public class SupplierDataProvider extends AbstractDataProvider 011 { 012 private SupplierService service; 013 014 public SupplierDataProvider(SupplierService service) 015 { 016 this.service = service; 017 } 018 019 public boolean supportsFiltering() 020 { 021 return true; 022 } 023 024 public List getList(Object criteria) 025 { 026 if (criteria instanceof SupplierFilter) 027 { 028 return service.findSuppliers((SupplierFilter) criteria); 029 } 030 else if (criteria instanceof Supplier) 031 { 032 return service.findSuppliers(SupplierFilter.fromSupplier((Supplier) criteria)); 033 } 034 else 035 { 036 throw new IllegalArgumentException("This provider can only filter through SupplierFilter, not " + criteria.getClass()); 037 } 038 } 039 040 public boolean supportsUpdate() 041 { 042 return true; 043 } 044 045 @Override 046 public Object doCreate(Object newData) 047 { 048 return newData; 049 } 050 051 @Override 052 public void doDelete(Object dataToRemove) 053 { 054 } 055 056 @Override 057 public Object doUpdate(Object updatedData) 058 { 059 return updatedData; 060 } 061 062 public boolean supportsCreate() 063 { 064 return true; 065 } 066 067 public boolean supportsClone() 068 { 069 return false; 070 } 071 072 public boolean supportsDelete() 073 { 074 return true; 075 } 076 }