1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.client.ui.commons.wizards;
20
21 import java.io.Serializable;
22 import org.apache.commons.lang3.SerializationUtils;
23 import org.apache.wicket.PageReference;
24 import org.apache.wicket.event.IEventSink;
25
26 public abstract class AbstractModalPanelBuilder<T extends Serializable> implements ModalPanelBuilder<T> {
27
28 private static final long serialVersionUID = 5241745929825564456L;
29
30 protected final PageReference pageRef;
31
32 private final T defaultItem;
33
34 private T item;
35
36 protected IEventSink eventSink;
37
38
39
40
41
42
43
44 public AbstractModalPanelBuilder(final T defaultItem, final PageReference pageRef) {
45 this.defaultItem = defaultItem;
46 this.pageRef = pageRef;
47 }
48
49 protected void onCancelInternal(final T modelObject) {
50 }
51
52 protected Serializable onApplyInternal(final T modelObject) {
53
54 return null;
55 }
56
57 protected T getOriginalItem() {
58 return item;
59 }
60
61 @Override
62 public T getDefaultItem() {
63 return defaultItem;
64 }
65
66 protected T newModelObject() {
67 if (item == null) {
68
69 item = SerializationUtils.clone(defaultItem);
70 }
71
72
73 return SerializationUtils.clone(item);
74 }
75
76 @Override
77 public AbstractModalPanelBuilder<T> setItem(final T item) {
78 this.item = item;
79 return this;
80 }
81
82 @Override
83 public PageReference getPageReference() {
84 return pageRef;
85 }
86
87 @Override
88 public ModalPanelBuilder<T> setEventSink(final IEventSink eventSink) {
89 this.eventSink = eventSink;
90 return this;
91 }
92
93 @Override
94 public IEventSink getEventSink() {
95 return eventSink;
96 }
97 }