Ejemplo n.º 1
0
    def testReadVocab(self):
        a = AnnotationTool()

        self.assertEqual(10, len(a.getTerms()))
        self.assertEqual('1.0', a._vocab._version)
        self.assertEqual('http://physiomeproject.org/workflow',
                         a._vocab._namespace)
Ejemplo n.º 2
0
    def __init__(self, parent=None):
        super(SearchWidget, self).__init__(parent)
        self._ui = Ui_SearchWidget()
        self._ui.setupUi(self)

        pmr_info = PMR()
        self._pmrTool = PMRTool(pmr_info)
        self._annotationTool = AnnotationTool()

        self._makeConnections()
Ejemplo n.º 3
0
    def __init__(self, parent=None):
        QtGui.QDialog.__init__(self, parent)
        self._ui = Ui_PMRSearchDialog()
        self._ui.setupUi(self)

        pmr_info = PMR()
        self._pmrTool = PMRTool(pmr_info)
        self._annotationTool = AnnotationTool()

        self._makeConnections()

        self._updateUi()
Ejemplo n.º 4
0
class SearchWidget(QtWidgets.QWidget):

    def __init__(self, parent=None):
        super(SearchWidget, self).__init__(parent)
        self._ui = Ui_SearchWidget()
        self._ui.setupUi(self)

        pmr_info = PMR()
        self._pmrTool = PMRTool(pmr_info)
        self._annotationTool = AnnotationTool()

        self._makeConnections()

    def setPMRInfo(self, info):
        self._pmrTool.set_info(info)

    def setUseExternalGit(self, use_external_git):
        self._pmrTool.set_use_external_git(use_external_git)

    def _makeConnections(self):
        self._ui.searchButton.clicked.connect(self._searchClicked)
        self._ui.searchResultsListWidget.itemClicked.connect(self._itemClicked)

    def _itemClicked(self, item):
        data = item.data(QtCore.Qt.UserRole)
        if 'target' in data:
            self._ui.targetEdit.setText(data['target'])

    @handle_runtime_error
    @set_wait_cursor
    def _searchClicked(self):
        # Set pmrlib to go
        self._ui.searchResultsListWidget.clear()

        # fix up known terms to be full blown uri
        search_text = self._ui.searchLineEdit.text()
        search_terms = search_text.split()
        for term in search_terms:
            rdfterm = self._annotationTool.rdfFormOfTerm(term)
            if rdfterm:
                search_text = search_text + ' ' + rdfterm[1:-1]

        try:
            results = self._pmrTool.search(search_text)

            for r in results:
                if 'title' in r and r['title']:
                    item = QtWidgets.QListWidgetItem(r['title'], self._ui.searchResultsListWidget)
                else:
                    item = QtWidgets.QListWidgetItem(r['target'], self._ui.searchResultsListWidget)
                item.setData(QtCore.Qt.UserRole, r)
        except PMRToolError as e:
            message = convertExceptionToMessage(e)
            logger.warning('PMR Tool exception raised')
            logger.warning('Reason: {0}'.format(message))

    def getSelectedWorkspace(self):
        items = self._ui.searchResultsListWidget.selectedItems()
        for item in items:
            return item.data(QtCore.Qt.UserRole)
Ejemplo n.º 5
0
    def __init__(self, location, annotation_filename=None, parent=None):
        QtWidgets.QDialog.__init__(self, parent)
        self._ui = Ui_AnnotationDialog()
        self._ui.setupUi(self)

        if len(location) > 0:
            self._ui.fileButton.hide()

        self._ui.locationLineEdit.setText(location)
        self._tool = AnnotationTool()
        self._annotation_filename = annotation_filename
        self._tool.deserialize(location, annotation_filename)

        self._ui.subjectComboBox.addItems(self._tool.getTerms())
        self._ui.predicateComboBox.addItems(self._tool.getTerms())
        self._ui.objectComboBox.addItems(self._tool.getTerms())

        for triple in self._tool.getTriples():
            self._addTriple(triple[0], triple[1], triple[2])

        self._makeConnections()
Ejemplo n.º 6
0
    def __init__(self, parent=None):
        """
        Constructor
        """
        QtGui.QDialog.__init__(self, parent)
        self._ui = Ui_PMRSearchDialog()
        self._ui.setupUi(self)

        self._pmrTool = PMRTool()
        self._annotationTool = AnnotationTool()

        self._makeConnections()

        self._updateUi()
 def __init__(self, location, annotation_filename=None, parent=None):
     '''
     Constructor
     '''
     QtGui.QDialog.__init__(self, parent)
     self._ui = Ui_AnnotationDialog()
     self._ui.setupUi(self)
     
     if len(location) > 0:
         self._ui.fileButton.hide()
         
     self._ui.locationLineEdit.setText(location)
     self._tool = AnnotationTool()
     self._annotation_filename = annotation_filename
     self._tool.deserialize(location, annotation_filename)
     
     self._ui.subjectComboBox.addItems(self._tool.getTerms())
     self._ui.predicateComboBox.addItems(self._tool.getTerms())
     self._ui.objectComboBox.addItems(self._tool.getTerms())
     
     for triple in self._tool.getTriples():
         self._addTriple(triple[0], triple[1], triple[2])
     
     self._makeConnections()
Ejemplo n.º 8
0
class PMRSearchDialog(QtGui.QDialog):
    """
    Dialog for managing interaction with PMR.
    """
    def __init__(self, parent=None):
        QtGui.QDialog.__init__(self, parent)
        self._ui = Ui_PMRSearchDialog()
        self._ui.setupUi(self)

        pmr_info = PMR()
        self._pmrTool = PMRTool(pmr_info)
        self._annotationTool = AnnotationTool()

        self._makeConnections()

        self._updateUi()

    def _updateUi(self):
        if self._pmrTool.hasAccess():
            self._ui.loginStackedWidget.setCurrentIndex(1)
        else:
            self._ui.loginStackedWidget.setCurrentIndex(0)

    def _makeConnections(self):
        self._ui.searchButton.clicked.connect(self._searchClicked)
        self._ui.registerLabel.linkActivated.connect(self.register)
        self._ui.deregisterLabel.linkActivated.connect(self.deregister)

    @handle_runtime_error
    @set_wait_cursor
    def _searchClicked(self):
        # Set pmrlib to go
        self._ui.searchResultsListWidget.clear()

        # fix up known terms to be full blown uri
        search_text = self._ui.searchLineEdit.text()
        search_terms = search_text.split()
        for term in search_terms:
            rdfterm = self._annotationTool.rdfFormOfTerm(term)
            if rdfterm:
                search_text = search_text + ' ' + rdfterm[1:-1]

        try:
            results = self._pmrTool.search(search_text)

            for r in results:
                if 'title' in r and r['title']:
                    item = QtGui.QListWidgetItem(
                        r['title'], self._ui.searchResultsListWidget)
                else:
                    item = QtGui.QListWidgetItem(
                        r['target'], self._ui.searchResultsListWidget)
                item.setData(QtCore.Qt.UserRole, r)
        except PMRToolError as e:
            message = convertExceptionToMessage(e)
            logger.warn('PMR Tool exception raised')
            logger.warn('Reason: {0}'.format(message))

    def getSelectedWorkspace(self):
        items = self._ui.searchResultsListWidget.selectedItems()
        for item in items:
            return item.data(QtCore.Qt.UserRole)

    def register(self, link):
        if link != 'mapclient.register':
            return

        dlg = AuthoriseApplicationDialog(self)
        dlg.setModal(True)
        dlg.exec_()

        self._updateUi()

    def deregister(self):
        self._pmrTool.deregister()
        self._updateUi()
class AnnotationDialog(QtGui.QDialog):
    '''
    Dialog for annotating a directory.
    '''


    def __init__(self, location, annotation_filename=None, parent=None):
        '''
        Constructor
        '''
        QtGui.QDialog.__init__(self, parent)
        self._ui = Ui_AnnotationDialog()
        self._ui.setupUi(self)
        
        if len(location) > 0:
            self._ui.fileButton.hide()
            
        self._ui.locationLineEdit.setText(location)
        self._tool = AnnotationTool()
        self._annotation_filename = annotation_filename
        self._tool.deserialize(location, annotation_filename)
        
        self._ui.subjectComboBox.addItems(self._tool.getTerms())
        self._ui.predicateComboBox.addItems(self._tool.getTerms())
        self._ui.objectComboBox.addItems(self._tool.getTerms())
        
        for triple in self._tool.getTriples():
            self._addTriple(triple[0], triple[1], triple[2])
        
        self._makeConnections()
        
    def _makeConnections(self):
        self._ui.addButton.clicked.connect(self._addStatement)
        self._ui.removeButton.clicked.connect(self._removeStatement)
        self._ui.buttonBox.button(QtGui.QDialogButtonBox.Ok).clicked.connect(self._accept)
        
    def _addTriple(self, subj, pred, obj):
        self._ui.annotationListWidget.addItem('[' + subj + ', ' + pred + ', ' + obj + ']')
        
    
    def _addStatement(self):
        subj = self._ui.subjectComboBox.currentText()
        pred = self._ui.predicateComboBox.currentText()
        obj = self._ui.objectComboBox.currentText()
        
        self._addTriple(subj, pred, obj)
    
    def _removeStatement(self):
        for index in self._ui.annotationListWidget.selectedIndexes():
            self._ui.annotationListWidget.takeItem(index.row())
    
    def _accept(self):
        triple_re = re.compile('\[(.*), (.*), (.*)\]')
        
        self._tool.clear()
        while self._ui.annotationListWidget.count() > 0:
            item = self._ui.annotationListWidget.takeItem(0)
            match = triple_re.match(item.text())
            if match:
                sbj = match.group(1)
                pred = match.group(2)
                obj = match.group(3)
                self._tool.addTriple(sbj, pred, obj)

        location = self._ui.locationLineEdit.text()
        self._tool.serialize(location, self._annotation_filename)        
        self.accept()
Ejemplo n.º 10
0
class AnnotationDialog(QtWidgets.QDialog):
    """
    Dialog for annotating a directory.
    """
    def __init__(self, location, annotation_filename=None, parent=None):
        QtWidgets.QDialog.__init__(self, parent)
        self._ui = Ui_AnnotationDialog()
        self._ui.setupUi(self)

        if len(location) > 0:
            self._ui.fileButton.hide()

        self._ui.locationLineEdit.setText(location)
        self._tool = AnnotationTool()
        self._annotation_filename = annotation_filename
        self._tool.deserialize(location, annotation_filename)

        self._ui.subjectComboBox.addItems(self._tool.getTerms())
        self._ui.predicateComboBox.addItems(self._tool.getTerms())
        self._ui.objectComboBox.addItems(self._tool.getTerms())

        for triple in self._tool.getTriples():
            self._addTriple(triple[0], triple[1], triple[2])

        self._makeConnections()

    def _makeConnections(self):
        self._ui.addButton.clicked.connect(self._addStatement)
        self._ui.removeButton.clicked.connect(self._removeStatement)
        self._ui.buttonBox.button(QtGui.QDialogButtonBox.Ok).clicked.connect(
            self._accept)

    def _addTriple(self, subj, pred, obj):
        self._ui.annotationListWidget.addItem('[' + subj + ', ' + pred + ', ' +
                                              obj + ']')

    def _addStatement(self):
        subj = self._ui.subjectComboBox.currentText()
        pred = self._ui.predicateComboBox.currentText()
        obj = self._ui.objectComboBox.currentText()

        self._addTriple(subj, pred, obj)

    def _removeStatement(self):
        for index in self._ui.annotationListWidget.selectedIndexes():
            self._ui.annotationListWidget.takeItem(index.row())

    def _accept(self):
        triple_re = re.compile('\[(.*), (.*), (.*)\]')

        self._tool.clear()
        while self._ui.annotationListWidget.count() > 0:
            item = self._ui.annotationListWidget.takeItem(0)
            match = triple_re.match(item.text())
            if match:
                sbj = match.group(1)
                pred = match.group(2)
                obj = match.group(3)
                self._tool.addTriple(sbj, pred, obj)

        location = self._ui.locationLineEdit.text()
        self._tool.serialize(location, self._annotation_filename)
        self.accept()
Ejemplo n.º 11
0
class PMRSearchDialog(QtGui.QDialog):
    """
    Dialog for managing interaction with PMR.
    """

    def __init__(self, parent=None):
        """
        Constructor
        """
        QtGui.QDialog.__init__(self, parent)
        self._ui = Ui_PMRSearchDialog()
        self._ui.setupUi(self)

        self._pmrTool = PMRTool()
        self._annotationTool = AnnotationTool()

        self._makeConnections()

        self._updateUi()

    def _updateUi(self):
        if self._pmrTool.hasAccess():
            self._ui.loginStackedWidget.setCurrentIndex(1)
        else:
            self._ui.loginStackedWidget.setCurrentIndex(0)

    def _makeConnections(self):
        self._ui.searchButton.clicked.connect(self._searchClicked)
        self._ui.registerLabel.linkActivated.connect(self.register)
        self._ui.deregisterLabel.linkActivated.connect(self.deregister)

    @handle_runtime_error
    @set_wait_cursor
    def _searchClicked(self):
        # Set pmrlib to go
        self._ui.searchResultsListWidget.clear()

        # fix up known terms to be full blown uri
        search_text = self._ui.searchLineEdit.text()
        search_terms = search_text.split()
        for term in search_terms:
            rdfterm = self._annotationTool.rdfFormOfTerm(term)
            if rdfterm:
                search_text = search_text + " " + rdfterm[1:-1]

        results = self._pmrTool.search(search_text)

        for r in results:
            if "title" in r and r["title"]:
                item = QtGui.QListWidgetItem(r["title"], self._ui.searchResultsListWidget)
            else:
                item = QtGui.QListWidgetItem(r["target"], self._ui.searchResultsListWidget)
            item.setData(QtCore.Qt.UserRole, r)

    def getSelectedWorkspace(self):
        items = self._ui.searchResultsListWidget.selectedItems()
        for item in items:
            return item.data(QtCore.Qt.UserRole)

    def register(self, link):
        if link != "mapclient.register":
            return

        dlg = AuthoriseApplicationDialog(self)
        dlg.setModal(True)
        dlg.exec_()

        self._updateUi()

    def deregister(self):
        self._pmrTool.deregister()
        self._updateUi()