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
16
17
18
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 }