1 package de.orangecafe.amazonrcp.helper;
2
3 import org.springframework.binding.form.FormModel;
4 import org.springframework.richclient.table.ListSelectionListenerSupport;
5
6 import java.beans.PropertyChangeListener;
7 import java.beans.PropertyChangeEvent;
8 import java.util.List;
9 import java.util.ArrayList;
10
11 import com.amazon.webservices.awsecommerceservice._2007_04_04.Item;
12
13
14
15
16 public class SelectedItemListHolder extends ListSelectionListenerSupport implements PropertyChangeListener {
17 private List<Item> _items;
18 private List<Item> _selectedItems;
19
20 public SelectedItemListHolder() {
21 _selectedItems = new ArrayList<Item>();
22 }
23
24 public synchronized void propertyChange(PropertyChangeEvent event) {
25 if ((event.getPropertyName().equals("dirty")) && (!(((Boolean) event.getNewValue())))) {
26 FormModel model = (FormModel) event.getSource();
27 _items = (List<Item>) model.getFormObject();
28 }
29 }
30
31 @Override
32 protected synchronized void onMultiSelection(final int[] indexes) {
33 _selectedItems.clear();
34
35 for (int index : indexes) {
36 _selectedItems.add(_items.get(index));
37 }
38 }
39
40 @Override
41 protected synchronized void onSingleSelection(final int index) {
42 _selectedItems.clear();
43 _selectedItems.add(_items.get(index));
44 }
45
46 @Override
47 protected synchronized void onNoSelection() {
48 _selectedItems.clear();
49 }
50
51 public synchronized List<Item> getSelectedItems() {
52 return _selectedItems;
53 }
54 }