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