fesch / Structorizer.Desktop

Structorizer is a little tool which you can use to create Nassi-Schneiderman Diagrams (NSD).
https://structorizer.fisch.lu
GNU General Public License v3.0
65 stars 20 forks source link

Import / Export of PapDesigner files #440

Open codemanyak opened 7 years ago

codemanyak commented 7 years ago

There is a handy and free control flowchart editor "PapDesigner" with XML-based file format. It would be a cool thing to be able

codemanyak commented 6 years ago

The developer of PapDesigner, Friedrich Folkmann, supports the idea but there is an obstacle for the export to PapDesigner: The PapDesigner software doesn't load pap files without a cryctographic checksum, the algorithm for which isn't open. He promised to look for a solution (e.g. a dialog popup warning against an unsigned pap diagram but offering to accept the file nevertheless). But this might turn out to be a little harder to achieve since the loader will then have to be more robust against possibly inconsistent files.

codemanyak commented 4 years ago

The attached jar file is a proof of concept prototype for the PAP export. Unfortunately the produced pap files are still not loadable into PapDesigner, because Friedrich Folkmann has not come up with a solution for the checksum problem. Structorizer_3.30-07-papex2.zip

codemanyak commented 4 years ago

The PapDesigner export project is nearly done, a new PapDesigner version that tolerates unsigned .pap files has been prepared by F. Folkmann (many thanks to him!) but is still not official. The major export issue that is still unsolved is a proper handling of EXIT elements, i.e. to find a mechanism to route connections from a return or leave element to the end connector of a diagram or the next element after the corresponding loop, respectively. For throw elements a simple blind connector mode would do best, for exit jumps it would be similar unless it is placed within a main diagram in which case it would be equivalent to a return element. If a return element holds a result expression then it is to be converted into an activity node, otherwise it will just produce a connector node to organize a bend in the link chain. The feature is likely to be shipped with version 3.30-07 or 3.30-08. The PapDesigner import will take significantly more time to be developed.

codemanyak commented 4 years ago

Short before the delivery of version 3.30-07, here is a 1st alpha version with revised and enhanced export to PapDesigner. For Parallel elements, now the circumstance that some of the limitations imposed by the PapDesigner GUI (esp. the impossibility to let more than one link leave a connector node) can be bypassed in the pap files is exploited to produce a sound layout rather than a serialized thread sequence. EXIT elements now lead to a blind connector as a quick workaround. A strategy to actually connect them to the target node (e.g. to the next node after a left loop or to the end node for a return) is postponed. For the exit and throw variants this wouldn't be possible anyway. Structorizer_3.30-07-alpha1.zip

Two export examples: Issue440+828_group_pap_export.zip

codemanyak commented 4 years ago

PapDesigner export delivered with version 3.30-07.