1 package com.dotmarketing.portlets.structure.ajax; 2 3 import java.util.ArrayList ; 4 import java.util.Iterator ; 5 import java.util.List ; 6 import java.util.Map ; 7 8 import com.dotmarketing.factories.InodeFactory; 9 import com.dotmarketing.portlets.categories.model.Category; 10 import com.dotmarketing.portlets.entities.factories.EntityFactory; 11 import com.dotmarketing.portlets.entities.model.Entity; 12 import com.dotmarketing.portlets.structure.factories.FieldFactory; 13 import com.dotmarketing.portlets.structure.factories.StructureFactory; 14 import com.dotmarketing.portlets.structure.model.Field; 15 import com.dotmarketing.portlets.structure.model.Structure; 16 import com.dotmarketing.util.Logger; 17 import com.dotmarketing.util.WebKeys; 18 19 22 public class StructureUtils { 23 24 public String getStructureFields (long structureInode) { 25 Structure st = StructureFactory.getStructureByInode(structureInode); 26 List fields = st.getFields(); 27 Iterator it = fields.iterator(); 28 StringBuffer names = new StringBuffer (); 29 names.append("[ "); 30 for (int i = 0; i < fields.size(); i++) { 31 Field field = (Field)it.next(); 32 names.append("{ fieldinode:\"" + field.getInode() + "\", fieldname:\"" + field.getFieldName() + "\", fielddbname:\"" + field.getFieldContentlet() + "\", velocityname:\"" + field.getVelocityVarName() + "\" }"); 33 if (i < fields.size() - 1) 34 names.append(", "); 35 } 36 names.append(" ]"); 37 return names.toString(); 38 } 39 40 public List <Map > getSearchableStructureFields (long structureInode) { 41 Structure st = StructureFactory.getStructureByInode(structureInode); 42 List <Field> fields = st.getFields(); 43 ArrayList <Map > searchableFields = new ArrayList <Map > (); 44 for (Field field : fields) { 45 if (field.isIndexed()) { 46 try { 47 Map fieldMap = field.getMap(); 48 searchableFields.add(fieldMap); 49 } catch (Exception e) { 50 Logger.error(this, "Error getting the map of properties of a field: " + field.getInode()); 51 } 52 } 53 } 54 return searchableFields; 55 } 56 57 public List <Map > getKeyStructureFields (long structureInode) { 58 Structure st = StructureFactory.getStructureByInode(structureInode); 59 List <Field> fields = st.getFields(); 60 ArrayList <Map > searchableFields = new ArrayList <Map > (); 61 for (Field field : fields) { 62 if (!field.getFieldType().equals(com.dotmarketing.util.WebKeys.TypeField.BUTTON) && 63 !field.getFieldType().equals(com.dotmarketing.util.WebKeys.TypeField.FILE) && 64 !field.getFieldType().equals(com.dotmarketing.util.WebKeys.TypeField.IMAGE)) { 65 try { 66 Map fieldMap = field.getMap(); 67 searchableFields.add(fieldMap); 68 } catch (Exception e) { 69 Logger.error(this, "Error getting the map of properties of a field: " + field.getInode()); 70 } 71 } 72 } 73 return searchableFields; 74 } 75 76 public List <Map > getStructureCategories (String structureInode) { 77 Structure st = (Structure) InodeFactory.getInode(structureInode, Structure.class); 78 Entity entity = EntityFactory.getEntity(st.getName()); 79 List <Category> cats = EntityFactory.getEntityCategories(entity); 80 List <Map > catsMaps = new ArrayList <Map >(); 81 for (Category cat : cats) { 82 Map catMap = cat.getMap(); 83 catsMaps.add(catMap); 84 } 85 return catsMaps; 86 } 87 88 public String getDropDownList (long fieldInode) { 89 StringBuffer ddHtml = new StringBuffer (); 90 Field f = FieldFactory.getFieldByInode(fieldInode); 91 if (f.getFieldType().equals(WebKeys.TypeField.MULTISELECT)) 92 ddHtml.append("<select multiple size=\"4\" id=\"" + f.getVelocityVarName() + "\" name=\"" + f.getVelocityVarName() + "\">\n"); 93 else 94 ddHtml.append("<select id=\"" + f.getVelocityVarName() + "\" name=\"" + f.getVelocityVarName() + "\">\n"); 95 String valuesSt = f.getValues(); 96 String [] values = valuesSt.split("[(\\r\\n)\\n\\s]"); 97 for (String value : values) { 98 if (value.trim().equals("")) continue; 99 String [] temp = value.split("\\|"); 100 String val = "", label = ""; 101 if (temp.length > 0) 102 label = temp[0]; 103 if (temp.length > 1) 104 val = temp[1]; 105 else 106 val = temp[1]; 107 108 ddHtml.append(" <option value=\"" + val + "\" #if($UtilMethods.hasValue($!{" + f.getVelocityVarName() + "}, '" + val +"')) selected #end>"+label+"</option>\n"); 109 110 } 111 ddHtml.append("</select>\n"); 112 return ddHtml.toString(); 113 } 114 115 public String getDropDownOptions (long fieldInode) { 116 StringBuffer ddHtml = new StringBuffer (); 117 Field f = FieldFactory.getFieldByInode(fieldInode); 118 String valuesSt = f.getValues(); 119 String [] values = valuesSt.split("[(\\r\\n)\\n\\s]"); 120 for (String value : values) { 121 if (value.trim().equals("")) continue; 122 String [] temp = value.split("\\|"); 123 String val = "", label = ""; 124 if (temp.length > 0) 125 label = temp[0]; 126 if (temp.length > 1) 127 val = temp[1]; 128 else 129 val = temp[1]; 130 131 ddHtml.append("<option value=\"" + val + "\">"+label+"</option>\n"); 132 133 } 134 return ddHtml.toString(); 135 } 136 137 public String getRadioButtons (long fieldInode) { 138 StringBuffer ddHtml = new StringBuffer (); 139 Field f = FieldFactory.getFieldByInode(fieldInode); 140 String valuesSt = f.getValues(); 141 String [] values = valuesSt.split("[(\\r\\n)\\n\\s]"); 142 for (String value : values) { 143 if (value.trim().equals("")) continue; 144 String [] temp = value.split("\\|"); 145 String val = "", label = ""; 146 if (temp.length > 0) 147 label = temp[0]; 148 if (temp.length > 1) 149 val = temp[1]; 150 else 151 val = temp[1]; 152 153 ddHtml.append("<input type=\"radio\" value=\"" + val + "\" id=\"" + f.getVelocityVarName() + "\" name=\"" + f.getVelocityVarName() + "\" #if($!{" + f.getVelocityVarName() + "} == '" + val +"') checked #end> " + label + "<br>\n"); 154 155 } 156 return ddHtml.toString(); 157 } 158 159 public String getCheckboxes (long fieldInode) { 160 StringBuffer ddHtml = new StringBuffer (); 161 Field f = FieldFactory.getFieldByInode(fieldInode); 162 String valuesSt = f.getValues(); 163 String [] values = valuesSt.split("[(\\r\\n)\\n\\s]"); 164 for (String value : values) { 165 if (value.trim().equals("")) continue; 166 String [] temp = value.split("\\|"); 167 String val = "", label = ""; 168 if (temp.length > 0) 169 label = temp[0]; 170 if (temp.length > 1) 171 val = temp[1]; 172 else 173 val = temp[1]; 174 175 ddHtml.append("<input type=\"checkbox\" value=\"" + val + "\" id=\"" + f.getVelocityVarName() + "\" name=\"" + f.getVelocityVarName() + "\" #if($UtilMethods.hasValue($!{" + f.getVelocityVarName() + "}, '" + val +"')) checked #end> " + label + "<br>\n"); 176 177 } 178 return ddHtml.toString(); 179 } 180 181 182 } 183 | Popular Tags |