/tags/pyragua-0.2.5/pyragua/PanelProyecto.py – Pyragua

root/tags/pyragua-0.2.5/pyragua/PanelProyecto.py

Revision 390, 6.3 KB (checked in by ark, 2 years ago)

directorio faltante

Line 
1#-*- coding:iso8859-1 -*-
2"""
3Este archivo es parte de Pyragua
4
5Pyragua es software libre; lo puedes redistribuir y/o modificar
6bajo los terminos de la Licencia Publica General (GNU GPL) como fue
7publicada por la Free Software Foundation; cualquier versión 2 de la
8Licencia.
9
10Este programa es distribuido con la esperanza de que será útil,
11pero SIN GARANTIA ALGUNA; ni con la garantía explícita de
12MERCABILIDAD o de que SERVIRA PARA UN PROPOSITO EN PARTICULAR.
13Mire la Licencia Pública General de la GNU para más detalles.
14
15Debió recibir una copia de la Licencia Pública General de la GNU junto con
16este programa; sino, escriba a la Free Software Foundation,
17Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18"""
19
20import wx
21# Para i18n
22import gettext
23gettext.install("pyragua",unicode=1)
24_ = gettext.gettext
25
26class PanelProyecto(wx.Panel):
27    def __init__(self,*args,**kwargs):
28        wx.Panel.__init__(self,*args,**kwargs)
29       
30        self.nProyecto=wx.Notebook(self, -1,style =wx.BORDER_SUNKEN)
31       
32       
33        # oProyecto es una lista que guarda los lo que se le inserta al NoteBook
34        self.oProyecto=[]
35        # ProyectoName guarda los nombres de cada pestana esto es para luego darle soporte a otros idiomas
36        self.ProyectoName = []
37        # El agregar inserta Todo lo que va ir en el NoteBook
38        self.Agregar()
39        self.Layout()
40
41        self.Proyectos.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.OnRightClick)
42
43    def Layout(self):
44        sProyecto = wx.BoxSizer(wx.VERTICAL)
45        self.sProyecto = sProyecto
46        cont = 0
47        for i in self.oProyecto:
48            self.nProyecto.AddPage(i,self.ProyectoName[cont])
49            cont = cont +1
50        self.sProyecto.Add(self.nProyecto,1,wx.EXPAND,0)       
51        self.SetSizer(self.sProyecto)
52        self.SetAutoLayout(True)
53        self.sProyecto.Layout()
54
55    def Destroy(self):
56        event.Skip()   
57
58    def Agregar(self):
59        """Esto agrega el tree ctrl con todas sus propiedades"""
60        self.Proyectos = wx.TreeCtrl(self.nProyecto, -1, style=wx.TR_HAS_BUTTONS|wx.TR_DEFAULT_STYLE|wx.SUNKEN_BORDER  )#|wx.TR_HIDE_ROOT
61
62        # Creo las imagenes para los archivos del Tree Ctrl
63        TamImagenes = (16,16)
64        ListaImagenes = wx.ImageList(TamImagenes[0], TamImagenes[1])
65        FolderIco = ListaImagenes.Add(wx.ArtProvider_GetBitmap(wx.ART_FOLDER,      wx.ART_OTHER, TamImagenes))
66        FolderOpenIco = ListaImagenes.Add(wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN,   wx.ART_OTHER, TamImagenes))
67        self.ArchivosIco = ArchivosIco = ListaImagenes.Add(wx.ArtProvider_GetBitmap(wx.ART_NORMAL_FILE, wx.ART_OTHER, TamImagenes))
68        self.Proyectos.SetImageList(ListaImagenes)
69        self.ListaImagenes = ListaImagenes
70
71        #Aca agrega la raiz y le da la Propiedades
72        self.root = self.Proyectos.AddRoot("Proyectos")
73        self.Proyectos.SetPyData(self.root, None)
74        self.Proyectos.SetItemImage(self.root, FolderIco, wx.TreeItemIcon_Normal)
75        self.Proyectos.SetItemImage(self.root, FolderOpenIco, wx.TreeItemIcon_Expanded)
76        #Aca agrego los proyectos Abiertos
77        cProyectosAbiertos = self.Proyectos.AppendItem(self.root, "Proyectos Abiertos") # c es por que es un child de self.root
78        self.Proyectos.SetPyData(cProyectosAbiertos, None)
79        self.Proyectos.SetItemImage(cProyectosAbiertos, FolderIco, wx.TreeItemIcon_Normal)
80        self.Proyectos.SetItemImage(cProyectosAbiertos, FolderOpenIco, wx.TreeItemIcon_Expanded)
81        self.cProyectosAbiertos = cProyectosAbiertos
82        #Aca agrego los proyectos Cerrados
83        cProyectosCerrados = self.Proyectos.AppendItem(self.root, "Proyectos Cerrados")
84        self.Proyectos.SetPyData(cProyectosCerrados, None)
85        self.Proyectos.SetItemImage(cProyectosCerrados, FolderIco, wx.TreeItemIcon_Normal)
86        self.Proyectos.SetItemImage(cProyectosCerrados, FolderOpenIco, wx.TreeItemIcon_Expanded)
87        self.cProyectosCerrados = cProyectosCerrados
88        #Aca agrego para los arhivos individuales aviertos
89        cArchivos = self.Proyectos.AppendItem(self.root, "Archivos")
90        self.Proyectos.SetPyData(cArchivos, None)
91        self.Proyectos.SetItemImage(cArchivos, FolderIco, wx.TreeItemIcon_Normal)
92        self.Proyectos.SetItemImage(cArchivos, FolderOpenIco, wx.TreeItemIcon_Expanded)
93        self.cArchivos = cArchivos
94
95        self.Proyectos.Expand(self.root)   # expande el arbol
96        self.ProyectoName.append("Proyectos")
97        self.oProyecto.append(self.Proyectos)
98
99        """Esto agrega el Control de Directorio y sus propiedades"""
100        self.directorio = wx.GenericDirCtrl(self.nProyecto, -1,style=wx.DIRCTRL_SHOW_FILTERS,
101                                filter="All files (*.*)|*.*|Python files (*.py)|*.py")
102        self.ProyectoName.append("Examinar")
103        self.oProyecto.append(self.directorio)
104
105    def OnRightClick(self, event):
106        """Al presionar el Click derecho desplega un menu"""
107        self.popupMenuId = {}
108        menu = wx.Menu()
109        lista = ["Abrir","Cerrar"]
110        for i in lista:
111            self.popupMenuId[i] = wx.NewId()
112            menu.Append(self.popupMenuId[i], i)
113       
114        self.Bind(wx.EVT_MENU, self.AgregarArchivo, id=self.popupMenuId["Abrir"])
115        self.PopupMenu(menu)
116        menu.Destroy()
117
118    def AgregarProyecto(self,event):
119        NomProyecto = wx.TextEntryDialog(self, 'Cual es el nombre del proyecto','Agregar Proyecto', '')
120        if NomProyecto.ShowModal() == wx.ID_OK:
121            Proyecto = self.Proyectos.AppendItem(self.cProyectosAbiertos, 'sadsadjsla')
122            self.Proyectos.SetPyData(Proyecto, None)
123            self.Proyectos.SetItemImage(Proyecto, FolderIco, wx.TreeItemIcon_Normal)
124            self.Proyectos.SetItemImage(Proyecto, FolderOpenIco, wx.TreeItemIcon_Expanded)
125            self.Proyectos.Expand(self.cProyectosAbiertos)
126        NomProyecto.Destroy()
127
128    def AgregarArchivo(self,event):
129        NomArchivo = wx.TextEntryDialog(self, 'Cual es el nombre del archivo', 'Agregar Archivos', '')
130        if NomArchivo.ShowModal() == wx.ID_OK:
131            Archivos = self.Proyectos.AppendItem(self.cArchivos, 'sadsadjsla')
132            self.Proyectos.SetPyData(Archivos, None)
133            self.Proyectos.SetItemImage(Archivos, self.ArchivosIco, wx.TreeItemIcon_Normal)
134            #self.Proyectos.Expand(self.cArchivos)
135        NomArchivo.Destroy()
136
Note: See TracBrowser for help on using the browser.