class APICredentialsDialog(OWWidget): name = "Twitter API Credentials" want_main_area = False resizing_enabled = False def __init__(self, parent): super().__init__() self.cm_key = CredentialManager("Twitter Bearer Token") self.parent = parent box = gui.vBox(self.controlArea, "Bearer Token") self.key_edit = QPlainTextEdit() box.layout().addWidget(self.key_edit) self.submit_button = gui.button(self.buttonsArea, self, "OK", self.accept) self.load_credentials() def load_credentials(self): self.key_edit.setPlainText(self.cm_key.key) def save_credentials(self): self.cm_key.key = self.key_edit.toPlainText() def accept(self): token = self.key_edit.toPlainText() if token: self.save_credentials() self.parent.update_api(token) super().accept()
class IdListFilter(QWidget, Control): """ Multiple ids filter """ def __init__(self, tree, dataset, master, parent=None): QWidget.__init__(self, parent) Control.__init__(self, tree, dataset, master) self.tree = tree self.dataset = dataset self.master = master self.setObjectName(tree.internalName) self.setLayout(QGridLayout()) self.textWidget = QPlainTextEdit() # TODO: Subclass to receive drop events from item model views self.layout().addWidget(self.textWidget, 0, 0, 1, 1) def value(self): """ Return filter value for use in a query """ return str(self.textWidget.toPlainText()).split() def get_filter(self): return self.tree.internalName, self.value() def query(self): return [("Filter", self.tree, self.value())] def setControlValue(self, name, value): if type(value) == list: value = "\n".join(value) self.textWidget.setPlainText(value)
class IdListFilter(QWidget, Control): """ Multiple ids filter """ def __init__(self, tree, dataset, master, parent=None): QWidget.__init__(self, parent) Control.__init__(self, tree, dataset, master) self.tree = tree self.dataset = dataset self.master = master self.setObjectName(tree.internalName) self.setLayout(QGridLayout()) self.textWidget = QPlainTextEdit() # TODO: Subclass to receive drop events from item model views self.layout().addWidget(self.textWidget, 0, 0, 1, 1) def value(self): """ Return filter value for use in a query """ return str(self.textWidget.toPlainText()).split() def get_filter(self): return self.tree.internalName, self.value() def query(self): return [("Filter", self.tree, self.value())] def setControlValue(self, name, value): if type(value) == list: value = "\n".join(value) self.textWidget.setPlainText(value)
class DropDownIdListFilter(QWidget, Control): """Container for multiple id list filters """ def __init__(self, tree, dataset, master, parent=None): QWidget.__init__(self, parent) Control.__init__(self, tree, dataset, master) self.setLayout(QVBoxLayout()) self.setContentsMargins(0, 0, 0, 0) self.cb = QComboBox() self.idsEdit = QPlainTextEdit() self.layout().addWidget(self.cb) self.layout().addWidget(self.idsEdit) self.options = [] self.setOptions(tree.subelements_top("Option")) def setOptions(self, options): self.cb.clear() self.options = [] for option in options: self.cb.addItem(option.displayName) self.options.append(option) def value(self): return str(self.idsEdit.toPlainText()).split() def query(self): filter = self.options[self.cb.currentIndex()] filter = biomart.FilterDescription( self.tree.registry, "FilterDescription", filter.attributes, filter.children) return [("Filter", filter, self.value())] def setControlValue(self, name, value): if isinstance(value, list): value = "\n".join(value) for i, op in enumerate(self.options): if name == op.internalName: self.cb.setCurrentIndex(i) self.idsEdit.setPlainText(value)
class DropDownIdListFilter(QWidget, Control): """Container for multiple id list filters """ def __init__(self, tree, dataset, master, parent=None): QWidget.__init__(self, parent) Control.__init__(self, tree, dataset, master) self.setLayout(QVBoxLayout()) self.setContentsMargins(0, 0, 0, 0) self.cb = QComboBox() self.idsEdit = QPlainTextEdit() self.layout().addWidget(self.cb) self.layout().addWidget(self.idsEdit) self.options = [] self.setOptions(tree.subelements_top("Option")) def setOptions(self, options): self.cb.clear() self.options = [] for option in options: self.cb.addItem(option.displayName) self.options.append(option) def value(self): return str(self.idsEdit.toPlainText()).split() def query(self): filter = self.options[self.cb.currentIndex()] filter = biomart.FilterDescription( self.tree.registry, "FilterDescription", filter.attributes, filter.children) return [("Filter", filter, self.value())] def setControlValue(self, name, value): if isinstance(value, list): value = "\n".join(value) for i, op in enumerate(self.options): if name == op.internalName: self.cb.setCurrentIndex(i) self.idsEdit.setPlainText(value)