1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.client.console.authprofiles;
20
21 import org.apache.commons.lang3.SerializationUtils;
22 import org.apache.syncope.client.console.panels.BeanPanel;
23 import org.apache.syncope.client.console.wizards.BaseAjaxWizardBuilder;
24 import org.apache.syncope.common.lib.BaseBean;
25 import org.apache.wicket.PageReference;
26 import org.apache.wicket.extensions.wizard.WizardModel;
27 import org.apache.wicket.extensions.wizard.WizardStep;
28 import org.apache.wicket.model.Model;
29
30 public abstract class AuthProfileWizardBuilder<T extends BaseBean> extends BaseAjaxWizardBuilder<T> {
31
32 private static final long serialVersionUID = 1L;
33
34 protected final StepModel<T> model;
35
36 public AuthProfileWizardBuilder(final T defaultItem, final StepModel<T> model, final PageReference pageRef) {
37 super(defaultItem, pageRef);
38 this.model = model;
39 }
40
41 @Override
42 protected WizardModel buildModelSteps(final T modelObject, final WizardModel wizardModel) {
43 wizardModel.add(new Step(modelObject));
44 return wizardModel;
45 }
46
47 protected static class StepModel<T extends BaseBean> extends Model<T> {
48
49 private static final long serialVersionUID = 1L;
50
51 private T initialModelObject;
52
53 public void setInitialModelObject(final T initialModelObject) {
54 this.initialModelObject = SerializationUtils.clone(initialModelObject);
55 }
56
57 public T getInitialModelObject() {
58 return initialModelObject;
59 }
60 }
61
62 protected class Step extends WizardStep {
63
64 private static final long serialVersionUID = -785981096328637758L;
65
66 Step(final T modelObject) {
67 model.setObject(modelObject);
68 model.setInitialModelObject(modelObject);
69 add(new BeanPanel<>("bean", model, pageRef).setRenderBodyOnly(true));
70 }
71 }
72 }