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.any;
20
21 import java.util.ArrayList;
22 import java.util.List;
23 import org.apache.commons.lang3.StringUtils;
24 import org.apache.syncope.client.ui.commons.ajax.markup.html.LabelInfo;
25 import org.apache.syncope.client.ui.commons.markup.html.form.AjaxPalettePanel;
26 import org.apache.syncope.common.lib.to.AnyTO;
27 import org.apache.wicket.extensions.wizard.WizardModel.ICondition;
28 import org.apache.wicket.extensions.wizard.WizardStep;
29 import org.apache.wicket.markup.html.basic.Label;
30 import org.apache.wicket.model.PropertyModel;
31 import org.apache.wicket.model.util.ListModel;
32
33 public abstract class AbstractResources extends WizardStep implements ICondition {
34
35 private static final long serialVersionUID = 552437609667518888L;
36
37 protected final ListModel<String> available;
38
39 public <T extends AnyTO> AbstractResources(final AnyWrapper<T> modelObject) {
40 final T entityTO = modelObject.getInnerObject();
41
42 if (modelObject instanceof UserWrapper
43 && UserWrapper.class.cast(modelObject).getPreviousUserTO() != null
44 && !modelObject.getInnerObject().getResources().equals(
45 UserWrapper.class.cast(modelObject).getPreviousUserTO().getResources())) {
46
47 add(new LabelInfo("changed", StringUtils.EMPTY));
48 } else {
49 add(new Label("changed", StringUtils.EMPTY));
50 }
51
52 this.setOutputMarkupId(true);
53 this.available = new ListModel<>(List.of());
54
55 add(new AjaxPalettePanel.Builder<String>().build("resources",
56 new PropertyModel<>(entityTO, "resources") {
57
58 private static final long serialVersionUID = 3799387950428254072L;
59
60 @Override
61 public List<String> getObject() {
62 return new ArrayList<>(entityTO.getResources());
63 }
64
65 @Override
66 public void setObject(final List<String> object) {
67 entityTO.getResources().clear();
68 entityTO.getResources().addAll(object);
69 }
70 }, available).hideLabel().setOutputMarkupId(true));
71 }
72 }