From 2f8e604d0d732d6660fd684172db627005eeb8b0 Mon Sep 17 00:00:00 2001 From: LtWorf Date: Thu, 13 Oct 2011 18:44:20 +0000 Subject: [PATCH] - Can create relation classes from the table - Can add new relations and edit current ones, it apparently works git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@325 014f5005-505e-4b48-8d0a-63407b615a7c --- CHANGELOG | 1 + relational_gui/creator.py | 28 +++++++++++++++++++++++---- relational_gui/guihandler.py | 37 ++++++++++++++++++++++++++++++++---- relational_gui/maingui.py | 18 +++++++++--------- relational_gui/maingui.ui | 28 +++++++++++++-------------- relational_gui/survey.py | 2 +- relational_pyside/maingui.py | 18 +++++++++--------- relational_pyside/survey.py | 2 +- 8 files changed, 92 insertions(+), 42 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 0fd44f6..9fcf323 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -6,6 +6,7 @@ - Can check for new version online - Can use both PySide and PyQt - Removed buttons for adding and deleting tuples +- Can edit relations within the GUI 1.0 - Adds history in the GUI diff --git a/relational_gui/creator.py b/relational_gui/creator.py index 1b1e65d..187122d 100644 --- a/relational_gui/creator.py +++ b/relational_gui/creator.py @@ -21,7 +21,8 @@ try: from PyQt4 import QtCore, QtGui except: from PySide import QtCore, QtGui - + +import compatibility from relational import relation import rel_edit @@ -78,11 +79,30 @@ class creatorForm(QtGui.QDialog): self.table.setItem (0,1,i01) self.table.setItem (1,0,i10) self.table.setItem (1,1,i11) - - - + def create_relation(self): + hlist=[] + + for i in range(self.table.columnCount()): + hlist.append(compatibility.get_py_str(self.table.item(0,i).text())) + try: + header=relation.header(hlist) + except Exception, e: + QtGui.QMessageBox.information(None,QtGui.QApplication.translate("Form", "Error"),"%s\n%s" % (QtGui.QApplication.translate("Form", "Header error!"),e.__str__()) ) + + r=relation.relation() + r.header=header + + for i in range(1,self.table.rowCount()): + hlist=[] + for j in range(self.table.columnCount()): + hlist.append(compatibility.get_py_str(self.table.item(i,j).text())) + r.content.add(tuple(hlist)) + return r def accept(self): + + self.result_relation=self.create_relation() + QtGui.QDialog.accept(self) pass def reject(self): diff --git a/relational_gui/guihandler.py b/relational_gui/guihandler.py index 33e5cc2..081a029 100644 --- a/relational_gui/guihandler.py +++ b/relational_gui/guihandler.py @@ -165,14 +165,43 @@ class relForm(QtGui.QMainWindow): def editRelation(self): import creator for i in self.ui.lstRelations.selectedItems(): - self.relations[compatibility.get_py_str(i.text())]=creator.editRelation(self.relations[compatibility.get_py_str(i.text())]) + result=creator.editRelation(self.relations[compatibility.get_py_str(i.text())]) + if result!=None: + self.relations[compatibility.get_py_str(i.text())]=result self.updateRelations() def newRelation(self): import creator - creator.editRelation() - self.updateRelations() - #TODO chose name for the relation + result=creator.editRelation() + if result==None: + return + res=QtGui.QInputDialog.getText( + self, + QtGui.QApplication.translate("Form", "New relation"), + QtGui.QApplication.translate("Form", "Insert the name for the new relation"), + QtGui.QLineEdit.Normal,'') + if res[1]==False or len(res[0])==0: + return + + #Patch provided by Angelo 'Havoc' Puglisi + name=compatibility.get_py_str(res[0]) + + if not rtypes.is_valid_relation_name(name): + r=QtGui.QApplication.translate("Form", str("Wrong name for destination relation: %s." % name)) + QtGui.QMessageBox.information(self,QtGui.QApplication.translate("Form", "Error"),r) + return + + try: + self.relations[name]=result + except Exception, e: + print e + QtGui.QMessageBox.information(None,QtGui.QApplication.translate("Form", "Error"),"%s\n%s" % (QtGui.QApplication.translate("Form", "Check your query!"),e.__str__()) ) + return + + + self.updateRelations() + + def showSurvey(self): if self.Survey==None: self.Survey=surveyForm.surveyForm() diff --git a/relational_gui/maingui.py b/relational_gui/maingui.py index 4bddde4..58939cd 100644 --- a/relational_gui/maingui.py +++ b/relational_gui/maingui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'relational_gui/maingui.ui' # -# Created: Thu Oct 13 19:00:44 2011 +# Created: Thu Oct 13 20:42:44 2011 # by: PyQt4 UI code generator 4.8.3 # # WARNING! All changes made in this file will be lost! @@ -148,21 +148,21 @@ class Ui_MainWindow(object): self.lstRelations.setMaximumSize(QtCore.QSize(16777215, 16777215)) self.lstRelations.setObjectName(_fromUtf8("lstRelations")) self.verticalLayout.addWidget(self.lstRelations) + self.cmdNew = QtGui.QPushButton(self.groupBox) + self.cmdNew.setObjectName(_fromUtf8("cmdNew")) + self.verticalLayout.addWidget(self.cmdNew) self.cmdLoad = QtGui.QPushButton(self.groupBox) self.cmdLoad.setObjectName(_fromUtf8("cmdLoad")) self.verticalLayout.addWidget(self.cmdLoad) self.cmdSave = QtGui.QPushButton(self.groupBox) self.cmdSave.setObjectName(_fromUtf8("cmdSave")) self.verticalLayout.addWidget(self.cmdSave) - self.cmdUnload = QtGui.QPushButton(self.groupBox) - self.cmdUnload.setObjectName(_fromUtf8("cmdUnload")) - self.verticalLayout.addWidget(self.cmdUnload) - self.cmdNew = QtGui.QPushButton(self.groupBox) - self.cmdNew.setObjectName(_fromUtf8("cmdNew")) - self.verticalLayout.addWidget(self.cmdNew) self.cmdEdit = QtGui.QPushButton(self.groupBox) self.cmdEdit.setObjectName(_fromUtf8("cmdEdit")) self.verticalLayout.addWidget(self.cmdEdit) + self.cmdUnload = QtGui.QPushButton(self.groupBox) + self.cmdUnload.setObjectName(_fromUtf8("cmdUnload")) + self.verticalLayout.addWidget(self.cmdUnload) self.groupBox_2 = QtGui.QGroupBox(self.splitter) self.groupBox_2.setMinimumSize(QtCore.QSize(0, 0)) self.groupBox_2.setMaximumSize(QtCore.QSize(300, 16777215)) @@ -334,11 +334,11 @@ class Ui_MainWindow(object): self.cmdClearHistory.setText(QtGui.QApplication.translate("MainWindow", "Clear history", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox.setTitle(QtGui.QApplication.translate("MainWindow", "Relations", None, QtGui.QApplication.UnicodeUTF8)) self.lstRelations.setSortingEnabled(True) + self.cmdNew.setText(QtGui.QApplication.translate("MainWindow", "New relation", None, QtGui.QApplication.UnicodeUTF8)) self.cmdLoad.setText(QtGui.QApplication.translate("MainWindow", "Load relation", None, QtGui.QApplication.UnicodeUTF8)) self.cmdSave.setText(QtGui.QApplication.translate("MainWindow", "Save relation", None, QtGui.QApplication.UnicodeUTF8)) - self.cmdUnload.setText(QtGui.QApplication.translate("MainWindow", "Unload relation", None, QtGui.QApplication.UnicodeUTF8)) - self.cmdNew.setText(QtGui.QApplication.translate("MainWindow", "New relation", None, QtGui.QApplication.UnicodeUTF8)) self.cmdEdit.setText(QtGui.QApplication.translate("MainWindow", "Edit relation", None, QtGui.QApplication.UnicodeUTF8)) + self.cmdUnload.setText(QtGui.QApplication.translate("MainWindow", "Unload relation", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox_2.setTitle(QtGui.QApplication.translate("MainWindow", "Attributes", None, QtGui.QApplication.UnicodeUTF8)) self.txtResult.setText(QtGui.QApplication.translate("MainWindow", "_last1", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("MainWindow", "=", None, QtGui.QApplication.UnicodeUTF8)) diff --git a/relational_gui/maingui.ui b/relational_gui/maingui.ui index 757884a..684a979 100644 --- a/relational_gui/maingui.ui +++ b/relational_gui/maingui.ui @@ -291,6 +291,13 @@ + + + + New relation + + + @@ -305,20 +312,6 @@ - - - - Unload relation - - - - - - - New relation - - - @@ -326,6 +319,13 @@ + + + + Unload relation + + + diff --git a/relational_gui/survey.py b/relational_gui/survey.py index bab4efe..7dfb1c9 100644 --- a/relational_gui/survey.py +++ b/relational_gui/survey.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'relational_gui/survey.ui' # -# Created: Thu Oct 13 19:00:44 2011 +# Created: Thu Oct 13 20:42:44 2011 # by: PyQt4 UI code generator 4.8.3 # # WARNING! All changes made in this file will be lost! diff --git a/relational_pyside/maingui.py b/relational_pyside/maingui.py index c834693..44a4be8 100644 --- a/relational_pyside/maingui.py +++ b/relational_pyside/maingui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'relational_pyside/maingui.ui' # -# Created: Thu Oct 13 19:00:44 2011 +# Created: Thu Oct 13 20:42:44 2011 # by: pyside-uic 0.2.13 running on PySide 1.0.7 # # WARNING! All changes made in this file will be lost! @@ -143,21 +143,21 @@ class Ui_MainWindow(object): self.lstRelations.setMaximumSize(QtCore.QSize(16777215, 16777215)) self.lstRelations.setObjectName("lstRelations") self.verticalLayout.addWidget(self.lstRelations) + self.cmdNew = QtGui.QPushButton(self.groupBox) + self.cmdNew.setObjectName("cmdNew") + self.verticalLayout.addWidget(self.cmdNew) self.cmdLoad = QtGui.QPushButton(self.groupBox) self.cmdLoad.setObjectName("cmdLoad") self.verticalLayout.addWidget(self.cmdLoad) self.cmdSave = QtGui.QPushButton(self.groupBox) self.cmdSave.setObjectName("cmdSave") self.verticalLayout.addWidget(self.cmdSave) - self.cmdUnload = QtGui.QPushButton(self.groupBox) - self.cmdUnload.setObjectName("cmdUnload") - self.verticalLayout.addWidget(self.cmdUnload) - self.cmdNew = QtGui.QPushButton(self.groupBox) - self.cmdNew.setObjectName("cmdNew") - self.verticalLayout.addWidget(self.cmdNew) self.cmdEdit = QtGui.QPushButton(self.groupBox) self.cmdEdit.setObjectName("cmdEdit") self.verticalLayout.addWidget(self.cmdEdit) + self.cmdUnload = QtGui.QPushButton(self.groupBox) + self.cmdUnload.setObjectName("cmdUnload") + self.verticalLayout.addWidget(self.cmdUnload) self.groupBox_2 = QtGui.QGroupBox(self.splitter) self.groupBox_2.setMinimumSize(QtCore.QSize(0, 0)) self.groupBox_2.setMaximumSize(QtCore.QSize(300, 16777215)) @@ -329,11 +329,11 @@ class Ui_MainWindow(object): self.cmdClearHistory.setText(QtGui.QApplication.translate("MainWindow", "Clear history", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox.setTitle(QtGui.QApplication.translate("MainWindow", "Relations", None, QtGui.QApplication.UnicodeUTF8)) self.lstRelations.setSortingEnabled(True) + self.cmdNew.setText(QtGui.QApplication.translate("MainWindow", "New relation", None, QtGui.QApplication.UnicodeUTF8)) self.cmdLoad.setText(QtGui.QApplication.translate("MainWindow", "Load relation", None, QtGui.QApplication.UnicodeUTF8)) self.cmdSave.setText(QtGui.QApplication.translate("MainWindow", "Save relation", None, QtGui.QApplication.UnicodeUTF8)) - self.cmdUnload.setText(QtGui.QApplication.translate("MainWindow", "Unload relation", None, QtGui.QApplication.UnicodeUTF8)) - self.cmdNew.setText(QtGui.QApplication.translate("MainWindow", "New relation", None, QtGui.QApplication.UnicodeUTF8)) self.cmdEdit.setText(QtGui.QApplication.translate("MainWindow", "Edit relation", None, QtGui.QApplication.UnicodeUTF8)) + self.cmdUnload.setText(QtGui.QApplication.translate("MainWindow", "Unload relation", None, QtGui.QApplication.UnicodeUTF8)) self.groupBox_2.setTitle(QtGui.QApplication.translate("MainWindow", "Attributes", None, QtGui.QApplication.UnicodeUTF8)) self.txtResult.setText(QtGui.QApplication.translate("MainWindow", "_last1", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("MainWindow", "=", None, QtGui.QApplication.UnicodeUTF8)) diff --git a/relational_pyside/survey.py b/relational_pyside/survey.py index 2dc2a97..5135ea5 100644 --- a/relational_pyside/survey.py +++ b/relational_pyside/survey.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'relational_pyside/survey.ui' # -# Created: Thu Oct 13 19:00:44 2011 +# Created: Thu Oct 13 20:42:44 2011 # by: pyside-uic 0.2.13 running on PySide 1.0.7 # # WARNING! All changes made in this file will be lost!