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