1 package com.dotmarketing.viewtools; 2 3 import java.util.ArrayList ; 4 import java.util.Iterator ; 5 import java.util.List ; 6 7 import com.dotmarketing.beans.Inode; 8 import com.dotmarketing.factories.InodeFactory; 9 import com.dotmarketing.portlets.categories.factories.CategoryFactory; 10 import com.dotmarketing.portlets.categories.model.Category; 11 import com.dotmarketing.portlets.entities.factories.EntityFactory; 12 import com.dotmarketing.portlets.entities.model.Entity; 13 import com.dotmarketing.util.UtilHTML; 14 15 public class CategoriesWebAPI { 16 17 public void init(Object obj) { 18 19 } 20 21 public String getCategoriesByEntityName(String parameterName, String entityName, boolean displayTitle, 22 boolean multipleValues, int size) { 23 long childInode = 0; 24 boolean readonly = false; 25 return getCategoriesByEntityName(parameterName, entityName, childInode, displayTitle, multipleValues, size, 26 readonly); 27 } 28 29 public List <Category> getCategoriesListByEntityName(String entityName) { 30 Entity e = EntityFactory.getEntity(entityName); 31 return EntityFactory.getEntityCategories(e); 32 } 33 34 35 public List getChildrenCategoriesByKey(String key) { 36 if (key == null) { 37 return new ArrayList (); 38 } 39 Category cat = CategoryFactory.getCategoryByKey(key); 40 if (cat.getInode() == 0) { 41 return new ArrayList (); 42 } 43 return CategoryFactory.getChildrenCategories(cat); 44 45 } 46 47 public Category getCategoryByKey(String key) { 48 49 return CategoryFactory.getCategoryByKey(key); 50 51 52 } 53 public List getChildrenCategories(Category cat) { 54 return CategoryFactory.getChildrenCategories(cat); 55 } 56 57 public List <Category> getChildrenCategories(Inode inode) { 58 return InodeFactory.getChildrenClass(inode, Category.class); 59 } 60 61 public List <Category> getChildrenCategories(String inode) { 62 Inode inodeObj =new Inode(); 63 inodeObj.setInode(inode); 64 return InodeFactory.getChildrenClass(inodeObj, Category.class); 65 } 66 67 public List <Category> getInodeCategories(String inode) { 68 Inode inodeObj =new Inode(); 69 inodeObj.setInode(inode); 70 return InodeFactory.getParentsOfClass(inodeObj, Category.class); 71 } 72 73 public List <Category> getInodeCategories(Inode inodeObj) { 74 return InodeFactory.getParentsOfClass(inodeObj, Category.class); 75 } 76 77 95 @SuppressWarnings ("unchecked") 96 public String getCategoriesByEntityName(String parameterName, String entityName, long childInode, 97 boolean displayTitle, boolean multipleValues, int size, boolean readonly) { 98 String [] selectCatsString = new String [0]; 99 if (childInode != 0) { 101 Inode inode = InodeFactory.getInode(childInode, Inode.class); 102 List <Category> categories = InodeFactory.getParentsOfClass(inode, Category.class); 103 selectCatsString = new String [categories.size()]; 104 for (int i = 0; i < categories.size(); i++) { 105 selectCatsString[i] = Long.toString(categories.get(i).getInode()); 106 } 107 } 108 109 return getCategoriesByEntityName(parameterName, entityName, selectCatsString, displayTitle, multipleValues, 110 size, readonly); 111 } 112 113 131 public String getCategoriesByEntityName(String parameterName, String entityName, long[] selectedCategories, 132 boolean displayTitle, boolean multipleValues, int size, boolean readonly) { 133 String [] selectCatsString = new String [selectedCategories.length]; 134 for (int i = 0; i < selectedCategories.length; i++) { 136 selectCatsString[i] = Long.toString(selectedCategories[i]); 137 } 138 return getCategoriesByEntityName(parameterName, entityName, selectCatsString, displayTitle, multipleValues, 139 size, readonly); 140 } 141 142 161 public String getCategoriesByEntityName(String parameterName, String entityName, String [] selectCatsString, 162 boolean displayTitle, boolean multipleValues, int size, boolean readonly) { 163 StringBuffer buffer = new StringBuffer (); 164 Entity entity = EntityFactory.getEntity(entityName); 166 List categories = EntityFactory.getEntityCategories(entity); 168 if (categories.size() > 0) { 169 buffer.append("<table>"); 170 buffer.append("<tr>"); 171 buffer.append("<td align='left' colspan='2'>"); 172 buffer.append("<table border='0'>"); 173 Iterator categoriesIterator = categories.iterator(); 174 while (categoriesIterator.hasNext()) { 176 Category category = (Category) categoriesIterator.next(); 177 int count = InodeFactory.countChildrenOfClass(category, Category.class); 178 if (count > 1) { 179 buffer.append("<tr>"); 180 if (displayTitle) { 181 buffer.append("<td valign='top'>"); 182 buffer.append("<B>" + category.getCategoryName() + ":</B>"); 183 buffer.append("</td>"); 184 } 185 buffer.append("<td align='left'>"); 186 String multiple = (multipleValues ? "multiple='multiple'" : ""); 187 int sizeAux = (size == -1 ? count - 1 : size); 188 String disabled = (readonly ? "disabled" : ""); 189 buffer.append("<select name='" + parameterName + "' size='" + sizeAux + "' " + multiple + " " 190 + disabled + ">"); 191 buffer.append(UtilHTML.getSelectCategories(category, -1, selectCatsString)); 192 buffer.append("</select>"); 193 buffer.append("</td>"); 194 buffer.append("</tr>"); 195 } 196 } 197 buffer.append("</table>"); 198 buffer.append("</td>"); 199 buffer.append("</tr>"); 200 buffer.append("</table>"); 201 } 202 return buffer.toString(); 203 } 204 205 public String getCategoriesByEntityNameTextMode(String parameterName, String entityName, long[] selectedCats, 206 boolean displayTitle, boolean multipleValues, int size, boolean readonly) { 207 String [] selectCatsString = new String [selectedCats.length]; 208 for (int i = 0; i < selectedCats.length; i++) { 210 selectCatsString[i] = Long.toString(selectedCats[i]); 211 } 212 return getCategoriesByEntityNameTextMode(parameterName, entityName, selectCatsString, displayTitle, 213 multipleValues, size, readonly); 214 } 215 216 @SuppressWarnings ("unchecked") 217 public String getCategoriesByEntityNameTextMode(String parameterName, String entityName, long childInode, 218 boolean displayTitle, boolean multipleValues, int size, boolean readonly) { 219 String [] selectCatsString = new String [0]; 220 if (childInode != 0) { 222 Inode inode = InodeFactory.getInode(childInode, Inode.class); 223 List <Category> categories = InodeFactory.getParentsOfClass(inode, Category.class); 224 selectCatsString = new String [categories.size()]; 225 for (int i = 0; i < categories.size(); i++) { 226 selectCatsString[i] = Long.toString(categories.get(i).getInode()); 227 } 228 } 229 230 return getCategoriesByEntityNameTextMode(parameterName, entityName, selectCatsString, displayTitle, 231 multipleValues, size, readonly); 232 } 233 234 public String getCategoriesByEntityNameTextMode(String parameterName, String entityName, String [] selectCatsString, 235 boolean displayTitle, boolean multipleValues, int size, boolean readonly) { 236 StringBuffer buffer = new StringBuffer (); 237 Entity entity = EntityFactory.getEntity(entityName); 239 List categories = EntityFactory.getEntityCategories(entity); 241 if (categories.size() > 0) { 242 buffer.append("<table cellpadding=\"0\" cellspacing=\"0\">"); 243 buffer.append("<tr>"); 244 buffer.append("<td align='left' colspan='2'>"); 245 buffer.append("<table cellpadding=\"0\" cellspacing=\"0\">"); 246 Iterator categoriesIterator = categories.iterator(); 247 while (categoriesIterator.hasNext()) { 249 Category category = (Category) categoriesIterator.next(); 250 int count = InodeFactory.countChildrenOfClass(category, Category.class); 251 if (count > 1) { 252 buffer.append("<tr>"); 253 if (displayTitle) { 254 buffer.append("<td valign='top' nowrap>"); 255 buffer.append("<B>" + category.getCategoryName() + ":</B> "); 256 buffer.append("</td>"); 257 } 258 buffer.append("<td align='left'>"); 259 buffer.append("<table cellpadding=\"0\" cellspacing=\"0\">"); 265 buffer.append(UtilHTML.getSelectCategoriesTextMode(category, 1, selectCatsString)); 266 buffer.append("</table>"); 267 buffer.append("</td>"); 268 buffer.append("</tr>"); 269 } 270 } 271 buffer.append("</table>"); 272 buffer.append("</td>"); 273 buffer.append("</tr>"); 274 buffer.append("</table>"); 275 } 276 return buffer.toString(); 277 } 278 279 297 public String getSimpleComboByEntityName(String parameterName, String entityName, long selectedCategory) { 298 String [] selectCatsString = new String [1]; 299 selectCatsString[0] = Long.toString(selectedCategory); 300 return getCategoriesByEntityName(parameterName, entityName, selectCatsString, false, false, 1, false); 301 } 302 303 public String getSimpleCategoriesByEntityName(String parameterName, String entityName, long selectedCategory) { 304 String [] selectCatsString = new String [1]; 305 selectCatsString[0] = Long.toString(selectedCategory); 306 return getCategoriesByEntityNameTextMode(parameterName, entityName, selectCatsString, false, false, 1, false); 307 } 308 309 public Category getCategoryByInode(String inode) { 310 return (Category) CategoryFactory.getCategory(inode); 311 } 312 313 public Category getCategoryByInode(long inode) { 314 return (Category) CategoryFactory.getCategory(inode); 315 } 316 317 } 318 | Popular Tags |