View Javadoc

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   * @author Torsten Strasser
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  }