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.wizards;
20
21 import java.io.Serializable;
22 import org.apache.syncope.client.console.panels.BeanPanel;
23 import org.apache.syncope.client.console.rest.CommandRestClient;
24 import org.apache.syncope.common.lib.command.CommandTO;
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.LoadableDetachableModel;
29
30 public class CommandWizardBuilder extends BaseAjaxWizardBuilder<CommandTO> {
31
32 private static final long serialVersionUID = 5288806466136582164L;
33
34 protected final CommandRestClient commandRestClient;
35
36 public CommandWizardBuilder(
37 final CommandTO defaultItem,
38 final CommandRestClient commandRestClient,
39 final PageReference pageRef) {
40
41 super(defaultItem, pageRef);
42 this.commandRestClient = commandRestClient;
43 }
44
45 @Override
46 protected Serializable onApplyInternal(final CommandTO modelObject) {
47 return commandRestClient.run(modelObject).getOutput();
48 }
49
50 @Override
51 protected WizardModel buildModelSteps(final CommandTO modelObject, final WizardModel wizardModel) {
52 wizardModel.add(new CommandArgs(modelObject));
53 return wizardModel;
54 }
55
56 public class CommandArgs extends WizardStep {
57
58 private static final long serialVersionUID = -785981096328637758L;
59
60 public CommandArgs(final CommandTO command) {
61 LoadableDetachableModel<Serializable> bean = new LoadableDetachableModel<>() {
62
63 private static final long serialVersionUID = -1096114645494621802L;
64
65 @Override
66 protected Serializable load() {
67 return command.getArgs();
68 }
69 };
70 add(new BeanPanel<>("bean", bean, pageRef).setRenderBodyOnly(true));
71 }
72 }
73 }