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 }