def __init__(self): # Init parent class for resizing etc... QMainWindow.__init__(self) # History Client self.client = HistoryClient() #self.requests = {} self.readResponseSubscriptions = [] self.setWindowTitle('History Client') # Create Tab widget and fill with # pages self._build_tab_widget() page = self._build_requests_page() self.tabWidget.addTab(page, 'Requests') page = self._build_read_requests_page() self.tabWidget.addTab(page, 'Read') page = self._build_read_requests_page() self.tabWidget.addTab(page, 'DataBases') self.fetchRequests()
def main(): client = HistoryClient() print '-- Car history simulator --' # Make a history request for data we're gonna insert sparql = """ SELECT ?person ?car ?km ?tire ?tireTread WHERE { ?person <http://rdf.tesladocet.com/ns/person-car.owl#HasCar> ?car . ?car <http://rdf.tesladocet.com/ns/person-car.owl#HasKm> ?km . ?car <http://rdf.tesladocet.com/ns/person-car.owl#HasTire> ?tire . ?tire <http://rdf.tesladocet.com/ns/person-car.owl#HasTireTread> ?tireTread }""" req_id = client.addHistoryRequest(sparql) print req_id # Start the simulator tachometer = Tachometer() tachometer.start() # Keep it running untill Ctrl-c global carEngineOn try: while True: time.sleep(10) except KeyboardInterrupt: print 'Shutting off the engine...' carEngineOn = False # Retrieve back historical data client.readHistoryRequestData(req_id, ReadResponseHandler()) # Close all the subscriptions of the client, otherwise it hangs client.quit() sys.exit()
class MainWindow(QMainWindow): def __init__(self): # Init parent class for resizing etc... QMainWindow.__init__(self) # History Client self.client = HistoryClient() #self.requests = {} self.readResponseSubscriptions = [] self.setWindowTitle('History Client') # Create Tab widget and fill with # pages self._build_tab_widget() page = self._build_requests_page() self.tabWidget.addTab(page, 'Requests') page = self._build_read_requests_page() self.tabWidget.addTab(page, 'Read') page = self._build_read_requests_page() self.tabWidget.addTab(page, 'DataBases') self.fetchRequests() def _build_tab_widget(self): self.tabWidget = QTabWidget() self.setCentralWidget(self.tabWidget) def _build_requests_page(self): addRequestBox = QHBoxLayout() self.lineEdit = QLineEdit("") addRequestBox.addWidget(self.lineEdit) self.addbutton = QPushButton("Add Request") self.addbutton.clicked.connect(self.addRequest) addRequestBox.addWidget(self.addbutton) requestsBox = QHBoxLayout() requestActionsBox = QVBoxLayout() self.listWidget = QListWidget() self.listWidget.itemClicked.connect(self._enableDeleteButton) self.listWidget.itemClicked.connect(self._enableReadButton) self.listWidget.doubleClicked.connect(self._showInfoDialog) requestsBox.addWidget(self.listWidget) self.readButton = QPushButton("Read Request") self.readButton.setEnabled(False) self.readButton.clicked.connect(self.readRequest) requestActionsBox.addWidget(self.readButton) self.deleteButton = QPushButton("Delete Request") self.deleteButton.setEnabled(False) self.deleteButton.clicked.connect(self.deleteRequest) requestActionsBox.addWidget(self.deleteButton) requestsBox.addLayout(requestActionsBox) layout = QVBoxLayout() layout.addLayout(addRequestBox) layout.addLayout(requestsBox) page = QWidget() page.setLayout(layout) return page def _build_read_requests_page(self): layout = QVBoxLayout() page = QWidget() page.setLayout(layout) return page def _build_dbs_page(self): layout = QVBoxLayout() page = QWidget() page.setLayout(layout) return page def _enableDeleteButton(self): self.deleteButton.setEnabled(True) def _enableReadButton(self): self.readButton.setEnabled(True) def _showInfoDialog(self): text = QLabel('ciao') vbox = QVBoxLayout() vbox.addWidget(text) dialog = QDialog(self) dialog.setLayout(vbox) dialog.show() def fetchRequests(self): requests = self.client.showHistoryRequests() for r in requests: lvi = QListWidgetItem(r['sparql'], self.listWidget) lvi.setData(Qt.UserRole, QVariant(r['uri'])) def addRequest(self): sparql = self.lineEdit.text() request_uri = self.client.addHistoryRequest(sparql) lvi = QListWidgetItem(sparql, self.listWidget) lvi.setData(Qt.UserRole, QVariant(request_uri)) print request_uri def readRequest(self): # Issue a history read on the currently selected item item = self.listWidget.item(self.listWidget.currentRow()) request_uri = item.data(Qt.UserRole).toPyObject() # History read. Automatically fetch sparql from the request self.client.readHistoryRequestData(request_uri, HistoryReadResponseHandler()) # Disable others requests untill dont receive a response! self.readButton.setEnabled(False) def deleteRequest(self): # Remove the currently selected item from the listview. item = self.listWidget.takeItem(self.listWidget.currentRow()) request_uri = item.data(Qt.UserRole).toPyObject() self.client.deleteHistoryRequest(request_uri) # Check if the list is empty - if yes, disable the deletebutton. if self.listWidget.count() == 0: self.deleteButton.setEnabled(False) def closeEvent(self, *args, **kwargs): self.client.quit()