1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.client.enduser.panels;
20
21 import java.io.Serializable;
22 import org.apache.commons.lang3.SerializationUtils;
23 import org.apache.wicket.PageReference;
24 import org.apache.wicket.markup.html.panel.Panel;
25 import org.slf4j.Logger;
26 import org.slf4j.LoggerFactory;
27
28 public abstract class AbstractFormPanel<T extends Serializable> extends Panel {
29
30 private static final long serialVersionUID = 6650311507433421554L;
31
32 protected static final Logger LOG = LoggerFactory.getLogger(AbstractFormPanel.class);
33
34 protected final PageReference pageRef;
35
36 protected final T defaultItem;
37
38 protected T item;
39
40 public AbstractFormPanel(final String id, final T defaultItem, final PageReference pageReference) {
41 super(id);
42 this.defaultItem = defaultItem;
43 this.pageRef = pageReference;
44 }
45
46 protected T getOriginalItem() {
47 return item;
48 }
49
50 protected T newModelObject() {
51 if (item == null) {
52
53 item = SerializationUtils.clone(defaultItem);
54 }
55
56
57 return SerializationUtils.clone(item);
58 }
59
60 public PageReference getPageReference() {
61 return pageRef;
62 }
63 }