1 10 package org.mmbase.applications.packaging.projects.editors.cloudmodel.gui; 11 12 import java.util.ArrayList ; 13 import java.util.Iterator ; 14 import java.util.List ; 15 16 import org.mmbase.applications.packaging.projects.editors.cloudmodel.AllowedRelation; 17 import org.mmbase.applications.packaging.projects.editors.cloudmodel.Model; 18 import org.mmbase.applications.packaging.projects.editors.cloudmodel.NeededBuilder; 19 import org.mmbase.applications.packaging.projects.editors.cloudmodel.NeededBuilderField; 20 import org.mmbase.applications.packaging.projects.editors.cloudmodel.NeededRelDef; 21 import org.mmbase.bridge.Cloud; 22 import org.mmbase.bridge.CloudContext; 23 import org.mmbase.bridge.LocalContext; 24 import org.mmbase.bridge.NodeManager; 25 import org.mmbase.module.core.MMBase; 26 import org.mmbase.module.core.MMObjectNode; 27 import org.mmbase.module.core.VirtualBuilder; 28 import org.mmbase.util.logging.Logger; 29 import org.mmbase.util.logging.Logging; 30 31 35 public class Controller { 36 37 private static Logger log = Logging.getLoggerInstance(Controller.class); 38 private static Cloud cloud; 39 NodeManager manager; 40 CloudContext context; 41 42 43 public Controller() { 44 cloud=LocalContext.getCloudContext().getCloud("mmbase"); 45 46 manager=cloud.getNodeManager("typedef"); 48 if (manager==null) log.error("Can't access builder typedef"); 49 context=LocalContext.getCloudContext(); 50 } 51 52 53 public List getNeededBuilders(String cloudmodelfile) { 54 List list = new ArrayList (); 55 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 56 57 log.info("GETNEEDED BUILDERS="+cloudmodelfile); 58 Model model = new Model(cloudmodelfile); 59 Iterator neededbuilders=model.getNeededBuilders(); 60 for (Iterator i = neededbuilders; i.hasNext();) { 61 NeededBuilder nb=(NeededBuilder)i.next(); 62 MMObjectNode virtual = builder.getNewNode("admin"); 63 virtual.setValue("name",nb.getName()); 64 virtual.setValue("maintainer",nb.getMaintainer()); 65 virtual.setValue("version",nb.getVersion()); 66 list.add(virtual); 67 } 68 return list; 69 } 70 71 72 public List getNeededRelDefs(String cloudmodelfile) { 73 List list = new ArrayList (); 74 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 75 76 Model model = new Model(cloudmodelfile); 77 Iterator neededreldefs=model.getNeededRelDefs(); 78 for (Iterator i = neededreldefs; i.hasNext();) { 79 NeededRelDef nr=(NeededRelDef)i.next(); 80 MMObjectNode virtual = builder.getNewNode("admin"); 81 virtual.setValue("source",nr.getSource()); 82 virtual.setValue("target",nr.getTarget()); 83 virtual.setValue("direction",nr.getDirection()); 84 virtual.setValue("guisourcename",nr.getGuiSourceName()); 85 virtual.setValue("guitargetname",nr.getGuiTargetName()); 86 virtual.setValue("buildername",nr.getBuilderName()); 87 list.add(virtual); 88 } 89 return list; 90 } 91 92 public List getNeededBuilderFields(String cloudmodelfile,String buildername,String language) { 93 List list = new ArrayList (); 94 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 95 Model model = new Model(cloudmodelfile); 96 NeededBuilder nb=model.getNeededBuilder(buildername); 97 if (nb!=null) { 98 Iterator nbfl = nb.getFields(); 99 int pos = 3; 100 while (nbfl.hasNext()) { 101 MMObjectNode virtual = builder.getNewNode("admin"); 102 NeededBuilderField nbf = (NeededBuilderField)nbfl.next(); 103 virtual.setValue("dbname",nbf.getDBName()); 104 virtual.setValue("dbstate",nbf.getDBState()); 105 virtual.setValue("dbtype",nbf.getDBType()); 106 virtual.setValue("dbsize",nbf.getDBSize()); 107 virtual.setValue("dbkey",nbf.getDBKey()); 108 virtual.setValue("dbnotnull",nbf.getDBNotNull()); 109 virtual.setValue("dbinputpos",nbf.getEditorInputPos()); 110 virtual.setValue("dbsearchpos",nbf.getEditorSearchPos()); 111 virtual.setValue("dblistpos",nbf.getEditorListPos()); 112 virtual.setValue("dbpos",pos++); 113 list.add(virtual); 114 } 115 } 116 return list; 117 } 118 119 120 public MMObjectNode getNeededBuilderInfo(String cloudmodelfile,String buildername,String language) { 121 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 122 MMObjectNode virtual = builder.getNewNode("admin"); 123 124 Model model = new Model(cloudmodelfile); 125 NeededBuilder nb=model.getNeededBuilder(buildername); 126 virtual.setValue("name",nb.getName()); 127 virtual.setValue("maintainer",nb.getMaintainer()); 128 virtual.setValue("version",nb.getVersion()); 129 virtual.setValue("extends",nb.getExtends()); 130 virtual.setValue("singularname",nb.getSingularName(language)); 131 virtual.setValue("pluralname",nb.getPluralName(language)); 132 virtual.setValue("description",nb.getDescription(language)); 133 virtual.setValue("extends",nb.getExtends()); 134 virtual.setValue("status",nb.getStatus()); 135 virtual.setValue("searchage",nb.getSearchAge()); 136 virtual.setValue("classname",nb.getClassName()); 137 return virtual; 138 } 139 140 141 public MMObjectNode getNeededBuilderFieldInfo(String cloudmodelfile,String buildername,String language,String field) { 142 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 143 MMObjectNode virtual = builder.getNewNode("admin"); 144 145 Model model = new Model(cloudmodelfile); 146 if (model != null) { 147 NeededBuilder nb=model.getNeededBuilder(buildername); 148 if (nb != null) { 149 NeededBuilderField nbf=nb.getField(field); 150 if (nbf != null) { 151 virtual.setValue("dbname",nbf.getDBName()); 152 virtual.setValue("dbstate",nbf.getDBState()); 153 virtual.setValue("dbtype",nbf.getDBType()); 154 virtual.setValue("dbsize",nbf.getDBSize()); 155 virtual.setValue("description",nbf.getDescription(language)); 156 virtual.setValue("dbkey",nbf.getDBKey()); 157 virtual.setValue("dbnotnull",nbf.getDBNotNull()); 158 virtual.setValue("dbinputpos",nbf.getEditorInputPos()); 159 virtual.setValue("dbsearchpos",nbf.getEditorSearchPos()); 160 virtual.setValue("dblistpos",nbf.getEditorListPos()); 161 virtual.setValue("guiname",nbf.getGuiName(language)); 162 } 163 } 164 } 165 return virtual; 166 } 167 168 169 public List getAllowedRelations(String cloudmodelfile) { 170 List list = new ArrayList (); 171 VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase()); 172 173 Model model = new Model(cloudmodelfile); 174 Iterator allowedrelations=model.getAllowedRelations(); 175 for (Iterator i = allowedrelations; i.hasNext();) { 176 AllowedRelation ar=(AllowedRelation)i.next(); 177 MMObjectNode virtual = builder.getNewNode("admin"); 178 virtual.setValue("from",ar.getFrom()); 179 virtual.setValue("to",ar.getTo()); 180 virtual.setValue("type",ar.getType()); 181 list.add(virtual); 182 } 183 return list; 184 } 185 186 public boolean addNeededBuilder(String cloudmodelfile,String builder,String maintainer,String version) { 187 Model model = new Model(cloudmodelfile); 188 if (model!=null) { 189 model.addNeededBuilder(builder,maintainer,version); 190 } 191 return false; 192 } 193 194 195 public boolean deleteNeededBuilder(String cloudmodelfile,String builder,String maintainer,String version) { 196 Model model = new Model(cloudmodelfile); 197 if (model!=null) { 198 model.deleteNeededBuilder(builder,maintainer,version); 199 return true; 200 } 201 return false; 202 } 203 204 public boolean deleteNeededBuilderField(String cloudmodelfile,String builder,String field) { 205 Model model = new Model(cloudmodelfile); 206 if (model!=null) { 207 NeededBuilder nb=model.getNeededBuilder(builder); 208 if (nb!=null) { 209 nb.deleteField(field); 210 model.writeModel(); 211 return true; 212 } 213 } 214 return false; 215 } 216 217 public boolean addNeededRelDef(String cloudmodelfile,String source,String target,String direction,String guisourcename,String guitargetname,String builder) { 218 Model model = new Model(cloudmodelfile); 219 if (model!=null) { 220 model.addNeededRelDef(source,target,direction,guisourcename,guitargetname,builder); 221 } 222 return false; 223 } 224 225 226 public boolean deleteNeededRelDef(String cloudmodelfile,String source,String target,String direction,String guisourcename,String guitargetname,String builder) { 227 Model model = new Model(cloudmodelfile); 228 if (model!=null) { 229 model.deleteNeededRelDef(source,target,direction,guisourcename,guitargetname,builder); 230 } 231 return false; 232 } 233 234 235 public boolean addAllowedRelation(String cloudmodelfile,String from,String to,String type) { 236 Model model = new Model(cloudmodelfile); 237 if (model!=null) { 238 model.addAllowedRelation(from,to,type); 239 } 240 return false; 241 } 242 243 244 public boolean deleteAllowedRelation(String cloudmodelfile,String from,String to,String type) { 245 Model model = new Model(cloudmodelfile); 246 if (model!=null) { 247 model.deleteAllowedRelation(from,to,type); 248 } 249 return false; 250 } 251 252 253 public boolean setBuilderDescription(String cloudmodelfile,String buildername,String language,String newdescription) { 254 Model model = new Model(cloudmodelfile); 255 if (model!=null) { 256 NeededBuilder nb=model.getNeededBuilder(buildername); 257 if (nb!=null) { 258 nb.setDescription(language,newdescription); 259 model.writeModel(); 260 } 261 } 262 return false; 263 } 264 265 266 public boolean setBuilderFieldDescription(String cloudmodelfile,String buildername,String field,String language,String newdescription) { 267 Model model = new Model(cloudmodelfile); 268 if (model!=null) { 269 NeededBuilder nb=model.getNeededBuilder(buildername); 270 if (nb!=null) { 271 NeededBuilderField nbf=nb.getField(field); 272 if (nbf != null) { 273 nbf.setDescription(language,newdescription); 274 } 275 model.writeModel(); 276 } 277 } 278 return false; 279 } 280 281 282 public boolean addBuilderField(String cloudmodelfile,String buildername,String newname,String newtype,String newstatus,int newsize) { 283 Model model = new Model(cloudmodelfile); 284 if (model!=null) { 285 NeededBuilder nb=model.getNeededBuilder(buildername); 286 if (nb!=null) { 287 NeededBuilderField nbf=nb.getField(newname); 288 if (nbf == null && !newname.equals("")) { 289 nb.addField(newname,newtype,newstatus,newsize); 290 model.writeModel(); 291 } 292 } 293 } 294 return false; 295 } 296 297 298 public boolean setBuilderFieldPositions(String cloudmodelfile,String buildername,String field,int inputpos, int searchpos, int listpos) { 299 Model model = new Model(cloudmodelfile); 300 if (model!=null) { 301 NeededBuilder nb=model.getNeededBuilder(buildername); 302 if (nb!=null) { 303 NeededBuilderField nbf=nb.getField(field); 304 if (nbf != null) { 305 nbf.setEditorInputPos(inputpos); 306 nbf.setEditorSearchPos(searchpos); 307 nbf.setEditorListPos(listpos); 308 } 309 model.writeModel(); 310 } 311 } 312 return false; 313 } 314 315 316 public boolean setBuilderFieldDBValues(String cloudmodelfile,String buildername,String field,String dbname,String dbtype,String dbstate,int dbsize,String key,String notnull) { 317 Model model = new Model(cloudmodelfile); 318 if (model!=null) { 319 NeededBuilder nb=model.getNeededBuilder(buildername); 320 if (nb!=null) { 321 NeededBuilderField nbf=nb.getField(field); 322 if (nbf != null) { 323 nbf.setDBName(dbname); 324 nbf.setDBType(dbtype); 325 nbf.setDBState(dbstate); 326 nbf.setDBSize(dbsize); 327 if (key.equals("true")) { 328 nbf.setDBKey(true); 329 } else { 330 nbf.setDBKey(false); 331 } 332 if (notnull.equals("true")) { 333 nbf.setDBNotNull(true); 334 } else { 335 nbf.setDBNotNull(false); 336 } 337 } 338 model.writeModel(); 339 } 340 } 341 return false; 342 } 343 344 345 public boolean setBuilderFieldGuiName(String cloudmodelfile,String buildername,String field,String language,String newguiname) { 346 Model model = new Model(cloudmodelfile); 347 if (model!=null) { 348 NeededBuilder nb=model.getNeededBuilder(buildername); 349 if (nb!=null) { 350 NeededBuilderField nbf=nb.getField(field); 351 if (nbf != null) { 352 nbf.setGuiName(language,newguiname); 353 } 354 model.writeModel(); 355 } 356 } 357 return false; 358 } 359 360 361 public boolean setBuilderSingularName(String cloudmodelfile,String buildername,String language,String newname) { 362 Model model = new Model(cloudmodelfile); 363 if (model!=null) { 364 NeededBuilder nb=model.getNeededBuilder(buildername); 365 if (nb!=null) { 366 nb.setSingularName(language,newname); 367 model.writeModel(); 368 } 369 } 370 return false; 371 } 372 373 374 public boolean setBuilderPluralName(String cloudmodelfile,String buildername,String language,String newname) { 375 Model model = new Model(cloudmodelfile); 376 if (model!=null) { 377 NeededBuilder nb=model.getNeededBuilder(buildername); 378 if (nb!=null) { 379 nb.setPluralName(language,newname); 380 model.writeModel(); 381 } 382 } 383 return false; 384 } 385 386 public boolean setBuilderStatus(String cloudmodelfile,String buildername,String newstatus) { 387 Model model = new Model(cloudmodelfile); 388 if (model!=null) { 389 NeededBuilder nb=model.getNeededBuilder(buildername); 390 if (nb!=null) { 391 nb.setStatus(newstatus); 392 model.writeModel(); 393 } 394 } 395 return false; 396 } 397 398 public boolean setBuilderSearchAge(String cloudmodelfile,String buildername,String newsearchage) { 399 Model model = new Model(cloudmodelfile); 400 if (model!=null) { 401 NeededBuilder nb=model.getNeededBuilder(buildername); 402 if (nb!=null) { 403 nb.setSearchAge(newsearchage); 404 model.writeModel(); 405 } 406 } 407 return false; 408 } 409 410 411 public boolean setBuilderClassName(String cloudmodelfile,String buildername,String newclassname) { 412 Model model = new Model(cloudmodelfile); 413 if (model!=null) { 414 NeededBuilder nb=model.getNeededBuilder(buildername); 415 if (nb!=null) { 416 nb.setClassName(newclassname); 417 model.writeModel(); 418 } 419 } 420 return false; 421 } 422 423 424 public boolean setBuilderName(String cloudmodelfile,String buildername,String newname) { 425 Model model = new Model(cloudmodelfile); 426 if (model!=null) { 427 NeededBuilder nb=model.getNeededBuilder(buildername); 428 if (nb!=null) { 429 nb.setName(newname); 430 model.writeModel(); 431 } 432 } 433 return false; 434 } 435 436 public boolean setBuilderMaintainer(String cloudmodelfile,String buildername,String newmaintainer) { 437 Model model = new Model(cloudmodelfile); 438 if (model!=null) { 439 NeededBuilder nb=model.getNeededBuilder(buildername); 440 if (nb!=null) { 441 nb.setMaintainer(newmaintainer); 442 model.writeModel(); 443 } 444 } 445 return false; 446 } 447 448 449 public boolean setBuilderVersion(String cloudmodelfile,String buildername,String newversion) { 450 Model model = new Model(cloudmodelfile); 451 if (model!=null) { 452 NeededBuilder nb=model.getNeededBuilder(buildername); 453 if (nb!=null) { 454 nb.setVersion(newversion); 455 model.writeModel(); 456 } 457 } 458 return false; 459 } 460 461 public boolean setBuilderExtends(String cloudmodelfile,String buildername,String newextends) { 462 Model model = new Model(cloudmodelfile); 463 if (model!=null) { 464 NeededBuilder nb=model.getNeededBuilder(buildername); 465 if (nb!=null) { 466 nb.setExtends(newextends); 467 model.writeModel(); 468 } 469 } 470 return false; 471 } 472 } 473 | Popular Tags |