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.commons;
20
21 import java.util.UUID;
22 import org.apache.wicket.Component;
23 import org.apache.wicket.authroles.authorization.strategies.role.Roles;
24 import org.apache.wicket.authroles.authorization.strategies.role.metadata.ActionPermissions;
25 import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
26 import org.apache.wicket.extensions.markup.html.tabs.ITab;
27 import org.apache.wicket.markup.html.WebMarkupContainer;
28 import org.apache.wicket.model.IModel;
29
30
31
32
33 public abstract class ITabComponent extends Component implements ITab {
34
35 private static final long serialVersionUID = -6908617525434875508L;
36
37 private final IModel<String> title;
38
39
40
41
42
43
44
45 public ITabComponent(final IModel<String> title, final String... roles) {
46 super(UUID.randomUUID().toString());
47 this.title = title;
48
49 final ActionPermissions permissions = new ActionPermissions();
50 setMetaData(MetaDataRoleAuthorizationStrategy.ACTION_PERMISSIONS, permissions);
51 if (roles == null || roles.length == 0) {
52 permissions.authorizeAll(RENDER);
53 } else {
54 permissions.authorize(RENDER, new Roles(roles));
55 }
56 }
57
58 @Override
59 public IModel<String> getTitle() {
60 return title;
61 }
62
63 @Override
64 public boolean isVisible() {
65 return true;
66 }
67
68 @Override
69 protected void onRender() {
70 internalRenderComponent();
71 }
72
73 @Override
74 public abstract WebMarkupContainer getPanel(String panelId);
75 }