from Screen import Screen

from Components.MenuList import MenuList
from Components.ActionMap import ActionMap
from Components.PluginComponent import plugins
from Components.PluginList import *
from Components.config import config


class PluginBrowser(Screen):
	def __init__(self, session):
		Screen.__init__(self, session)
		
		self.list = []
		self["list"] = PluginList(self.list)
		self.updateList()
		
		self["actions"] = ActionMap(["WizardActions"], 
		{
			"ok": self.save,
			"back": self.close,
			"up": self.up,
			"down": self.down
		}, -1)
		
	def save(self):
		#self.close()
		self.run()
	
	def run(self):
		plugin = self.pluginlist[self["list"].l.getCurrentSelectionIndex()]
		plugins.runPlugin(plugin, self.session)
		
	def updateList(self):
		self.list = []
		self.pluginlist = plugins.getPluginList()
		for x in self.pluginlist:
			self.list.append(PluginEntryComponent(x[0], x[1], x[6]))
		
		self["list"].l.setList(self.list)

	def up(self):
		self["list"].instance.moveSelection(self["list"].instance.moveUp)
		
	def down(self):
		self["list"].instance.moveSelection(self["list"].instance.moveDown)
