<?php require 'lang.base.php'; uses('util.cmd.Console', 'util.cmd.ParamString', 'org.dia.DiaUnmarshaller', 'io.File'); // TODO: => unittest! $Param = new ParamString(); $diagram = $Param->value(1); try { $Dia = DiaUnmarshaller::unmarshal($diagram); } catch (Exception $e) { $e->printStackTrace(); exit(-1); } $Dia->saveTo('test_out.dia', FALSE);
$Dia = DiaMarshaller::marshal($classes, $recurse, $depend); $Dia->saveTo($file, FALSE); } else { // else: update diagram Console::writeLine('Diagram file found: updating classes...'); // initialize objects try { // Visitor checks if the given classes exist $Visitor = new UpdateVisitor($classes, TRUE, TRUE); } catch (Exception $e) { $e->printStackTrace(); exit(-1); } Console::writeLine('Parsing XML diagram file...'); try { $Dia = DiaUnmarshaller::unmarshal($file); } catch (Exception $e) { $e->printStackTrace(); exit(-1); } // do the updates Console::writeLine('Running visitor...'); $Dia->accept($Visitor); Console::writeLine('Finalize visitor...'); $Visitor->finalize(); // write changes back to file if the visitor has changed something if ($Visitor->changedClasses()) { Console::writeLine('Writing changes back to diagram file...'); $Dia->saveTo($file, FALSE); } }
* */ require 'lang.base.php'; uses('util.cmd.Console', 'io.File', 'io.ZipFile', 'xml.dom.Document', 'org.dia.DiaDiagram', 'org.dia.DiaText', 'org.dia.DiaMarshaller', 'org.dia.DiaUnmarshaller'); // create new empty diagram: $Dia = new DiaDiagram(); $BgLayer = $Dia->getChild('Background'); $BgLayer->addObject(new DiaText()); Console::writeLine($Dia->getSource()); exit(0); //$Dia= &DiaMarshaller::marshal(array('object.TdocVertrag'), $recurse= 1, $depend= FALSE); //print($Dia->getSource()); // read an existing diagram $file = getcwd() . '/test-read.dia'; Console::writeLine("Using file: {$file}"); DiaUnmarshaller::unmarshal($file, array('org.dia.DiaDiagram', 'lang.Object')); // try opening (zipped) file // hint: ZipFile also handles unzipped files... /* try (); { $dia_file= &new ZipFile($file) && $dia_file->open(FILE_MODE_READ); } if (catch('Exception', $e)) { $e->printStackTrace(); exit(-1); } // get the encoding from file //$xml_encoding= $dia_file->readLine(); $dia_xml= $dia_file->read($dia_file->size()); // parse the dia file
<?php require 'lang.base.php'; uses('org.dia.DiaUnmarshaller', 'org.dia.UpdateVisitor'); // TODO: => unittest... Console::writeLine('============= Unmarshaller =========='); $Dia = DiaUnmarshaller::unmarshal('DiaClasses.dia'); $Dia->saveTo('DiaClasses_parsed.dia', FALSE); Console::writeLine('============= Visitor ==============='); $Visitor = new UpdateVisitor(array(), FALSE, TRUE); $Dia->accept($Visitor); $Visitor->finalize(); $Dia->saveTo('DiaClasses_updated.dia', FALSE);