1 16 package com.blandware.atleap.webapp.taglib.core.util; 17 18 import com.blandware.atleap.common.util.StringUtil; 19 20 import java.io.Serializable ; 21 import java.util.ArrayList ; 22 import java.util.List ; 23 24 31 public class ContextMenuItem implements Serializable { 32 33 36 protected String id = null; 37 38 41 protected String content; 42 43 46 protected Boolean hidden = Boolean.FALSE; 47 48 51 protected ContextMenuItem parentItem = null; 52 53 56 protected List childItems = new ArrayList (); 57 58 61 public ContextMenuItem() { 62 hidden = Boolean.FALSE; 63 } 64 65 70 public ContextMenuItem(String content) { 71 this.content = content; 72 } 73 74 79 public String getContent() { 80 return content; 81 } 82 83 88 public void setContent(String content) { 89 this.content = content; 90 } 91 92 97 public Boolean getHidden() { 98 return hidden; 99 } 100 101 106 public void setHidden(Boolean hidden) { 107 this.hidden = hidden; 108 } 109 110 115 public ContextMenuItem getParentItem() { 116 return parentItem; 117 } 118 119 124 public void setParentItem(ContextMenuItem parentItem) { 125 this.parentItem = parentItem; 126 } 127 128 133 public List getChildItems() { 134 return childItems; 135 } 136 137 public void setChildItems(List childItems) { 138 for ( int i = 0; i < childItems.size(); i++ ) { 139 ContextMenuItem item = (ContextMenuItem) childItems.get(i); 140 addChildItem(item); 141 } 142 } 143 144 149 public void addChildItem(ContextMenuItem childItem) { 150 if ( childItem != null ) { 151 if ( childItem.getParentItem() != null ) { 152 childItem.getParentItem().removeChildItem(childItem); 153 } 154 childItem.setParentItem(this); 155 } 156 childItems.add(childItem); 157 } 158 159 164 public void removeChildItem(ContextMenuItem childItem) { 165 childItem.setParentItem(null); 166 childItems.remove(childItem); 167 } 168 169 176 public String getId() { 177 if ( id == null && parentItem != null ) { 178 String parentId = parentItem.getId(); 179 if ( parentId != null ) { 180 int pos = parentItem.getChildItems().indexOf(this); 181 id = parentId + "__" + pos; 182 } 183 } 184 return id; 185 } 186 187 192 public void setId(String id) { 193 this.id = id; 194 } 195 196 201 public String getJavascriptCode() { 202 StringBuffer code = new StringBuffer ("new ContextMenuItem("); 203 code.append("\"").append(getId()).append("\", "); 204 code.append("\"").append(StringUtil.escape(content)).append("\", "); 205 code.append(hidden.toString()); 206 207 for ( int i = 0; i < childItems.size(); i++ ) { 209 ContextMenuItem item = (ContextMenuItem) childItems.get(i); 210 code.append(", "); 211 if ( item != null ) { 212 code.append(item.getJavascriptCode()); 213 } else { 214 code.append(item); 215 } 216 } 217 code.append(")"); 218 return code.toString(); 219 } 220 221 228 public List getAsPlainList() { 229 List result = new ArrayList (); 230 result.add(this); 231 232 for (int i = 0; i < childItems.size(); i++) { 233 ContextMenuItem child = (ContextMenuItem) childItems.get(i); 234 result.addAll(child.getAsPlainList()); 235 } 236 237 return result; 238 } 239 } 240 | Popular Tags |