1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package com.hack23.cia.web.impl.ui.application.views.pageclicklistener;
20
21 import java.util.Set;
22
23 import com.vaadin.event.SelectionEvent;
24 import com.vaadin.event.SelectionEvent.SelectionListener;
25 import com.vaadin.ui.UI;
26 import com.vaadin.ui.renderers.ClickableRenderer.RendererClickEvent;
27 import com.vaadin.ui.renderers.ClickableRenderer.RendererClickListener;
28
29
30
31
32
33
34
35 public abstract class AbstractPageItemRendererClickListener<T> implements RendererClickListener ,SelectionListener{
36
37
38 private static final Character PAGE_SEPARATOR = '/';
39
40
41 private static final long serialVersionUID = 1L;
42
43
44 private final String page;
45
46
47
48
49
50
51
52 public AbstractPageItemRendererClickListener(final String page) {
53 this.page = page;
54 }
55
56 @Override
57 public final void click(final RendererClickEvent event) {
58 UI.getCurrent().getNavigator().navigateTo(page + PAGE_SEPARATOR + getPageId((T)event.getItemId()));
59 }
60
61
62 @Override
63 public final void select(final SelectionEvent event) {
64 final Set<T> added =(Set<T>) event.getAdded();
65
66 if (!added.isEmpty()) {
67 UI.getCurrent().getNavigator().navigateTo(page + PAGE_SEPARATOR + getPageId(added.iterator().next()));
68
69 }
70
71 }
72
73
74
75
76
77
78
79
80 protected abstract String getPageId(T t);
81
82 }