# -*- coding: utf-8 -*-
import widgetUtils
from wxUI import commonMessages
from pubsub import pub
from . import base

class blacklistInteractor(base.baseInteractor):

	def add_items(self, control, items):
		if not hasattr(self.view, control):
			raise AttributeError("The control is not present in the view.")
		for i in items:
			getattr(self.view, control).insert_item(False, *i)

	def install(self, *args, **kwargs):
		super(blacklistInteractor, self).install(*args, **kwargs)
		widgetUtils.connect_event(self.view.unblock, widgetUtils.BUTTON_PRESSED, self.on_unblock)
		pub.subscribe(self.add_items, self.modulename+"_add_items")

	def uninstall(self):
		super(blacklistInteractor, self).uninstall()
		pub.unsubscribe(self.add_items, self.modulename+"_add_items")


	def on_unblock(self, *args, **kwargs):
		question = commonMessages.unblock_person()
		if question == widgetUtils.NO:
			return
		item = self.view.persons.get_selected()
		if self.presenter.unblock_person(item) == 1:
			self.view.persons.remove_item(item)
