##// END OF EJS Templates
NOTAS:...
NOTAS: mainwindow: Ahora incluye a las clases unitprocess,window modelProperties: Se aumento la clase modelProperties y solo se llama ahora al modelo y al método necesario desde la clase mainwindow. controller: Se trabaja con el controller actualizado y se le añadio un atributo llamado arbol. ui_mainwindow: Se modificaron algunas opciones del GUI ,botones,checkbox,textlabel ui_unitprocess: Se agrego la clase ui_unitprocess para agregar unidades de procesamiento ui_window: Se modifico la ventana ui_window

File last commit:

r235:47f976225757
r235:47f976225757
Show More
modelProperties.py
240 lines | 7.9 KiB | text/x-python | PythonLexer
from PyQt4 import QtCore
HORIZONTAL_HEADERS = ("ITEM :"," DATOS : " )
HORIZONTAL = ("RAMA :",)
class treeModel(QtCore.QAbstractItemModel):
'''
a model to display a few names, ordered by encabezado
'''
name=None
directorio=None
workspace=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),
("Parameters", "Read Mode ",self.remode),
("Parameters", "DataType ",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,remode,dataformat,date,initTime,endTime,timezone,Summary):
self.name=name
self.workspace=workspace
self.directorio= directorio
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 person_class(object):
'''
a trivial custom data object
'''
def __init__(self, caracteristica, principal, descripcion):
self.caracteristica = caracteristica
self.principal = principal
self.descripcion = descripcion
def __repr__(self):
return "PERSON - %s %s"% (self.principal, self.caracteristica)
class TreeItem(object):
'''
a python object used to return row/column data, and keep note of
it's parents and/or children
'''
def __init__(self, person, header, parentItem):
self.person = person
self.parentItem = parentItem
self.header = header
self.childItems = []
def appendChild(self, item):
self.childItems.append(item)
def child(self, row):
return self.childItems[row]
def childCount(self):
return len(self.childItems)
def columnCount(self):
return 2
def data(self, column):
if self.person == None:
if column == 0:
return QtCore.QVariant(self.header)
if column == 1:
return QtCore.QVariant("")
else:
if column == 0:
return QtCore.QVariant(self.person.principal)
if column == 1:
return QtCore.QVariant(self.person.descripcion)
return QtCore.QVariant()
def parent(self):
return self.parentItem
def row(self):
if self.parentItem:
return self.parentItem.childItems.index(self)
return 0