Andreas - 2007-09-05

Logged In: YES
Originator: YES

Fixed in svn trunk at revision 8886.

Changed the way templates are handled. Now, at the beginning, substructures matching templates are collected but no coordinates are assigned. Then when layoutRingSet() is called it is checked whether the ring set to lay out is part of a mapped substructure. Before the changes, this wasn't possible since RingPartitioner.partitionRings(sssr) separates all rings and the template handler could not match the templates anymore.

The cause for hard to reproduce StructureDiagramGenerator bugs was the undeterministic order of the rings returned by SSSRFinder.findSSSR(). The rings are now sorted by a new method AtomContainerSetManipulator.sort() which uses the new class AtomContainerComparator.

Also the safetyCounters in the SDG were made effective. This should prevent all hangs of the SDG in future.