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 }