##// END OF EJS Templates
Busqueda de archivos dentro del directorio indicado (sin busqueda de subdirectorios) activando el flag de lectura 'walk'
Busqueda de archivos dentro del directorio indicado (sin busqueda de subdirectorios) activando el flag de lectura 'walk'

File last commit:

r208:f0e2ebb4337f
r224:b8cf5fb6064c
Show More
mainwindow.py
1033 lines | 34.8 KiB | text/x-python | PythonLexer
# -*- coding: utf-8 -*-
"""
Module implementing MainWindow.
#+ ######################INTERFAZ DE USUARIO V1.1##################
"""
from PyQt4.QtGui import QMainWindow
from PyQt4.QtCore import pyqtSignature
from PyQt4.QtCore import pyqtSignal
from PyQt4 import QtCore
from PyQt4 import QtGui
from timeconversions import Doy2Date
from modelProperties import person_class
from modelProperties import TreeItem
from viewer.ui_window import Ui_window
from viewer.ui_mainwindow import Ui_MainWindow
from viewer.ui_workspace import Ui_Workspace
from viewer.ui_initwindow import Ui_InitWindow
from controller1 import Project,ReadBranch,ProcBranch,UP,UPSUB,UP2SUB,Operation,Parameter
import os
HORIZONTAL_HEADERS = ("ITEM :"," DATOS : " )
HORIZONTAL = ("RAMA :",)
class MainWindow(QMainWindow, Ui_MainWindow):
"""
Class documentation goes here.
#*##################VENTANA CUERPO DEL PROGRAMA####################
"""
closed=pyqtSignal()
def __init__(self, parent = None):
"""
Constructor
1-CARGA DE ARCHIVOS DE CONFIGURACION SI EXISTIERA.SI EXISTE EL ARCHIVO PROYECT.xml
2- ESTABLECE CIERTOS PARAMETROS PARA PRUEBAS
3- CARGA LAS VARIABLES DE LA CLASE CON LOS PARAMETROS SELECCIONADOS
4-VALIDACION DE LA RUTA DE LOS DATOS Y DEL PROYECTO
5-CARGA LOS DOYS ENCONTRADOS PARA SELECCIONAR EL RANGO
6-CARGA UN PROYECTO
"""
print "Inicio de Programa"
QMainWindow.__init__(self, parent)
self.setupUi(self)
QtGui.QToolTip.setFont(QtGui.QFont('SansSerif', 10))
self.addoBtn.setToolTip('Add_Unit_Process')
self.addbBtn.setToolTip('Add_Branch')
self.addpBtn.setToolTip('Add_New_Project')
self.ventanaproject=0
self.var=0
self.variableList=[] # Lista de DOYs
self.iniciodisplay=0
self.year=0
self.OpMode=0
self.starTem=0
self.endTem=0
#*###################1########################
if os.path.isfile("Proyect.xml"):
self.getParam()
self.textedit.append("Parameters were loaded from configuration file")
#*###################2########################
else:
self.setParam()
#*###################3#########################
self.setVariables()
#*###################4#########################
self.statusDpath = self.existDir(self.dataPath)
#self.statusRpath = self.dir_exists(self.var_Rpath, self)
#*###################5 ########################
self.loadYears()
self.loadDays()
#================================
self.model = QtGui.QStandardItemModel()
self.treeView.setModel(self.model)
self.treeView.clicked.connect(self.treefunction1)
#==========Project==========#
self.projectObjList= []
self.ProjectObj=0
self.Pro=0
self.proObjList=[]
self.valuep=1
self.namep=0
self.idp=0
self.refresh=0
self.countBperPObjList= []
#===========Branch==========#
self.branchObjList=[]
self.BranchObj=0
self.braObjList=[]
self.Bra=0
self.idb=0
self.nameb=0
self.countVperBObjList= []
#===========Voltage==========#
self.voltageObjList=[]
self.VoltageObj=0
self.Vol=0
self.volObjList=[]
self.idv=0
self.namev=0
#===========Spectra==========#
self.spectraObjList=[]
self.SpectraObj=0
self.Spec=0
self.specObjList=[]
self.ids=0
self.names=0
#===========Correlation==========#
self.correlationObjList=[]
self.CorrelationObj=0
self.Cor=0
self.corObjList=[]
self.idc=0
self.namec=0
self.datatype=0
#=================
#self.window=Window()
self.Workspace=Workspace()
#self.DataType=0
#*###################
def treefunction1(self, index):
a= index.model().itemFromIndex(index).text()
print a
b=a[8:10]
self.valuep=b
c=a[0:7]
self.namep=c
# def ventanaconfigura(self):
# '''
# METODO QUE SE ENCARGA DE LLAMAR A LA CLASE
# VENTANA CONFIGURACION DE PROYECTO
# '''
# self.Luna =Workspace(self)
# self.Luna.closed.connect(self.show)
# self.Luna.show()
# self.hide()
# def closeEvent(self, event):
# self.closed.emit()
# event.accept()
#+######################BARRA DE MENU###################
# *####################MENU FILE #########################
@pyqtSignature("")
def on_actionabrirObj_triggered(self):
"""
Ubicado en la Barra de Menu, OPCION FILE, CARGA UN ARCHIVO DE CONFIGURACION ANTERIOR
"""
# TODO: not implemented yet
#raise NotImplementedError
@pyqtSignature("")
def on_actioncrearObj_triggered(self):
"""
CREACION DE UN NUEVO EXPERIMENTO
"""
self.on_addpBtn_clicked()
@pyqtSignature("")
def on_actionguardarObj_triggered(self):
"""
GUARDAR EL ARCHIVO DE CONFIGURACION XML
"""
# TODO: not implemented yet
#raise NotImplementedError
self.SaveConfig()
@pyqtSignature("")
def on_actionCerrarObj_triggered(self):
"""
CERRAR LA APLICACION GUI
"""
self.close()
#*######################### MENU RUN ##################
@pyqtSignature("")
def on_actionStartObj_triggered(self):
"""
EMPEZAR EL PROCESAMIENTO.
"""
# TODO: not implemented yet
#raise NotImplementedErr
@pyqtSignature("")
def on_actionPausaObj_triggered(self):
"""
PAUSAR LAS OPERACIONES
"""
# TODO: not implemented yet
# raise NotImplemente
#*###################MENU OPTIONS######################
@pyqtSignature("")
def on_actionconfigLogfileObj_triggered(self):
"""
Slot Documentation goes here
"""
self.Luna = Workspace(self)
#print self.Luna.dirCmbBox.currentText()
@pyqtSignature("")
def on_actionconfigserverObj_triggered(self):
"""
CONFIGURACION DE SERVIDOR.
"""
# TODO: not implemented yet
#raise NotImplementedError
#*################# MENU HELPS##########################
@pyqtSignature("")
def on_actionAboutObj_triggered(self):
"""
Slot documentation goes here.
"""
# TODO: not implemented yet
#raise NotImplementedError
@pyqtSignature("")
def on_actionPrfObj_triggered(self):
"""
Slot documentation goes here.
"""
# TODO: not implemented yet
#raise NotImplementedError
#+##################################################
@pyqtSignature("")
def on_actionOpenObj_triggered(self):
"""
Slot documentation goes here.
"""
# TODO: not implemented yet
#raise No
@pyqtSignature("")
def on_actioncreateObj_triggered(self):
"""
Slot documentation goes here.
"""
self.on_addpBtn_clicked()
@pyqtSignature("")
def on_actionstopObj_triggered(self):
"""
CARGA UN ARCHIVO DE CONFIGURACION ANTERIOR
"""
# TODO: not implemented yet
#raise NotImplementedError
@pyqtSignature("")
def on_actionPlayObj_triggered(self):
"""
EMPEZAR EL PROCESAMIENTO.
"""
# TODO: not implemented yet
#raise NotImplementedError
#*################VENTANA EXPLORADOR DE PROYECTOS######################
@pyqtSignature("")
def on_addpBtn_clicked(self):
"""
AADIR UN NUEVO PROYECTO
"""
self.windowshow()
self.idp += 1
self.Pro=Project()
self.proObjList.append(self.Pro)
self.parentItem=self.model.invisibleRootItem()
self.ProjectObj = QtGui.QStandardItem(QtCore.QString("Project %0").arg(self.idp))
self.parentItem.appendRow(self.ProjectObj)
self.projectObjList.append(self.ProjectObj)
self.parentItem=self.ProjectObj
@pyqtSignature("")
def on_addbBtn_clicked(self):
"""
AÑADIR UNA RAMA DE PROCESAMIENTO
"""
#print self.valuep
#print self.namep
#print self.valueb
#if self.namep ==str("Project"):
self.idb += 1
self.Bra=self.proObjList[int(self.valuep)-1].addProcBranch(id=self.idb,name='Branch')
self.braObjList.append(self.Bra)
self.parentItem=self.projectObjList[int(self.valuep)-1]
#=
self.countBperPObjList.append(self.valuep)
# LisBperP=self.countBperPObjList
self.BranchObj= QtGui.QStandardItem(QtCore.QString("Branch %1 ").arg(self.idb))
self.parentItem.appendRow(self.BranchObj)
self.branchObjList.append(self.BranchObj)
self.parentItem=self.BranchObj
@pyqtSignature("")
def on_addoBtn_clicked(self):
"""
AÑADIR UN TIPO DE PROCESAMIENTO.
"""
if self.namep ==str("Project"):
self.totalTree()
#=====================
if self.namep ==str("Voltage"):
self.ids += 1
self.Spec=self.volObjList[int(self.valuep)-1].addUPSUB(id=self.ids, name='Spectra', type='Pri')
self.specObjList.append(self.Spec)
self.parentItem=self.voltageObjList[int(self.valuep)-1]
self.SpectraObj= QtGui.QStandardItem(QtCore.QString("Spectra %2").arg(self.ids))
self.parentItem.appendRow(self.SpectraObj)
self.spectraObjList.append(self.SpectraObj)
self.parentItem=self.SpectraObj
if self.namep ==str("Spectra"):
self.idc += 1
self.Cor=self.specObjList[int(self.valuep)-1].addUP2SUB(id=self.idc, name='Correlation', type='Pri')
self.corObjList.append(self.Cor)
self.parentItem=self.spectraObjList[int(self.valuep)-1]
self.CorrelationObj= QtGui.QStandardItem(QtCore.QString("Correlation %3").arg(self.idc))
self.parentItem.appendRow(self.CorrelationObj)
self.correlationObjList.append(self.CorrelationObj)
self.parentItem=self.CorrelationObj
if self.namep == str("Branch "):
if self.DataType== str("r"):
self.idv += 1
if len(self.valuep)==0:
print "construir rama"
else:
self.Vol=self.braObjList[int(self.valuep)-1].addUP(id=self.idv, name='Voltage', type='Pri')
self.volObjList.append(self.Vol)
self.parentItem=self.branchObjList[int(self.valuep)-1]
self.VoltageObj= QtGui.QStandardItem(QtCore.QString("Voltage %2").arg(self.idv))
self.parentItem.appendRow(self.VoltageObj)
self.voltageObjList.append(self.VoltageObj)
self.parentItem=self.VoltageObj
if self.DataType== str("pdata"):
self.ids += 1
if len(self.valuep)==0:
print "construir rama"
else:
self.Spec=self.braObjList[int(self.valuep)-1].addUPSUB(id=self.ids, name='Spectra', type='Pri')
self.specObjList.append(self.Spec)
self.parentItem=self.branchObjList[int(self.valuep)-1]
self.SpectraObj= QtGui.QStandardItem(QtCore.QString("Spectra %2").arg(self.ids))
self.parentItem.appendRow(self.SpectraObj)
self.spectraObjList.append(self.SpectraObj)
self.parentItem=self.SpectraObj
def totalTree(self):
b= self.proObjList[int(self.valuep)-1]
b.procBranchObjList # Objetos de tipo Branch
print "Project"+str(self.valuep) +"Branch",
for i in range(0 , len(b.procBranchObjList)):
print b.procBranchObjList[i].id, #objetos de tipo branch 1,2,3 o 4,5 o 6
print ""
for i in range(0 , len(b.procBranchObjList)):
print "Branch"+ str(b.procBranchObjList[i].id)
for i in range(0 , len(b.procBranchObjList)):
print b.procBranchObjList[i].id
c= self.braObjList[(b.procBranchObjList[i].id)-1]
c.upsubObjList
for i in range(0,len(c.upsubObjList)):
print "Spectra"+str(c.upsubObjList[i].id),
#*********************VENTANA CONFIGURACION DE PROYECTOS************************************
#***********************PESTAÑA DE PROYECTOS************************
#*************************MODO BASICO O AVANZADO*****************
@pyqtSignature("QString")
def on_operationModeCmbBox_activated(self, p0):
"""
Slot documentation goes here.
"""
pass
#***********************TIPOS DE DATOS A GRABAR******************************
@pyqtSignature("int")
def on_dataFormatCmbBox_activated(self,index):
"""
SE EJECUTA CUANDO SE ELIGE UN ITEM DE LA LISTA
ADEMAS SE CARGA LA LISTA DE DIAS SEGUN EL TIPO DE ARCHIVO SELECCIONADO
"""
self.dataFormatTxt.setReadOnly(True)
if index == 0:
self.DataType ='r'
elif index == 1:
self.DataType ='pdata'
else :
self.DataType =''
self.dataFormatTxt.setReadOnly(False)
self.dataFormatTxt.setText(self.DataType)
# self.loadDays(self)
@pyqtSignature("")
def on_dataPathBrowse_clicked(self):
"""
OBTENCION DE LA RUTA DE DATOS
"""
self.dataPath = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
self.dataPathTxt.setText(self.dataPath)
self.statusDpath=self.existDir(self.dataPath)
self.loadYears()
self.loadDays()
@pyqtSignature("int")
def on_starDateCmbBox_activated(self, index):
"""
SELECCION DEL RANGO DE FECHAS -STAR DATE
"""
var_StopDay_index=self.endDateCmbBox.count() - self.endDateCmbBox.currentIndex()
self.endDateCmbBox.clear()
for i in self.variableList[index:]:
self.endDateCmbBox.addItem(i)
self.endDateCmbBox.setCurrentIndex(self.endDateCmbBox.count() - var_StopDay_index)
self.getsubList()
@pyqtSignature("int")
def on_endDateCmbBox_activated(self, index):
"""
SELECCION DEL RANGO DE FECHAS-END DATE
"""
var_StartDay_index=self.starDateCmbBox.currentIndex()
var_end_index = self.endDateCmbBox.count() - index
self.starDateCmbBox.clear()
for i in self.variableList[:len(self.variableList) - var_end_index + 1]:
self.starDateCmbBox.addItem(i)
self.starDateCmbBox.setCurrentIndex(var_StartDay_index)
self.getsubList() #Se carga var_sublist[] con el rango de las fechas seleccionadas
@pyqtSignature("QString")
def on_readModeCmBox_activated(self, p0):
"""
Slot documentation goes here.
"""
print self.readModeCmBox.currentText()
@pyqtSignature("int")
def on_initialTimeSlider_valueChanged(self, initvalue):
"""
SELECCION DE LA HORA DEL EXPERIMENTO -INITIAL TIME
"""
self.iniciodisplay=initvalue
self.initialtimeLcd.display(initvalue)
self.starTem=initvalue
@pyqtSignature("int")
def on_finalTimeSlider_valueChanged(self, finalvalue):
"""
SELECCION DE LA HORA DEL EXPERIMENTO -FINAL TIME
"""
finalvalue = self.iniciodisplay + finalvalue
if finalvalue >24:
finalvalue = 24
self.finaltimeLcd.display(finalvalue)
self.endTem=finalvalue
@pyqtSignature("QString")
def on_yearCmbBox_activated(self, year):
"""
SELECCION DEL AÑO
"""
self.year = year
#print self.year
@pyqtSignature("")
def on_dataCancelBtn_clicked(self):
"""
SAVE- BUTTON CANCEL
"""
# TODO: not implemented yet
#raise NotImplementedError
@pyqtSignature("")
def on_dataOkBtn_clicked(self):
"""
SAVE-BUTTON OK
"""
#print self.ventanaproject.almacena()
print "alex"
print self.Workspace.dirCmbBox.currentText()
self.model_2=treeModel()
#lines = unicode(self.textEdit_2.toPlainText()).split('\n')
#print lines
if self.ventanaproject.almacena()==None:
name=str(self.namep)
name=str(self.ventanaproject.almacena())
self.model_2.setParams(name=name,
directorio=str(self.dataPathTxt.text()),
workspace=str(self.Workspace.dirCmbBox.currentText()),
opmode=str(self.operationModeCmbBox.currentText()),
remode=str(self.readModeCmBox.currentText()),
dataformat=str(self.dataFormatTxt.text()),
date=str(self.starDateCmbBox.currentText())+"-"+str(self.endDateCmbBox.currentText()),
initTime=str( self.starTem),
endTime=str(self.endTem),
timezone="Local" )
# Summary=str(self.textEdit_2.textCursor()))
self.model_2.arbol()
self.treeView_2.setModel(self.model_2)
self.treeView_2.expandAll()
#*############METODOS PARA EL PATH-YEAR-DAYS###########################
def existDir(self, var_dir):
"""
METODO PARA VERIFICAR SI LA RUTA EXISTE-VAR_DIR
VARIABLE DIRECCION
"""
if os.path.isdir(var_dir):
return True
else:
self.textEdit.append("Incorrect path:" + str(var_dir))
return False
def loadYears(self):
"""
METODO PARA SELECCIONAR EL AÑO
"""
self.variableList=[]
self.yearCmbBox.clear()
if self.statusDpath == False:
self.dataOkBtn.setEnabled(False)
return
if self.DataType == '':
return
Dirlist = os.listdir(self.dataPath)
for y in range(0, len(Dirlist)):
fyear= Dirlist[y]
fyear = fyear[1:5]
Dirlist[y]=fyear
Dirlist=list(set(Dirlist))
Dirlist.sort()
if len(Dirlist) == 0:
self.textEdit.append("File not found")
self.dataOkBtn.setEnabled(False)
return
#Se cargan las listas para seleccionar StartDay y StopDay (QComboBox)
for i in range(0, (len(Dirlist))):
self.variableList.append(Dirlist[i])
for i in self.variableList:
self.yearCmbBox.addItem(i)
def loadDays(self):
"""
METODO PARA CARGAR LOS DIAS
"""
self.variableList=[]
self.starDateCmbBox.clear()
self.endDateCmbBox.clear()
Dirlist = os.listdir(self.dataPath)
Dirlist.sort()
for a in range(0, len(Dirlist)):
fname= Dirlist[a]
Doy=fname[5:8]
fname = fname[1:5]
print fname
fecha=Doy2Date(int(fname),int(Doy))
fechaList=fecha.change2date()
#print fechaList[0]
Dirlist[a]=fname+"-"+str(fechaList[0])+"-"+str(fechaList[1])
#+"-"+ fechaList[0]+"-"+fechaList[1]
#---------------AQUI TIENE QUE SER MODIFICADO--------#
#Se cargan las listas para seleccionar StartDay y StopDay (QComboBox)
for i in range(0, (len(Dirlist))):
self.variableList.append(Dirlist[i])
for i in self.variableList:
self.starDateCmbBox.addItem(i)
self.endDateCmbBox.addItem(i)
self.endDateCmbBox.setCurrentIndex(self.starDateCmbBox.count()-1)
self.getsubList()
self.dataOkBtn.setEnabled(True)
def getsubList(self):
"""
OBTIENE EL RANDO DE LAS FECHAS SELECCIONADAS
"""
self.subList=[]
for i in self.variableList[self.starDateCmbBox.currentIndex():self.starDateCmbBox.currentIndex() + self.endDateCmbBox.currentIndex()+1]:
self.subList.append(i)
#*################ METODO PARA GUARDAR ARCHIVO DE CONFIGURACION #################
# def SaveConfig(self):
#
# desc = "Este es un test"
# filename=str(self.workspace.dirCmbBox.currentText())+"\\"+"Config"+str(self.valuep)+".xml"
# projectObj=self.proObjList[int(self.valuep)-1]
# projectObj.setParms(id =int(self.valuep),name=str(self.namep),description=desc)
# print self.valuep
# print self.namep
#
# readBranchObj = projectObj.addReadBranch(id=str(self.valuep),
# dpath=str(self.dataPathTxt.text()),
# dataformat=str(self.dataFormatTxt.text()),
# opMode=str(self.operationModeCmbBox.currentText()),
# readMode=str(self.readModeCmBox.currentText()),
# startDate=str(self.starDateCmbBox.currentText()),
# endDate=str(self.endDateCmbBox.currentText()),
# startTime=str(self.starTem),
# endTime=str(self.endTem))
#
#
# branchNumber= len(projectObj.procBranchObjList) #Numero de Ramas
# #=======================readBranchObj==============
# for i in range(0,branchNumber):
# projectObj.procBranchObjList[i]
# idb=projectObj.procBranchObjList[i].id
# # opObjTotal={}
#
# for j in range(0,branchNumber):
# idb=projectObj.procBranchObjList[j].id
# branch=self.braObjList[(idb)-1]
# branch.upObjList
# volNumber=len(branch.upObjList)
# for i in range(0,volNumber):
# unitProcess=branch.upObjList[i]
# idv=branch.upObjList[i].id
#
# opObj11 = unitProcess.addOperation(id=1,name='removeDC', priority=1)
# opObj11.addParameter(name='type', value='1')
# opObj2 = unitProcess.addOperation(id=2,name='removeInterference', priority=1)
# opObj3 = unitProcess.addOperation(id=3,name='removeSatelites', priority=1)
# opObj4 = unitProcess.addOperation(id=4,name='coherent Integration', priority=1)
#
# projectObj.writeXml(filename)
#
#*############METODOS PARA INICIALIZAR-CONFIGURAR-CARGAR ARCHIVO-CARGAR VARIABLES########################
def setParam(self):
"""
INICIALIZACION DE PARAMETROS PARA PRUEBAS
"""
#self.dataProyectTxt.setText('Test')
self.dataFormatTxt.setText('r')
self.dataPathTxt.setText('C:\\Users\\alex\\Documents\\ROJ\\ew_drifts')
self.dataWaitTxt.setText('0')
def make_parameters_conf(self):
"""
ARCHIVO DE CONFIGURACION cCRA parameters.conf
"""
pass
def getParam(self):
"""
CARGA Proyect.xml
"""
print "Archivo XML AUN No adjuntado"
def setVariables(self):
"""
ACTUALIZACION DEL VALOR DE LAS VARIABLES CON LOS PARAMETROS SELECCIONADOS
"""
self.dataPath = str(self.dataPathTxt.text()) #0
self.DataType= str(self.dataFormatTxt.text()) #3
def windowshow(self):
self.ventanaproject= Window(self)
self.ventanaproject.closed.connect(self.show)
self.ventanaproject.show()
# self.window()
# self.window.closed.connect(self.show)
# self.window.show()
#self.hide()
def closeEvent(self, event):
self.closed.emit()
event.accept()
class treeModel(QtCore.QAbstractItemModel):
'''
a model to display a few names, ordered by encabezado
'''
name=None
directorio=None
workspace=None
opmode=None
remode=None
dataformat=None
date=None
initTime=None
endTime=None
timezone=None
#Summary=None
def __init__(self ,parent=None):
super(treeModel, self).__init__(parent)
self.people = []
def arbol(self):
for caracteristica,principal, descripcion in (("Properties","Name",self.name),
("Properties","Data Path",self.directorio),
("Properties","Workspace",self.workspace),
("Properties","Operation Mode ",self.opmode),
("Parameters", "Read Mode ",self.remode),
("Parameters", "DataFormat ",self.dataformat),
("Parameters", "Date ",self.date),
("Parameters", "Init Time ",self.initTime),
("Parameters", "Final Time ",self.endTime),
("Parameters", " Time zone ",self.timezone),
("Parameters", "Profiles ","1"),
# ("Description", "Summary ", self.Summary),
):
person = person_class(caracteristica, principal, descripcion)
self.people.append(person)
self.rootItem = TreeItem(None, "ALL", None)
self.parents = {0 : self.rootItem}
self.setupModelData()
#def veamos(self):
# self.update= MainWindow(self)
# self.update.dataProyectTxt.text()
# return self.update.dataProyectTxt.text()
def setParams(self,name,directorio,workspace,opmode,remode,dataformat,date,initTime,endTime,timezone):
self.name=name
self.workspace=workspace
self.directorio= directorio
self.opmode=opmode
self.remode=remode
self.dataformat=dataformat
self.date=date
self.initTime=initTime
self.endTime=endTime
self.timezone=timezone
#self.Summary=Summary
def columnCount(self, parent=None):
if parent and parent.isValid():
return parent.internalPointer().columnCount()
else:
return len(HORIZONTAL_HEADERS)
def data(self, index, role):
if not index.isValid():
return QtCore.QVariant()
item = index.internalPointer()
if role == QtCore.Qt.DisplayRole:
return item.data(index.column())
if role == QtCore.Qt.UserRole:
if item:
return item.person
return QtCore.QVariant()
def headerData(self, column, orientation, role):
if (orientation == QtCore.Qt.Horizontal and
role == QtCore.Qt.DisplayRole):
try:
return QtCore.QVariant(HORIZONTAL_HEADERS[column])
except IndexError:
pass
return QtCore.QVariant()
def index(self, row, column, parent):
if not self.hasIndex(row, column, parent):
return QtCore.QModelIndex()
if not parent.isValid():
parentItem = self.rootItem
else:
parentItem = parent.internalPointer()
childItem = parentItem.child(row)
if childItem:
return self.createIndex(row, column, childItem)
else:
return QtCore.QModelIndex()
def parent(self, index):
if not index.isValid():
return QtCore.QModelIndex()
childItem = index.internalPointer()
if not childItem:
return QtCore.QModelIndex()
parentItem = childItem.parent()
if parentItem == self.rootItem:
return QtCore.QModelIndex()
return self.createIndex(parentItem.row(), 0, parentItem)
def rowCount(self, parent=QtCore.QModelIndex()):
if parent.column() > 0:
return 0
if not parent.isValid():
p_Item = self.rootItem
else:
p_Item = parent.internalPointer()
return p_Item.childCount()
def setupModelData(self):
for person in self.people:
if person.descripcion:
encabezado = person.caracteristica
if not self.parents.has_key(encabezado):
newparent = TreeItem(None, encabezado, self.rootItem)
self.rootItem.appendChild(newparent)
self.parents[encabezado] = newparent
parentItem = self.parents[encabezado]
newItem = TreeItem(person, "", parentItem)
parentItem.appendChild(newItem)
def searchModel(self, person):
'''
get the modelIndex for a given appointment
'''
def searchNode(node):
'''
a function called recursively, looking at all nodes beneath node
'''
for child in node.childItems:
if person == child.person:
index = self.createIndex(child.row(), 0, child)
return index
if child.childCount() > 0:
result = searchNode(child)
if result:
return result
retarg = searchNode(self.parents[0])
#print retarg
return retarg
def find_GivenName(self, principal):
app = None
for person in self.people:
if person.principal == principal:
app = person
break
if app != None:
index = self.searchModel(app)
return (True, index)
return (False, None)
class Workspace(QMainWindow, Ui_Workspace):
"""
Class documentation goes here.
"""
closed=pyqtSignal()
def __init__(self, parent = None):
"""
Constructor
"""
QMainWindow.__init__(self, parent)
self.setupUi(self)
#*####### DIRECTORIO DE TRABAJO #########*#
self.dirCmbBox.setItemText(0, QtGui.QApplication.translate("MainWindow", "C:\WorkSpaceGui", None, QtGui.QApplication.UnicodeUTF8))
self.dir=str("C:\WorkSpaceGui")
self.dirCmbBox.addItem(self.dir)
@pyqtSignature("")
def on_dirBrowsebtn_clicked(self):
"""
Slot documentation goes here.
"""
self.dirBrowse = str(QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', './', QtGui.QFileDialog.ShowDirsOnly))
self.dirCmbBox.addItem(self.dirBrowse)
@pyqtSignature("")
def on_dirButton_clicked(self):
"""
Slot documentation goes here.
"""
@pyqtSignature("")
def on_dirOkbtn_clicked(self):
"""
VISTA DE INTERFAZ GRÁFICA
"""
self.showmemainwindow()
@pyqtSignature("")
def on_dirCancelbtn_clicked(self):
"""
Cerrar
"""
self.close()
def showmemainwindow(self):
self.Dialog= MainWindow(self)
self.Dialog.closed.connect(self.show)
self.Dialog.show()
self.hide()
def closeEvent(self, event):
self.closed.emit()
event.accept()
class InitWindow(QMainWindow, Ui_InitWindow):
"""
Class documentation goes here.
"""
def __init__(self, parent = None):
"""
Constructor
"""
QMainWindow.__init__(self, parent)
self.setupUi(self)
@pyqtSignature("")
def on_pushButton_2_clicked(self):
"""
Close First Window
"""
self.close()
@pyqtSignature("")
def on_pushButton_clicked(self):
"""
Show Workspace Window
"""
self.showmeconfig()
def showmeconfig(self):
'''
Method to call Workspace
'''
self.config=Workspace(self)
self.config.closed.connect(self.show)
self.config.show()
self.hide()
class Window(QMainWindow, Ui_window):
"""
Class documentation goes here.
"""
closed=pyqtSignal()
def __init__(self, parent = None):
"""
Constructor
"""
QMainWindow.__init__(self, parent)
self.setupUi(self)
self.name=0
self.nameproject=None
@pyqtSignature("")
def on_cancelButton_clicked(self):
"""
Slot documentation goes here.
"""
# TODO: not implemented yet
#raise NotImplementedError
self.hide()
@pyqtSignature("")
def on_okButton_clicked(self):
"""
Slot documentation goes here.
"""
# TODO: not implemented yet
#raise NotImplementedError
self.almacena()
print self.nameproject
self.close()
def almacena(self):
#print str(self.proyectNameLine.text())
self.nameproject=str(self.proyectNameLine.text())
return self.nameproject
def closeEvent(self, event):
self.closed.emit()
event.accept()