First working version

git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@28 014f5005-505e-4b48-8d0a-63407b615a7c
master
LtWorf 2008-07-24 13:02:59 +07:00
parent 18a986605f
commit d9565654a5
1 changed files with 32 additions and 10 deletions

@ -10,20 +10,41 @@
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
import relation import relation
import parser import parser
import traceback
import sys
class Ui_Form(object): class Ui_Form(object):
def __init__(self): def __init__(self):
self.relations={} #Dictionary for relations self.relations={} #Dictionary for relations
def execute(self): def execute(self):
self.txtQuery.text() try:
expr=parser.parse(self.txtQuery.text()) #Converting string to utf8 and then from qstring to normal string
result=eval(expr,self.relations) query=str(self.txtQuery.text().toUtf8())
if len(self.txtResult.text())!=0: expr=parser.parse(query)
self.relations[showAttributes]=result print query, expr
result=eval(expr,self.relations)
res_rel=str(self.txtResult.text())#result relation's name
if len(res_rel)==0:
res_rel="last_"
self.relations[res_rel]=result
self.updateRelations() self.updateRelations()
self.showRelation(result)
self.showRelation(result)
except:
print
#QtGui.QMessageBox.information(None,QtGui.QApplication.translate("Form", "Error"), str(traceback.print_exc()))
def showRelation(self,rel): def showRelation(self,rel):
self.table.clear() self.table.clear()
for i in range(self.table.headerItem().columnCount()):
self.table.headerItem().setText(i,"")
if rel==None:
self.table.headerItem().setText(0,"Empty relation")
return
for i in range(len(rel.header.attributes)): for i in range(len(rel.header.attributes)):
self.table.headerItem().setText(i,rel.header.attributes[i]) self.table.headerItem().setText(i,rel.header.attributes[i])
@ -35,11 +56,11 @@ class Ui_Form(object):
def printRelation(self,*rel): def printRelation(self,*rel):
for i in rel: for i in rel:
self.showRelation(self.relations[i.text()]) self.showRelation(self.relations[str(i.text().toUtf8())])
def showAttributes(self,*other): def showAttributes(self,*other):
for i in other: for i in other:
rel=i.text() rel=str(i.text().toUtf8())
self.lstAttributes.clear() self.lstAttributes.clear()
for j in self.relations[rel].header.attributes: for j in self.relations[rel].header.attributes:
self.lstAttributes.addItem (j) self.lstAttributes.addItem (j)
@ -50,7 +71,7 @@ class Ui_Form(object):
self.lstRelations.addItem(i) self.lstRelations.addItem(i)
def unloadRelation(self): def unloadRelation(self):
for i in self.lstRelations.selectedItems(): for i in self.lstRelations.selectedItems():
del self.relations[i.text()] del self.relations[i.text().toUtf8()]
self.updateRelations() self.updateRelations()
def showAbout(self): def showAbout(self):
QtGui.QMessageBox.information(None,QtGui.QApplication.translate("Form", "About"), QtGui.QMessageBox.information(None,QtGui.QApplication.translate("Form", "About"),
@ -60,7 +81,7 @@ class Ui_Form(object):
if res[1]==False: if res[1]==False:
return return
filename = QtGui.QFileDialog.getOpenFileName(None,QtGui.QApplication.translate("Form", "Load Relation"),"",QtGui.QApplication.translate("Form", "Relations (*.tlb);;Text Files (*.txt);;All Files (*)")) filename = QtGui.QFileDialog.getOpenFileName(None,QtGui.QApplication.translate("Form", "Load Relation"),"",QtGui.QApplication.translate("Form", "Relations (*.tlb);;Text Files (*.txt);;All Files (*)"))
self.relations[res[0]]=relation.relation(filename) self.relations[str(res[0].toUtf8())]=relation.relation(filename)
self.updateRelations() self.updateRelations()
def addProduct(self): def addProduct(self):
@ -169,6 +190,7 @@ class Ui_Form(object):
self.table.setAlternatingRowColors(True) self.table.setAlternatingRowColors(True)
self.table.setRootIsDecorated(False) self.table.setRootIsDecorated(False)
self.table.setObjectName("table") self.table.setObjectName("table")
self.showRelation(None)
self.horizontalLayout_4.addWidget(self.table) self.horizontalLayout_4.addWidget(self.table)
self.verticalLayout_3 = QtGui.QVBoxLayout() self.verticalLayout_3 = QtGui.QVBoxLayout()
self.verticalLayout_3.setObjectName("verticalLayout_3") self.verticalLayout_3.setObjectName("verticalLayout_3")