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.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.enduser.SyncopeEnduserSession;
25 import org.apache.syncope.client.ui.commons.ajax.markup.html.LabelInfo;
26 import org.apache.syncope.client.ui.commons.markup.html.form.AjaxPalettePanel;
27 import org.apache.syncope.client.ui.commons.wizards.any.AnyWrapper;
28 import org.apache.syncope.client.ui.commons.wizards.any.UserWrapper;
29 import org.apache.syncope.common.lib.to.AnyTO;
30 import org.apache.wicket.markup.html.basic.Label;
31 import org.apache.wicket.markup.html.panel.Panel;
32 import org.apache.wicket.model.PropertyModel;
33 import org.apache.wicket.model.util.ListModel;
34
35 public class Resources extends Panel {
36
37 private static final long serialVersionUID = 702900610508752856L;
38
39 protected final ListModel<String> available;
40
41 public <T extends AnyTO> Resources(final String id, final AnyWrapper<T> modelObject) {
42 super(id);
43 final T entityTO = modelObject.getInnerObject();
44
45 if (modelObject instanceof UserWrapper
46 && UserWrapper.class.cast(modelObject).getPreviousUserTO() != null
47 && !modelObject.getInnerObject().getResources().equals(
48 UserWrapper.class.cast(modelObject).getPreviousUserTO().getResources())) {
49
50 add(new LabelInfo("changed", StringUtils.EMPTY));
51 } else {
52 add(new Label("changed", StringUtils.EMPTY));
53 }
54
55 this.setOutputMarkupId(true);
56 this.available = new ListModel<>(List.of());
57
58 add(new AjaxPalettePanel.Builder<String>().build("resources",
59 new PropertyModel<>(entityTO, "resources") {
60
61 private static final long serialVersionUID = 3799387950428254072L;
62
63 @Override
64 public List<String> getObject() {
65 return new ArrayList<>(entityTO.getResources());
66 }
67
68 @Override
69 public void setObject(final List<String> object) {
70 entityTO.getResources().clear();
71 entityTO.getResources().addAll(object);
72 }
73 }, available).hideLabel().setOutputMarkupId(true));
74 }
75
76 @Override
77 protected void onInitialize() {
78 super.onInitialize();
79 available.setObject(SyncopeEnduserSession.get().getAnonymousClient().platform().getResources());
80 }
81
82 public boolean evaluate() {
83 available.setObject(SyncopeEnduserSession.get().getAnonymousClient().platform().getResources());
84 return !available.getObject().isEmpty();
85 }
86 }