JsTreeItem.java
package sk.iway.iwcm.admin.jstree;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import sk.iway.iwcm.Tools;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.struts.util.ResponseUtils;
@Getter
@Setter
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class JsTreeItem {
private String id; // will be autogenerated if omitted
private String text; // node text
private String icon; // string for custom
private JsTreeItemState state;
private Boolean children;
@JsonProperty("li_attr")
private Map<String, String> liAttr; // attributes for the generated LI node
@JsonProperty("a_attr")
private Map<String, String> aAttr;
private String virtualPath;
private JsTreeItem original;
private String parent;
private JsTreeItemType type;
private String typeCustom;
@JsonIgnore
private List<String> textIcons;
private void initLiAttr() {
if (liAttr==null) liAttr = new HashMap<>();
}
private void initAAttr() {
if (aAttr==null) aAttr = new HashMap<>();
}
/**
* Prida CSS triedu na LI element
* @param className
*/
public void addLiClass(String className) {
initLiAttr();
String currentClass = liAttr.get("class");
if (Tools.isEmpty(currentClass)) currentClass = className;
else currentClass += " "+className;
liAttr.put("class", currentClass);
}
/**
* Prida CSS triedu na LI element
* @param className
*/
public void addAClass(String className) {
initAAttr();
String currentClass = aAttr.get("class");
if (Tools.isEmpty(currentClass)) currentClass = className;
else currentClass += " "+className;
aAttr.put("class", currentClass);
}
/**
* Prida novu ikonu k textu (vytvorenu ako span element)
* @param className - ti ti-eye-off -> <span class="ti ti-eye-off"></span>
*/
public void addTextIcon(String className) {
if (textIcons == null) textIcons = new ArrayList<>();
textIcons.add(className);
}
private String getTextIconHtmlCode() {
if (textIcons == null || textIcons.size()==0) return "";
StringBuilder html = new StringBuilder();
for (String className : textIcons) {
html.append("<span class=\"jstree-text-icon ").append(className).append("\"></span> ");
}
return html.toString();
}
public String getText() {
return getTextIconHtmlCode() + ResponseUtils.filter(text);
}
}