1 4 package cve.core.comunicazione; 5 6 import cve.core.elementEEL.*; 7 import cve.core.elementLDL.*; 8 import relations.*; 9 import java.util.*; 10 import cve.staticLayout.*; 11 12 import java.lang.reflect.*; 13 14 import javax.swing.*; 15 16 import org.apache.log4j.Logger; 17 18 32 public class Ldl_to_Edl { 33 private final Environment env; 35 private EnvironmentEEL envEEL; 37 38 42 public Ldl_to_Edl (Environment env){ 43 Cve.errLog.debug(""); 44 this.env=env; 45 IInsiemeElementiCve eleLdl=env.getAllElement(); 47 InsiemeDiRelCve relLdl=env.getAllRel(); 49 IInsiemeBaseObject elementEEL=createElementEEL(eleLdl); 51 createComunication(relLdl, elementEEL); 53 componentiGrafiche(eleLdl, elementEEL); 55 makeEnvironmentEEL(eleLdl,elementEEL); 57 } 58 59 62 public EnvironmentEEL getEnvironmentEEL(){ 63 Cve.errLog.debug(""); 64 return envEEL; 65 } 66 67 78 private IInsiemeBaseObject createElementEEL(IInsiemeElementiCve iDRC){ 79 Cve.errLog.debug(""); 81 Esecutore ese=null; 82 Osservatore oss=null; 83 Presenter pre=null; 84 Unit unit=null; 85 ABaseObject app=null; 86 87 InsiemeBaseObject insiemeBase=new InsiemeBaseObject("provaEdl"); 89 String id; 90 ViewLog.writeInLog(" "+"\n"); 91 ViewLog.writeInLog(" ****** A PARTIRE DAI DESCRITTORI CREO ELEMENTI EEL ******"+"\n"); 92 int card=iDRC.getCardinalita(); 93 for (int i=0;i<card;i++){ 94 IElementoCve eleCve=iDRC.getElemento(i); 95 try { 96 Class ele=eleCve.getClassCve(); 97 String descr=eleCve.getDescription(); 98 String tipo=eleCve.getTipo(); 99 id=eleCve.getId(); 100 if (tipo.equals("esecutore")){ 101 ese=(Esecutore)ele.newInstance(); 102 ese.setDescription(descr); 104 ViewLog.writeInLog(" creato oggetto esecutore "+ele.getName()+ " id "+id+"\n"); 105 insiemeBase.addElemento(ese,id); 106 } 107 if (tipo.equals("osservatore")){ 108 oss=(Osservatore)ele.newInstance(); 109 Collection par=eleCve.getParameters(); 111 if (par!=null) 112 oss.setComponents(par); 113 oss.setDescription(descr); 115 ViewLog.writeInLog(" creato oggetto osservatore "+ele.getName()+" id "+id+"\n"); 116 insiemeBase.addElemento(oss,id); 117 } 118 if (tipo.equals("presenter")){ 119 IElementoCveVis eleCveVis=(IElementoCveVis)eleCve; 120 pre=(Presenter)ele.newInstance(); 121 pre.setDescription(descr); 122 ViewLog.writeInLog(" creato oggetto presenter "+ele.getName()+" id "+id+"\n"); 123 insiemeBase.addElemento(pre,id); 124 } 125 if (tipo.equals("unit")){ 126 IElementoCveVis eleCveVis=(IElementoCveVis)eleCve; 127 unit=(Unit)ele.newInstance(); 128 unit.setDescription(descr); 129 ViewLog.writeInLog(" creato oggetto unit "+ele.getName()+" id "+id+"\n"); 131 insiemeBase.addElemento(unit,id); 132 } 133 } catch (InstantiationException e) { 134 Cve.errLog.error(e.toString()); 135 } 136 catch (IllegalAccessException e) { 137 Cve.errLog.error(e.toString()); 138 } 139 } 140 ViewLog.writeInLog(" *** Fase creazione istanze EEL finita, insieme istanze EEL dimensioni "+insiemeBase.getCardinalita()+"\n"); 141 ViewLog.writeInLog(" "+"\n"); 142 return (IInsiemeBaseObject)insiemeBase; 143 } 144 145 158 private void createComunication(InsiemeDiRelCve iDRC, IInsiemeBaseObject elementBase){ 159 String id1,id2; 160 Cve.errLog.debug(""); 161 ViewLog.writeInLog(" "+"\n"); 162 ViewLog.writeInLog(" ****** INIZIA ELABORAZIONE RELAZIONI ESISTENTI (ldl eel) ******"+"\n"); 163 int card=iDRC.getCardinalita(); 164 for (int i=0;i<card;i++){ 165 IRelazione r=iDRC.getRel(i); 167 if (r instanceof RelInterlayerCve) { 169 RelInterlayerCve rIC=(RelInterlayerCve)r; 170 ViewLog.writeInLog(" Trovata relazione interlayer"+"\n"); 171 ViewLog.writeInLog(" nome "+rIC.getNome()+"\n"); 172 Iterator meb=rIC.getMembers(); 174 IElementoCve eleCve2=null,eleCve1=null; 175 if (meb.hasNext()){ 177 IMemberRel member1=(IMemberRel)meb.next(); 178 eleCve1=(IElementoCve)member1.getRef(); 179 ViewLog.writeInLog(" Membro1 id = "+eleCve1.getId()+" tipo = "+eleCve1.getTipo()+"\n"); 180 } 181 if (meb.hasNext()){ 183 IMemberRel member2=(IMemberRel)meb.next(); 184 eleCve2=(IElementoCve)member2.getRef(); 185 ViewLog.writeInLog(" Membro2 id = "+eleCve2.getId()+" tipo = "+eleCve2.getTipo()); 186 } 187 id1=eleCve1.getId(); 188 id2=eleCve2.getId(); 189 if ((eleCve1.getTipo().equals("osservatore"))&&(eleCve2.getTipo().equals("esecutore"))){ 191 Osservatore oss=(Osservatore)elementBase.getElemento(id1); 193 Esecutore ese=(Esecutore)elementBase.getElemento(id2); 194 linkEseOss(ese, oss); 195 } 196 if ((eleCve1.getTipo().equals("esecutore"))&&(eleCve2.getTipo().equals("osservatore"))){ 198 Esecutore ese=(Esecutore)elementBase.getElemento(id1); 200 Osservatore oss=(Osservatore)elementBase.getElemento(id2); 201 linkEseOss(ese, oss); 203 } 204 if ((eleCve1.getTipo().equals("osservatore"))&&(eleCve2.getTipo().equals("presenter"))){ 206 Osservatore oss=(Osservatore)elementBase.getElemento(id1); 208 Presenter pre=(Presenter)elementBase.getElemento(id2); 209 linkOssPre(oss, pre); 210 } 211 if ((eleCve1.getTipo().equals("presenter"))&&(eleCve2.getTipo().equals("osservatore"))){ 213 Presenter pre=(Presenter)elementBase.getElemento(id1); 215 Osservatore oss=(Osservatore)elementBase.getElemento(id2); 216 linkOssPre(oss,pre); 219 } 220 } 221 if (r instanceof RelIntralayerCve) { 223 RelIntralayerCve rL=(RelIntralayerCve)r; 224 ViewLog.writeInLog(" Trovata relazione layer"+"\n"); 225 ViewLog.writeInLog(" nome "+rL.getNome()+"\n"); 226 rL.getMembers(); 228 229 231 ViewLog.writeInLog(" Creato gruppo "+"\n"); 235 } 237 } 238 } 239 240 246 private void componentiGrafiche(IInsiemeElementiCve iDRC, IInsiemeBaseObject elementBase){ 247 Cve.errLog.debug(""); 249 ViewLog.writeInLog(" "+"\n"); 250 ViewLog.writeInLog(" ****** ASSOCIAZIONE COMPONENTI GRAFICHE AD ELEMENTI CVE EEL ******"+"\n"); 251 ViewLog.writeInLog(" Creazione toolbar e menubar (associazione azioni-pulsanti)"+"\n"); 252 Presenter pre=null; 253 String id; 254 int card=iDRC.getCardinalita(); 255 for (int i=0;i<card;i++){ 256 IElementoCve eleCve=iDRC.getElemento(i); 257 if (eleCve instanceof IElementoCveVis) { 258 IElementoCveVis eleCveVis=(IElementoCveVis)eleCve; 259 id=eleCveVis.getId(); 260 if (eleCveVis.getTipo().equals("presenter")){ 262 pre=(Presenter)elementBase.getElemento(id); 263 CveToolBar cveT=makeTool((DescrCveToolBar)eleCveVis.getToolB(),pre); 265 pre.setToolBar(cveT); 266 267 pre.setIcon(eleCveVis.getIcon()); 269 270 Collection cveMenus=eleCveVis.getAllMenu(); 272 if (cveMenus!=null){ 273 Iterator itMenu=cveMenus.iterator(); 274 CveMenuBar cveMB=new CveMenuBar(); 275 boolean esisteMenu=false; 276 while(itMenu.hasNext()){ 277 esisteMenu=true; 278 CveMenu cveM=makeMenu((DescrCveMenu)itMenu.next(),pre); 279 cveMB.add(cveM); 280 } 281 if (esisteMenu) 282 pre.setMenu(cveMB); 283 } 284 Collection par=eleCveVis.getParameters(); 286 if (par!=null && par.size()>0){ 287 Iterator itC=par.iterator(); 288 String titolo=(String )itC.next(); 289 pre.setTitle(titolo); 290 } 291 ViewLog.writeInLog(" Inserite toolbar e menupbar in presenter"+"\n"); 292 } 293 } 294 } 295 } 296 297 307 private void makeEnvironmentEEL(IInsiemeElementiCve iDRC,IInsiemeBaseObject elementEEL){ 308 Cve.errLog.debug(""); 309 ViewLog.writeInLog(" "+"\n"); 310 ViewLog.writeInLog(" ****** CREAZIONE AMBIENTE EEL ******"+"\n"); 311 ViewLog.writeInLog(" Un ambiente eel e' composto da Unit"+"\n"); 312 envEEL=new EnvironmentEEL(); 313 envEEL.setDescription((String )env.getDescription()); 314 Unit unit=null; 315 Presenter pre=null; 316 String id; 317 int card=iDRC.getCardinalita(); 318 for (int i=0;i<card;i++){ 319 IElementoCve eleCve=iDRC.getElemento(i); 320 if (eleCve instanceof IElementoCveVis) { 321 IElementoCveVis eleCveVis=(IElementoCveVis)eleCve; 322 if (eleCveVis.getTipo().equals("unit")){ 323 id=eleCveVis.getId(); 324 unit=(Unit)elementEEL.getElemento(id); 326 Collection par=eleCveVis.getParameters(); 328 if (par!=null && par.size()>0){ 330 Iterator itP=par.iterator(); 331 while (itP.hasNext()){ 333 IElementoCve descrPre=(IElementoCve)itP.next(); 334 pre=(Presenter)elementEEL.getElemento((String )descrPre.getId()); 336 unit.addPresenter(pre); 337 } 338 } 339 } 340 } 341 if (unit!=null){ 342 envEEL.addUnit((IUnit)unit); 343 } 344 } 345 } 346 347 352 private void linkOssPre(Osservatore oss,Presenter pre){ 353 Cve.errLog.debug(""); 354 oss.setPresenter(pre); 355 pre.setOsservatore(oss); 356 ViewLog.writeInLog(" messo link osservatore presenter"+"\n"); 357 } 358 359 364 private void linkEseOss(Esecutore ese, Osservatore oss){ 365 Cve.errLog.debug(""); 366 ObservableCve obEse=ese.getObservable(); 368 obEse.addObserver(oss); 369 oss.setEsecutore(ese); 373 ViewLog.writeInLog(" messo link osservatore esecutore"+"\n"); 375 } 376 377 382 private CveToolBar makeTool(DescrCveToolBar tool,Presenter pre){ 383 Cve.errLog.debug(""); 385 String act,icon,tip; 386 ImageIcon iconI; 387 CveButton cveB; 388 CveToolBar cveTB= new CveToolBar(); 389 Vector toolVec=new Vector((Collection)tool.getAllCveB()); 391 Iterator itTool=toolVec.iterator(); 392 while(itTool.hasNext()){ 393 DescrCveButton cveDB=(DescrCveButton)itTool.next(); 394 act=cveDB.getAction(); 395 icon=cveDB.getIcon(); 396 tip=cveDB.getTip(); 397 cveB=new CveButton(); 398 ViewLog.writeInLog(" Action "+act+ " Icona "+icon+" Tip"+tip+"\n"); 399 if (cveDB.getAction()!=null){ 400 Action act1=creaAzione(act,pre); 401 cveB.setAction(act1); 402 } 403 if (cveDB.getIcon()!=null){ 404 iconI=new ImageIcon((String )cveDB.getIcon()); 405 cveB.setIcon(iconI); 406 } 407 if (cveDB.getTip()!=null){ 408 } 409 cveTB.add(cveB); 411 } 412 return cveTB; 413 } 414 415 421 private CveMenu makeMenu(DescrCveMenu menu,Presenter pre){ 422 Cve.errLog.debug(""); 424 String act,icon,name,nameItem; 425 ImageIcon iconI; 426 CveItem cveI; 427 CveMenu cveM=null; 428 if (menu!=null){ 429 name=menu.getName(); 430 ViewLog.writeInLog(" il nome del menu e' "+ name +"\n"); 431 if (name!=null) 432 cveM= new CveMenu(name); 433 else 434 cveM= new CveMenu(); 435 } 436 if (menu!=null && menu.getAll()!=null){ 437 Vector itemVec=new Vector((Collection)menu.getAll()); 439 Iterator itMenu=itemVec.iterator(); 440 while(itMenu.hasNext()){ 441 DescrCveItem cveDB=(DescrCveItem)itMenu.next(); 443 act=cveDB.getAction(); 444 nameItem=cveDB.getName(); 446 cveI=new CveItem(); 447 if (cveDB.getAction()!=null){ 449 Action act1=creaAzione(act,pre); 450 cveI.setAction(act1); 451 } 452 if (cveDB.getIcon()!=null){ 453 iconI=new ImageIcon((String )cveDB.getIcon()); 454 cveI.setIcon(iconI); 455 } 456 if (cveDB.getName()!=null){ 457 cveI.setText(cveDB.getName()); 458 } 459 cveM.add(cveI); 461 } 462 } 463 return cveM; 464 } 465 466 472 private Action creaAzione(String act,Presenter pre){ 473 Cve.errLog.debug(""); 474 Field actionField; 475 Class ossC=null; 476 Action actResult=null; 477 Osservatore oss=pre.getOsservatore(); 478 ossC = oss.getClass(); 479 480 Field[] publicFields = ossC.getFields(); 481 for (int i = 0; i < publicFields.length; i++) { 482 String fieldName = publicFields[i].getName(); 483 Class typeClass = publicFields[i].getType(); 484 String fieldType = typeClass.getName(); 485 } 486 try { 488 actionField = ossC.getField(act); 490 actResult=(Action) actionField.get(oss); 492 } catch (NoSuchFieldException e) { 494 Cve.errLog.error(e.toString()); 495 } catch (SecurityException e) { 496 Cve.errLog.error(e.toString()); 497 } catch (IllegalAccessException e) { 498 Cve.errLog.error(e.toString()); 499 } 500 return actResult; 501 502 } 503 504 511 GruppoCve makeGruppoCve(String nome,String tipo,Enumeration elem){ 512 Cve.errLog.debug(""); 513 GruppoCve gC=new GruppoCve(nome,tipo,elem); 514 return gC; 517 } 518 519 void delGruppo(){} 520 521 534 void notifyElementCve(String nome,String tipo,Enumeration elem, GruppoCve refGroup){ 535 Cve.errLog.debug(""); 536 ViewLog.writeInLog(" Informo gli elementi interessati esistenza gruppo"+"\n"); 537 if ( elem.hasMoreElements() ){ 538 IBaseObject refMemb=(IBaseObject)elem.nextElement(); 539 refMemb.notifyGroups(nome,tipo,refGroup); 542 } 543 } 544 545 } 546 | Popular Tags |