Exemplo n.º 1
0
	//
	// p r i n t D i a g r a m s I n U M L G r a p h F o r m a t
	//
	void DinoUmlToGraphConverter::printDiagramsInUMLGraphFormat(ofstream &os)
	{
		// Traverse diagrams 
		SListConstIterator<UMLGraph*> diagramIt;
		for (diagramIt = m_diagramGraphsInUMLGraphFormat.begin(); diagramIt.valid(); ++diagramIt)
		{
			// Get underlying graphs
			const Graph &G = (const Graph &)**diagramIt;
			const GraphAttributes &AG = **diagramIt;

			// Nodes
			os << "Classes:" << endl;
			NodeElement *v;
			forall_nodes(v,G) 
			{
				os << "\t" << AG.labelNode(v);

				os << " with geometry (" 
					 << AG.x(v) << ", " 
					 << AG.y(v) << ", " 
					 << AG.width(v) << ", " 
					 << AG.height(v) << ")";

				os << endl;
			}

			// Edges
			EdgeElement *e;
			os << "Relations:" << endl;
			forall_edges(e,G) 
			{
				os << "\t";
				
				if (AG.type(e) == Graph::association)
					os << "Association between ";
				if (AG.type(e) == Graph::generalization)
					os << "Generalization between ";

				os << AG.labelNode(e->source()) << " and " 
					 << AG.labelNode(e->target()) << endl;
			}