1 package de.orangecafe.amazonrcp.gui.commands;
2
3 import org.springframework.richclient.command.support.AbstractActionCommandExecutor;
4 import org.springframework.richclient.application.ApplicationException;
5 import org.springframework.util.Assert;
6
7 import java.util.Map;
8
9 import com.amazon.webservices.awsecommerceservice._2007_04_04.Items;
10 import com.amazon.webservices.awsecommerceservice._2007_04_04.ItemSearchRequest;
11 import de.orangecafe.amazonrcp.service.ServiceException;
12 import de.orangecafe.amazonrcp.service.IAmazonService;
13
14
15
16
17 public class SearchCommandExecutor extends AbstractActionCommandExecutor {
18 private ItemSearchRequest _request;
19 private IAmazonService _service;
20
21 public SearchCommandExecutor() {
22 internalSetEnabled(false);
23 }
24
25 public void setAmazonService(final IAmazonService service) {
26 Assert.notNull(service);
27 _service = service;
28 }
29
30 @Override
31 public void execute() {
32 search();
33 }
34
35 @Override
36 public void execute(final Map map) {
37 _request = (ItemSearchRequest) map.get("request");
38
39 internalSetEnabled(true);
40
41 execute();
42 }
43
44 private Items search() {
45 try {
46 return _service.search(_request);
47 } catch (ServiceException e) {
48 throw new ApplicationException(e);
49 }
50 }
51 }