18 |
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
19 |
# |
# |
20 |
# |
# |
21 |
#Fichero: frArbol.py |
#Boa:MDIChild:frArbol |
22 |
|
|
23 |
|
|
24 |
#GPT Me falta comentar casi todo y reescribir casi todo, pero por ahora funciona |
#GPT Me falta comentar casi todo y reescribir casi todo, pero por ahora funciona |
83 |
#rehacer entero añadiendo métodos para mayor claridad. |
#rehacer entero añadiendo métodos para mayor claridad. |
84 |
#directorio=opendir('.') |
#directorio=opendir('.') |
85 |
self.root = self.tCNavegador.AddRoot("Elementos") |
self.root = self.tCNavegador.AddRoot("Elementos") |
86 |
|
|
87 |
self.tCNavegador.SetItemImage(self.root, self.fldridx, wxTreeItemIcon_Normal) |
self.tCNavegador.SetItemImage(self.root, self.fldridx, wxTreeItemIcon_Normal) |
88 |
self.tCNavegador.SetItemImage(self.root, self.fldropenidx, wxTreeItemIcon_Expanded) |
self.tCNavegador.SetItemImage(self.root, self.fldropenidx, wxTreeItemIcon_Expanded) |
89 |
self.tCNavegador.SetPyData(self.root, None) |
self.tCNavegador.SetPyData(self.root, "raiz") |
90 |
#añadimos los directorios de zonas |
#añadimos los directorios de zonas |
91 |
self.nodoSalas = self.tCNavegador.AppendItem(self.root, "Salas") |
self.nodoSalas = self.tCNavegador.AppendItem(self.root, "Salas") |
92 |
|
self.tCNavegador.SetPyData(self.nodoSalas, "zona") |
93 |
self.tCNavegador.SetItemImage(self.nodoSalas, self.fldridx, wxTreeItemIcon_Normal) |
self.tCNavegador.SetItemImage(self.nodoSalas, self.fldridx, wxTreeItemIcon_Normal) |
94 |
self.tCNavegador.SetItemImage(self.nodoSalas, self.fldropenidx, wxTreeItemIcon_Expanded) |
self.tCNavegador.SetItemImage(self.nodoSalas, self.fldropenidx, wxTreeItemIcon_Expanded) |
95 |
|
|
96 |
|
|
97 |
#añadimos los directorios de Objetos |
#añadimos los directorios de Objetos |
98 |
self.nodoObjetos = self.tCNavegador.AppendItem(self.root, "Objetos") |
self.nodoObjetos = self.tCNavegador.AppendItem(self.root, "Objetos") |
99 |
|
self.tCNavegador.SetPyData(self.nodoObjetos, "zona") |
100 |
self.tCNavegador.SetItemImage(self.nodoObjetos, self.fldridx, wxTreeItemIcon_Normal) |
self.tCNavegador.SetItemImage(self.nodoObjetos, self.fldridx, wxTreeItemIcon_Normal) |
101 |
self.tCNavegador.SetItemImage(self.nodoObjetos, self.fldropenidx, wxTreeItemIcon_Expanded) |
self.tCNavegador.SetItemImage(self.nodoObjetos, self.fldropenidx, wxTreeItemIcon_Expanded) |
102 |
#añadimos los directorios de PNJ |
#añadimos los directorios de PNJ |
103 |
self.nodoPNJ = self.tCNavegador.AppendItem(self.root, "PNJ") |
self.nodoPNJ = self.tCNavegador.AppendItem(self.root, "PNJ") |
104 |
|
self.tCNavegador.SetPyData(self.nodoPNJ, "zona") |
105 |
self.tCNavegador.SetItemImage(self.nodoPNJ, self.fldridx, wxTreeItemIcon_Normal) |
self.tCNavegador.SetItemImage(self.nodoPNJ, self.fldridx, wxTreeItemIcon_Normal) |
106 |
self.tCNavegador.SetItemImage(self.nodoPNJ, self.fldropenidx, wxTreeItemIcon_Expanded) |
self.tCNavegador.SetItemImage(self.nodoPNJ, self.fldropenidx, wxTreeItemIcon_Expanded) |
107 |
#dirSala=opendir('./desc_salas') |
#dirSala=opendir('./desc_salas') |
147 |
self.getNodoPorNombre(nombreZona, self.nodoSalas) |
self.getNodoPorNombre(nombreZona, self.nodoSalas) |
148 |
except NodeError: |
except NodeError: |
149 |
nodoZona = self.tCNavegador.AppendItem(self.nodoSalas, nombreZona) |
nodoZona = self.tCNavegador.AppendItem(self.nodoSalas, nombreZona) |
150 |
self.tCNavegador.SetPyData(nodoZona, None) |
self.tCNavegador.SetPyData(nodoZona, "zona") |
151 |
self.tCNavegador.SetItemImage(nodoZona, self.fldridx, wxTreeItemIcon_Normal) |
self.tCNavegador.SetItemImage(nodoZona, self.fldridx, wxTreeItemIcon_Normal) |
152 |
self.tCNavegador.SetItemImage(nodoZona, self.fldropenidx, wxTreeItemIcon_Expanded) |
self.tCNavegador.SetItemImage(nodoZona, self.fldropenidx, wxTreeItemIcon_Expanded) |
153 |
else: |
else: |
164 |
except NodeError: |
except NodeError: |
165 |
raise ZonaError, 'esa zona no existe' |
raise ZonaError, 'esa zona no existe' |
166 |
else: |
else: |
167 |
self.removeSalaPorNodo(nodoZona,nombreSala) |
self.removeSalaPorNodo(nodoZona,nombreSala) |
168 |
|
|
169 |
def addSala(self,nombreZona, nombreSala): |
def addSala(self,nombreZona, nombreSala): |
170 |
#añade una sala dado un nombre de zona y un nombre de sala, si la zona |
#añade una sala dado un nombre de zona y un nombre de sala, si la zona |
241 |
else: |
else: |
242 |
raise NodeError, 'no existe ningún hijo de nombre ' + nombre |
raise NodeError, 'no existe ningún hijo de nombre ' + nombre |
243 |
|
|
244 |
|
def borrar(self): |
245 |
|
ZonaError = 'ZonaError' |
246 |
|
|
247 |
|
nodo=self.tCNavegador.GetSelection() |
248 |
|
datos = self.tCNavegador.GetPyData(nodo) |
249 |
|
textoNodo = self.tCNavegador.GetItemText(nodo) |
250 |
|
|
251 |
|
if (datos == "zona"): |
252 |
|
caption = 'Borrar Zona' |
253 |
|
msg = '¿Desea borrar la zona ' + textoNodo + ' ?\n' |
254 |
|
msg = msg + 'Todas las salas de la zona también se borrarán' |
255 |
|
dlg = wxMessageDialog(self, msg, caption, wxYES_NO | wxICON_QUESTION ) |
256 |
|
try: |
257 |
|
respuesta=dlg.ShowModal() |
258 |
|
if respuesta==wxID_YES: |
259 |
|
try: |
260 |
|
#self.removeSala(datos.split('-')[0],datos.split('-')[1]) |
261 |
|
os.remove(os.path.join(Sala.DIR_DESC_SALAS,textoNodo)) |
262 |
|
#se borra el nodo de zona |
263 |
|
self.tcNavegador.DeleteChildren(nodo) |
264 |
|
self.tCNavegador.Delete(nodo) |
265 |
|
except ZonaError: |
266 |
|
#No debería darse cuando todo esté bien gestionado |
267 |
|
pass |
268 |
|
else: |
269 |
|
#print('ha pinchado en no') |
270 |
|
pass |
271 |
|
finally: |
272 |
|
dlg.Destroy() |
273 |
|
|
274 |
|
elif (datos == "raiz") or (datos == "Salas" ) or (datos == "Objetos" ) or (datos == "PNJ" ): |
275 |
|
msg = "No se pueden borrar esos nodos" |
276 |
|
dlg = wxMessageDialog(self, msg, |
277 |
|
'Atención', wxOK | wxICON_INFORMATION) |
278 |
|
try: |
279 |
|
dlg.ShowModal() |
280 |
|
finally: |
281 |
|
dlg.Destroy() |
282 |
|
|
283 |
|
else: |
284 |
|
#GPT Falta comprobar que no se está mostrando esa sala en un dialogo |
285 |
|
#mensaje preguntando |
286 |
|
caption = 'Borrar Sala' |
287 |
|
mensaje = '¿Desea borrar la sala ' + datos.split('-')[1] + ' ?' |
288 |
|
dlg = wxMessageDialog(self, mensaje, |
289 |
|
caption, wxYES_NO | wxICON_QUESTION ) |
290 |
|
try: |
291 |
|
respuesta=dlg.ShowModal() |
292 |
|
if respuesta==wxID_YES: |
293 |
|
try: |
294 |
|
self.removeSala(datos.split('-')[0],datos.split('-')[1]) |
295 |
|
os.remove(os.path.join(Sala.DIR_DESC_SALAS,datos.split('-')[0],datos + Sala.EXT_DESC_SALAS )) |
296 |
|
except ZonaError: |
297 |
|
#No debería darse cuando todo esté bien gestionado |
298 |
|
pass |
299 |
|
else: |
300 |
|
#print('ha pinchado en no') |
301 |
|
pass |
302 |
|
finally: |
303 |
|
dlg.Destroy() |
304 |
|
|
305 |
|
|
306 |
def OnTcnavegadorTreeItemActivated(self, event): |
def OnTcnavegadorTreeItemActivated(self, event): |
307 |
nodo=self.tCNavegador.GetSelection() |
nodo=self.tCNavegador.GetSelection() |
308 |
if not(self.tCNavegador.ItemHasChildren(nodo)): |
datos = self.tCNavegador.GetPyData(nodo) |
309 |
fichero=self.tCNavegador.GetPyData(nodo) |
if not (datos == "zona") and not (datos == "raiz") and not (datos == "Salas" ) and not (datos == "Objetos" ) and not (datos == "PNJ" ): |
310 |
self.padre.AbrirSala(fichero) |
self.padre.AbrirSala(datos) |
311 |
event.Skip() |
event.Skip() |
312 |
|
|
313 |
def OnFrarbolSize(self, event): |
def OnFrarbolSize(self, event): |