View Javadoc

1   package de.orangecafe.amazonrcp.gui.views;
2   
3   import org.springframework.richclient.application.support.AbstractView;
4   import org.springframework.richclient.application.event.LifecycleApplicationEvent;
5   import org.springframework.richclient.form.Form;
6   import org.springframework.richclient.form.FormModelHelper;
7   import org.springframework.richclient.dialog.FormBackedDialogPage;
8   import org.springframework.binding.form.HierarchicalFormModel;
9   import org.springframework.context.ApplicationListener;
10  import org.springframework.context.ApplicationEvent;
11  
12  import javax.swing.*;
13  
14  import de.orangecafe.amazonrcp.gui.forms.SearchResultMasterForm;
15  import de.orangecafe.amazonrcp.helper.SelectedItemListHolder;
16  
17  import com.amazon.webservices.awsecommerceservice._2007_04_04.*;
18  
19  /**
20   * @author Torsten Strasser
21   */
22  public class SearchResultView extends AbstractView implements ApplicationListener {
23      private HierarchicalFormModel _searchResultModel;
24      private SelectedItemListHolder _holder;
25  
26      protected JComponent createControl() {
27          Items empty = (Items) getApplicationContext().getBean("items");
28          _searchResultModel = FormModelHelper.createCompoundFormModel(empty);
29  
30          SearchResultMasterForm searchResultForm = new SearchResultMasterForm(_searchResultModel, "item", "searchResultForm", Item.class, _holder);
31  
32          FormBackedDialogPage page = new FormBackedDialogPage(searchResultForm);
33  
34          return page.getControl();
35      }
36  
37      public void setSelectedItemsHolder(final SelectedItemListHolder holder) {
38          _holder = holder;
39      }
40  
41      public void onApplicationEvent(final ApplicationEvent applicationEvent) {
42          if (applicationEvent instanceof LifecycleApplicationEvent) {
43              LifecycleApplicationEvent le = (LifecycleApplicationEvent) applicationEvent;
44  
45              if (le.getEventType().equals(LifecycleApplicationEvent.MODIFIED) && le.objectIs(Items.class)) {
46                  //TODO: missing offerNewLowestPrice
47                  _searchResultModel.setFormObject(le.getObject());
48              }
49          }
50      }
51  }