1 10 package org.mmbase.module.gui.html; 11 12 import java.util.*; 13 import org.mmbase.util.logging.*; 14 import org.mmbase.module.core.*; 15 16 24 public class EditState { 25 26 29 private static Logger log = Logging.getLoggerInstance(EditState.class.getName()); 30 31 private String user; 32 33 Vector nodes=new Vector(); 34 EditStateNode curNode; 35 MMBase mmBase; 36 37 public EditState(String user,MMBase mmBase) { 38 if( mmBase != null ) { 39 this.mmBase=mmBase; 40 } else { 41 log.error("EditState("+mmBase+"): MMBase is not valid!"); 42 } 43 if (user!=null) { 44 this.user=user; 45 } else { 46 log.error("EditState("+user+"): User is not valid"); 47 } 48 } 49 50 public boolean pushState() { 51 curNode=new EditStateNode(mmBase); 52 nodes.addElement(curNode); 53 return true; 54 } 55 56 public boolean clear() { 57 nodes=new Vector(); 58 return true; 59 } 60 61 public boolean popState() { 62 nodes.removeElement(curNode); 63 curNode=(EditStateNode)nodes.lastElement(); 64 return true; 65 } 66 67 public Vector getEditStates() { 68 return nodes; 69 } 70 71 public boolean setSearchValue(String fieldname,Object value) { 72 boolean result = false; 73 74 if( fieldname != null ) 75 if( !fieldname.equals("") ) 76 result = curNode.setSearchValue(fieldname,value); 77 else 78 log.error("setSearchValue("+fieldname+","+value+"): fieldname is empty!"); 79 else 80 log.error("setSearchValue("+fieldname+","+value+"): fieldname is null!"); 81 82 return result; 83 } 84 85 public String getSearchValue(String name) { 86 String result = null; 87 88 if(name!=null) 89 if( !name.equals("") ) 90 result = curNode.getSearchValue(name); 91 else 92 log.error("getSeachValue("+name+"): name is empty!"); 93 else 94 log.error("getSeachValue("+name+"): name is null!"); 95 96 return result; 97 } 98 99 public Hashtable getSearchValues() { 100 return curNode.getSearchValues(); 101 } 102 103 public void clearSearchValues() { 104 curNode.clearSearchValues(); 105 } 106 107 public boolean setHtmlValue(String fieldname,Object value) { 108 boolean result = false; 109 110 if( fieldname != null ) 111 if( !fieldname.equals("") ) 112 result = curNode.setHtmlValue(fieldname,value); 113 else 114 log.error("setHtmlValue("+fieldname+","+value+"): fieldname is !"); 115 else 116 log.error("setHtmlValue("+fieldname+","+value+"): fieldname is null!"); 117 118 return result; 119 } 120 121 public String getHtmlValue(String name) { 122 String result = null; 123 124 if( name != null ) 125 if( !name.equals("") ) 126 result = curNode.getHtmlValue(name); 127 else 128 log.error("getHtmlValue("+name+"): name is empty!"); 129 else 130 log.error("getHtmlValue("+name+"): name is null!"); 131 132 return result; 133 } 134 135 public Hashtable getHtmlValues() { 136 return curNode.getHtmlValues(); 137 } 138 139 public void clearHtmlValues() { 140 curNode.clearHtmlValues(); 141 } 142 143 public void setEditNode(String number,String userName) { 144 if( number != null ) 145 if(!number.equals("")) 146 if(userName!=null) 147 if(!userName.equals("")) { 148 delInsSaveList(); 149 curNode.setEditNode(number,userName); 150 } else 151 log.error("setEditNode("+number+","+userName+"): username is empty!"); 152 else 153 log.error("setEditNode("+number+","+userName+"): username is null!"); 154 else 155 log.error("setEditNode("+number+","+userName+"): number is empty!"); 156 else 157 log.error("setEditNode("+number+","+userName+"): number is null!"); 158 } 159 160 public MMObjectNode getEditNode() { 161 if (curNode == null) return null; 162 return curNode.getEditNode(); 163 } 164 165 public MMObjectNode getEditNode(int i) { 166 int pos=nodes.indexOf(curNode); 167 if ((pos-i)<0) return null; 168 EditStateNode node=(EditStateNode)nodes.elementAt(pos-i); 169 if (node==null) { 170 return null; 171 } else { 172 return node.getEditNode(); 173 } 174 } 175 176 public EditStateNode getEditStateNode(int i) { 177 int pos=nodes.indexOf(curNode); 178 if ((pos-i)<0) return null; 179 EditStateNode node=(EditStateNode)nodes.elementAt(pos-i); 180 if (node==null) { 181 return null; 182 } else { 183 return node; 184 } 185 } 186 187 public void NewNode(String owner) { 188 curNode.getNewNode(owner); 189 delInsSaveList(); 190 } 191 192 public void removeNode() { 193 curNode.removeNode(); 194 } 195 196 public void removeRelations() { 197 curNode.removeRelations(); 198 } 199 200 public void removeEd() { 201 curNode.removeNode(); 202 } 203 204 public int getEditNodeNumber() { 205 return curNode.getEditNodeNumber(); 206 } 207 208 public int getEditNodeSrcNumber() { 209 MMObjectNode snode=getEditSrcNode(); 210 if (snode!=null) { 211 return snode.getIntValue("number"); 212 } 213 return -1; 214 } 215 216 public int getEditNodeDstNumber() { 217 MMObjectNode snode=getEditDstNode(); 218 if (snode!=null) { 219 return snode.getIntValue("number"); 220 } 221 return -1; 222 } 223 224 public String getEditNodeSrcDutchName() { 225 MMObjectNode snode=getEditSrcNode(); 226 if (snode!=null) { 227 String dname=snode.getBuilder().getSingularName(); 228 if (dname!=null) return dname; 229 } 230 return ""; 231 } 232 233 public String getEditNodeDstGuiIndicator() { 234 MMObjectNode dnode=getEditDstNode(); 235 if (dnode!=null) { 236 String dgui=dnode.getGUIIndicator(); 237 if (dgui!=null) return dgui; 238 } 239 return ""; 240 } 241 242 public String getEditNodeSrcGuiIndicator() { 243 MMObjectNode snode=getEditSrcNode(); 244 if (snode!=null) { 245 String sgui=snode.getGUIIndicator(); 246 if (sgui!=null) return sgui; 247 } 248 return ""; 249 } 250 251 public String getEditNodeDstDutchName() { 252 MMObjectNode snode=getEditDstNode(); 253 if (snode!=null) { 254 String dname=snode.getBuilder().getSingularName(); 255 if (dname!=null) return dname; 256 } 257 return ""; 258 } 259 260 public String getEditNodeSrcName() { 261 MMObjectNode snode=getEditSrcNode(); 262 if (snode!=null) { 263 String dname=snode.getName(); 264 if (dname!=null) return dname; 265 } 266 return ""; 267 } 268 269 public String getEditNodeDstName() { 270 MMObjectNode snode=getEditDstNode(); 271 if (snode!=null) { 272 String dname=snode.getName(); 273 if (dname!=null) return dname; 274 } 275 return ""; 276 } 277 278 public MMObjectNode getEditSrcNode() { 279 return curNode.getEditSrcNode(); 280 } 281 282 public MMObjectNode getEditDstNode() { 283 return curNode.getEditDstNode(); 284 } 285 286 public void setBuilder(String name) { 287 if( name != null ) { 288 if( !name.equals("") ) { 289 pushState(); 290 curNode.setBuilder(name); 291 } else log.error("setBuilder("+name+"): name is empty!"); 292 } else log.error("setBuilder("+name+"): name is null!"); 293 } 294 295 public String getBuilderName() { 296 String result= null; 297 if( curNode != null ) 298 result = curNode.getBuilderName(); 299 else 300 log.error("getBuilderName(): curNode("+curNode+") is null!"); 301 302 return result; 303 } 304 305 public MMObjectBuilder getBuilder() { 306 return curNode.getBuilder(); 307 } 308 309 public void setSelectionQuery(String query) { 310 curNode.setSelectionQuery(query); 311 } 312 313 public String getSelectionQuery() { 314 return curNode.getSelectionQuery(); 315 } 316 317 public boolean isChanged() { 318 return curNode.isChanged(); 319 } 320 321 327 public boolean addRelation(String owner) { 328 boolean result=false; 329 int pos=nodes.indexOf(curNode); 332 int SRC=curNode.getEditNodeNumber(); 333 EditStateNode node2=(EditStateNode)nodes.elementAt(pos-1); 334 if (node2!=null) { 335 log.debug("addRelation("+owner+"): Create relation from "+node2.getEditNodeNumber()+" to "+src+" reltype 2"); 336 mmBase.getInsRel().insert(owner,node2.getEditNodeNumber(),src,14); 337 result=true; 338 } else { 339 log.error("addRelation("+owner+"): src("+src+"), pos("+pos+"), cannot create relation from "+node2+" to "+src+" reltype 2"); 340 } 341 return result; 342 } 343 344 public boolean getInsSave() { 345 return curNode.getInsSave(); 346 } 347 348 public void setInsSave(boolean set) { 349 curNode.setInsSave(set); 350 } 351 352 public Vector getInsSaveList() { 353 return curNode.getInsSaveList(); 354 } 355 356 public void delInsSaveList() { 357 if (curNode!=null) curNode.delInsSaveList(); 358 } 359 360 public Hashtable getRelationTable() { 361 return curNode.getRelationTable(); 362 } 363 364 public String getLanguage() { 365 return mmBase.getLanguage(); 366 } 367 368 public String getUser() { 369 return user; 370 } 371 } 372 | Popular Tags |