def showServerResponse( self ): dlg = CSWResponseDialog() highlighter = XmlHighlighter( dlg.textXml ) dlg.textXml.setText( self.catalog.response ) dlg.exec_()
def showMetadata( self ): if not self.treeRecords.selectedItems(): return item = self.treeRecords.currentItem() if not item: return recordId = str( item.text( 2 ) ) try: QApplication.setOverrideCursor( QCursor( Qt.WaitCursor ) ) cat = csw( self.catalogUrl ) except urllib2.HTTPError: QApplication.restoreOverrideCursor() print "CSWClient HTTP error:", sys.exc_info()[ 0 ], sys.exc_info()[ 1 ], sys.exc_info()[ 2 ] QMessageBox.warning( self, self.tr( "Connection error" ), self.tr( "Error connecting to server:\n%1" ) .arg( str( sys.exc_info()[ 1 ] ) ) ) return except ExpatError: QApplication.restoreOverrideCursor() print "CSWClient parse error:", sys.exc_info()[ 0 ], sys.exc_info()[ 1 ], sys.exc_info()[ 2 ] QMessageBox.warning( self, self.tr( "Parse error" ), self.tr( "Error parsing server response:\n%1" ) .arg( str( sys.exc_info()[ 1 ] ) ) ) return except: QApplication.restoreOverrideCursor() print "CSWClient unexpected error:", sys.exc_info()[ 0 ], sys.exc_info()[ 1 ], sys.exc_info()[ 2 ] QMessageBox.warning( self, self.tr( "Error" ), self.tr( "Error connecting to server:\n%1" ) .arg( str( sys.exc_info()[ 1 ] ) ) ) return try: cat.getrecordbyid( [ self.catalog.records[ recordId ].identifier ] ) except: QApplication.restoreOverrideCursor() print "CSWClient unexpected error:", sys.exc_info()[ 0 ], sys.exc_info()[ 1 ], sys.exc_info()[ 2 ] QMessageBox.warning( self, self.tr( "GetRecords error" ), self.tr( "Error getting server response:\n%1" ) .arg( str( sys.exc_info()[ 1 ] ) ) ) return QApplication.restoreOverrideCursor() if cat.exceptionreport: print cat.exceptionreport.exceptions QMessageBox.warning( self, self.tr( "Metadata request error" ), self.tr( "Can't get metadata for record %1:\n%2: %3" ) .arg( recordId ) .arg( cat.exceptionreport.exceptions[ 0 ][ "exceptionCode" ]) .arg( cat.exceptionreport.exceptions[ 0 ][ "ExceptionText" ] ) ) return metadata = utils.recordMetadata( cat.records[ recordId ] ) myStyle = QgsApplication.reportStyleSheet() dlg = CSWResponseDialog() dlg.textXml.document().setDefaultStyleSheet( myStyle ) dlg.textXml.setHtml( metadata ) dlg.exec_()