]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Constructor/doc/especificaciones_tecnicas.lyx
92e403347663c22db880a691efc0b6525d92ba44
[z.facultad/75.42/plaqui.git] / Constructor / doc / especificaciones_tecnicas.lyx
1 #LyX 1.3 created this file. For more info see http://www.lyx.org/
2 \lyxformat 221
3 \textclass article
4 \language english
5 \inputencoding auto
6 \fontscheme default
7 \graphics default
8 \paperfontsize default
9 \papersize Default
10 \paperpackage a4
11 \use_geometry 0
12 \use_amsmath 0
13 \use_natbib 0
14 \use_numerical_citations 0
15 \paperorientation portrait
16 \secnumdepth 3
17 \tocdepth 3
18 \paragraph_separation indent
19 \defskip medskip
20 \quotes_language english
21 \quotes_times 2
22 \papercolumns 1
23 \papersides 1
24 \paperpagestyle default
25
26 \layout Title
27
28 PlaQui Constructor
29 \layout Title
30
31 Documentación Técnica
32 \layout Standard
33
34
35 \begin_inset LatexCommand \tableofcontents{}
36
37 \end_inset 
38
39
40 \layout Section
41
42 Introducción:
43 \layout Standard
44
45 Al ser una aplicación visual, algunos conceptos de la programación orientada
46  a objetos no se han tomados al pie de la letra, ya sea cuestiones de encapsulam
47 iento o abstracción.
48 \layout Section
49
50 Descripción del desarrollo:
51 \layout Subsection*
52
53 Constructor:
54 \layout Standard
55
56 La clase principal de esta aplicación es la clase Constructor.
57  Ella es la encargada de obtener e inicializar todos los elementos de la
58  ventana principal, ya sean botones, cuadros de diálogo, barras de herramientas,
59  etc.
60 \layout Standard
61
62 Para cada botón referenciado por esta clase, es conectado a ellos una señal,
63  que será el método que deben invocar al ser presionados.
64 \layout Standard
65
66 Uno de los métodos mas importantes de esta clase es 
67 \begin_inset Quotes eld
68 \end_inset 
69
70 on_item_drop_drag_recived()
71 \begin_inset Quotes erd
72 \end_inset 
73
74  que es la encargada de crear un nuevo elemento si es arrastrado desde la
75  barra de elementos, o de moverlo dentro del área de trabajo si este ya
76  estaba creado.
77 \layout Standard
78
79 Cada nuevo elemento creado es almacenado en una lista de elementos ( 
80 \begin_inset Quotes eld
81 \end_inset 
82
83 listaItems
84 \begin_inset Quotes erd
85 \end_inset 
86
87  ) de transporte o almacenamiento de fluido, o de elementos lógicos, según
88  cual sea ( 
89 \begin_inset Quotes eld
90 \end_inset 
91
92 lista_logic_items
93 \begin_inset Quotes erd
94 \end_inset 
95
96 ).
97 \layout Standard
98
99 Otra de las funciones principales es 
100 \begin_inset Quotes eld
101 \end_inset 
102
103 check_connection()
104 \begin_inset Quotes erd
105 \end_inset 
106
107  que recorre todos los items de ambas listas y verifica que se haya formado
108  en el momento del diseño un circuito posible.
109  Mas adelante se verá como cada elemento verifica su conexión.
110 \layout Standard
111
112 También está contenida en ella la clase WorkPlace, que detalla a continuación.
113 \layout Subsection*
114
115 WorkPlace:
116 \layout Standard
117
118 Esta clase es la encarga de de manejar el área trabajo.
119  Una de sus principales tareas es redibujarse cuando sea necesario y al
120  mismo tiempo, redibujar los elementos que contiene, como pueden ser los
121  items de la planta o las líneas lógicas que conectan los mismos.
122 \layout Standard
123
124 También se encarga de eliminar correctamente un item, eliminando al mismo
125  tiempo las lineas que llegan o salen de él.
126 \layout Subsection*
127
128 CItem:
129 \layout Standard
130
131 Acá se definen los comportamientos comunes de todo los items de la aplicación,
132  como puede ser la imagen actual, la posición en la grilla, el caudal máximo,el
133  número único de identificación y diferentes punteros a otros objetos.
134 \layout Standard
135
136 También esta definida en esta clase la estuctura que representa los conectores
137  físicos, y otra que representa a los conectores lógicos.
138 \layout Standard
139
140 Esta clase contiene métodos abstractos ya que cualquier elemento que descienda
141  de ella deberá poder implementar los mismos porque, por ejemplo, ningún
142  item se guarda en un archivo de la misma manera; este es el caso del método
143  
144 \begin_inset Quotes eld
145 \end_inset 
146
147 save( FILE archivo)
148 \begin_inset Quotes erd
149 \end_inset 
150
151 .
152 \layout Standard
153
154 Existe otro método abstracto dentro de esta clase que es 
155 \begin_inset Quotes eld
156 \end_inset 
157
158 check_connection()
159 \begin_inset Quotes erd
160 \end_inset 
161
162 .
163  Del mismo modo que un item se guarda de forma diferente que otro, también
164  verifica su conexión de distinta forma, es por eso que cada item debe implement
165 ar su manera de verificar como y con quién esta conectado.
166 \layout Standard
167
168 \the_end