View Javadoc
1   package com.vaadin.v7.contextmenu;
2   
3   import java.io.Serializable;
4   import java.util.EventListener;
5   
6   import com.vaadin.contextmenu.ContextMenu;
7   import com.vaadin.contextmenu.ContextMenu.ContextMenuOpenListener.ContextMenuOpenEvent;
8   import com.vaadin.v7.contextmenu.GridContextMenu.GridContextMenuOpenListener.GridContextMenuOpenEvent;
9   import com.vaadin.v7.shared.ui.grid.GridConstants.Section;
10  import com.vaadin.v7.ui.Grid;
11  import com.vaadin.v7.ui.Grid.GridContextClickEvent;
12  
13  @SuppressWarnings("serial")
14  /**
15   * Compatibility version of ContextMenu to use with v7.Grid in the Framework 8.0
16   * compatibility packages.
17   *
18   * @deprecated To use only for compatibility v7.Grid
19   */
20  @Deprecated
21  public class GridContextMenu extends ContextMenu {
22  
23      public GridContextMenu(Grid parentComponent) {
24          super(parentComponent, true);
25      }
26  
27      private void addGridSectionContextMenuListener(final Section section,
28              final GridContextMenuOpenListener listener) {
29          addContextMenuOpenListener(new ContextMenuOpenListener() {
30              @Override
31              public void onContextMenuOpen(ContextMenuOpenEvent event) {
32                  if (event
33                          .getContextClickEvent() instanceof GridContextClickEvent) {
34                      GridContextClickEvent gridEvent = (GridContextClickEvent) event
35                              .getContextClickEvent();
36                      if (gridEvent.getSection() == section) {
37                          listener.onContextMenuOpen(new GridContextMenuOpenEvent(
38                                  GridContextMenu.this, gridEvent));
39                      }
40                  }
41              }
42          });
43      }
44  
45      public void addGridHeaderContextMenuListener(
46              GridContextMenuOpenListener listener) {
47          addGridSectionContextMenuListener(Section.HEADER, listener);
48      }
49  
50      public void addGridFooterContextMenuListener(
51              GridContextMenuOpenListener listener) {
52          addGridSectionContextMenuListener(Section.FOOTER, listener);
53      }
54  
55      public void addGridBodyContextMenuListener(
56              GridContextMenuOpenListener listener) {
57          addGridSectionContextMenuListener(Section.BODY, listener);
58      }
59  
60      public interface GridContextMenuOpenListener
61              extends EventListener, Serializable {
62  
63          public void onContextMenuOpen(GridContextMenuOpenEvent event);
64  
65          public static class GridContextMenuOpenEvent
66                  extends ContextMenuOpenEvent {
67              private final Object itemId;
68              private final int rowIndex;
69              private final Object propertyId;
70              private final Section section;
71  
72              public GridContextMenuOpenEvent(ContextMenu contextMenu,
73                      GridContextClickEvent contextClickEvent) {
74                  super(contextMenu, contextClickEvent);
75                  itemId = contextClickEvent.getItemId();
76                  rowIndex = contextClickEvent.getRowIndex();
77                  propertyId = contextClickEvent.getPropertyId();
78                  section = contextClickEvent.getSection();
79              }
80  
81              public Object getItemId() {
82                  return itemId;
83              }
84  
85              public int getRowIndex() {
86                  return rowIndex;
87              }
88  
89              public Object getPropertyId() {
90                  return propertyId;
91              }
92  
93              public Section getSection() {
94                  return section;
95              }
96          }
97      }
98  }