def get_criterion(self): """Build the criterion from the information the user entered in the widget. """ criterion = DefaultCriterion(self.component_manager) # Card types and fact views. for item, card_type_fact_view_ids in \ self.card_type_fact_view_ids_for_node_item.iteritems(): if item.checkState(0) == QtCore.Qt.Unchecked: criterion.deactivated_card_type_fact_view_ids.add(\ card_type_fact_view_ids) # Tag tree contains active tags. if self.active_or_forbidden.currentIndex() == 0: for item, tag in self.tag_for_node_item.iteritems(): if item.checkState(0) == QtCore.Qt.Checked: criterion.active_tag__ids.add(tag._id) criterion.forbidden_tags = set() # Tag tree contains forbidden tags. else: for item, tag in self.tag_for_node_item.iteritems(): if item.checkState(0) == QtCore.Qt.Checked: criterion.forbidden_tag__ids.add(tag._id) criterion.active_tags = set(self.tag_for_node_item.values()) return criterion