GroupsJsTreeItem.java
package sk.iway.iwcm.doc;
import com.fasterxml.jackson.annotation.JsonProperty;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.admin.jstree.JsTreeItem;
import sk.iway.iwcm.admin.jstree.JsTreeItemState;
import sk.iway.iwcm.admin.jstree.JsTreeItemType;
import sk.iway.iwcm.users.UserDetails;
public class GroupsJsTreeItem extends JsTreeItem {
@JsonProperty("groupDetails")
private GroupDetails group;
//private UserDetails user;
public GroupsJsTreeItem(GroupDetails group, UserDetails user, boolean showPages) {
this(group, user, showPages, true);
}
public GroupsJsTreeItem(GroupDetails group, UserDetails user, boolean showPages, boolean checkGroupsPerms) {
this.group = group;
//this.user = user;
setId("" + group.getGroupId());
setText(Tools.replace(group.getGroupName(), "/", "/"));
setVirtualPath(group.getVirtualPath());
setIcon(getIconPrivate(user, checkGroupsPerms));
setState(getStatePrivate());
setChildren(hasChildren(showPages));
setType(JsTreeItemType.GROUP);
}
private String getIconPrivate(UserDetails user, boolean checkGroupsPerms) {
String tiSufix = "-filled";
if (group.getMenuType()==GroupDetails.MENU_TYPE_HIDDEN) {
tiSufix = "";
}
if (group.isInternal()) {
addLiClass("is-internal");
}
if (Tools.isNotEmpty(group.getPasswordProtected())) {
addTextIcon("ti ti-lock-filled");
}
//If user have allgroupPerm (for example cmp_stat_seeallgroups in stat section) we are showing all groups as editable
if (checkGroupsPerms && GroupsDB.isGroupEditable(user, group.getGroupId())==false) {
return "ti ti-folder-x";
}
return "ti ti-folder"+tiSufix;
}
private JsTreeItemState getStatePrivate() {
return new JsTreeItemState();
}
private boolean hasChildren(boolean showPages) {
return GroupsDB.getInstance().hasAnyChild(group.getGroupId(), showPages);
}
public GroupDetails getGroup() {
return group;
}
public void setGroup(GroupDetails group) {
this.group = group;
}
}