Enumerar Vistas |
Superior Previo Próximo |
Los paquetes raíz de un proyecto Enterprise Architect son sus vistas. Estas incluyen la Vista de Casos de Uso, la Vista Lógica y la Vista Física -así como las vistas personalizadas creadas por analistas durante el modelado-.
Para trabajar con un modelo, el punto de partida usual es obtener una lista de las vistas definidas -dependiendo de qué se requiere, puede iterar a través de todos los subpaquetes para cada una o sólo para vistas especializadas-.
EA provee la interfaz BSTR EnumViews() para recuperar una lista de vistas. El XML retornado incluye un nodo para cada nodo - detallando el nombre de la vista y su identificador universal (GUID). Puede usar el GUID para recuperar los contenidos de cualquier vista.
XML de Ejemplo de EnumViews
<?xml version="1.0"?> <Document xmlns:UML="omg.org/UML1.3"> <View> <Name>Use Case View</Name> <GUID>EAID_DAF38564_68F1_4929_8760_8DDF15614F77</GUID> </View> <View> <Name>Dynamic View</Name> <GUID>EAID_DE77A45B_726E_468f_83AB_86C0391CC126</GUID> </View> <View> <Name>Logical View</Name> <GUID>EAID_A634A9A5_5589_44e9_B9D6_D1D4BC5EC544</GUID> </View> <View> <Name>Component View</Name> <GUID>EAID_3BA53453_8B77_4798_A0B5_DC02671804B7</GUID> </View> <View> <Name>Deployment View</Name> <GUID>EAID_A7E4B27B_DB98_4ef8_AE44_D58F389146F0</GUID> </View> <View> <Name>Custom</Name> <GUID>EAID_BE0B8A1C_2F09_4b8a_9FA3_015EA8E66056</GUID> </View> </Document>
Código Visual Basic de Ejemplo para Enumerate through Views
Private Sub CMDGetViews_Click()
' Demuestra cómo iterar a través de la vista de más alto nivel ' de un proyecto de Enterprise Architect y ' accede a la información sobre los paquetes y elemento allí contenidos ' Todo acceso está basado en XML, para así crear algunos documentos y nodos
Dim xmlDoc As New MSXML2.DOMDocument Dim xmlPkg As New MSXML2.DOMDocument Dim xmlView As MSXML2.IXMLDOMNode Dim xmlPkgNode As MSXML2.IXMLDOMNode
List1.Clear List2.Clear
'primero obtiene la lista de Vistas xmlDoc.loadXML EAProject.EnumViews
' Debug.Print xmlDoc.xml
' Mientras haya vistas, itera a través de ellas y recupera sub información Set xmlView = xmlDoc.selectSingleNode("Document/View") Do While (Not xmlView Is Nothing) AddToTreeList xmlView.selectSingleNode("Name").Text
'carga la lista de paquetes para esta vista xmlPkg.loadXML EAProject.EnumPackages(xmlView.selectSingleNode("GUID").Text) Debug.Print xmlPkg.xml
Set xmlPkgNode = xmlPkg.selectSingleNode("Document/Package")
'mientras haya paquetes para procesar Do While (Not xmlPkgNode Is Nothing) AddToTreeList " " & xmlPkgNode.selectSingleNode("Name").Text GetPackage xmlPkgNode.selectSingleNode("GUID").Text, Indent 'si es un modelo de la clase va un poco más profundo 'If (xmlPkgNode.selectSingleNode('Name').Text = 'Class Model') Then ' GetElements xmlPkgNode.selectSingleNode('GUID').Text 'End If Set xmlPkgNode = xmlPkgNode.nextSibling Loop
Set xmlView = xmlView.nextSibling Loop
'terminado AddToDebugList "Complete"
End Sub |