installer/custompackageselector.py
f4d17450
 #!/usr/bin/python2
 #
 #    Copyright (C) 2015 vmware inc.
 #
 #    Author: Mahmoud Bassiouny <mbassiouny@vmware.com>
 
 import json
 import curses
 from sets import Set
 from jsonwrapper import JsonWrapper
 from menu import Menu
 from window import Window
 from actionresult import ActionResult
 
 class CustomPackageSelector(object):
     def __init__(self,  maxy, maxx, install_config):
         self.install_config = install_config
         self.menu_items = []
 
         self.maxx = maxx
         self.maxy = maxy
         self.win_width = 60
         self.win_height = 23
 
         self.win_starty = (self.maxy - self.win_height) / 2
         self.win_startx = (self.maxx - self.win_width) / 2
 
         self.menu_starty = self.win_starty + 3
         self.selected_packages = Set([])
 
         self.load_package_list()
 
         self.window = Window(self.win_height, self.win_width, self.maxy, self.maxx, 'Select your Packages', True, self.package_menu)
 
     def load_package_list(self):
4d6a578d
         json_wrapper_package_list = JsonWrapper("packages_full.json");
         package_list_json = json_wrapper_package_list.read()
f4d17450
 
4d6a578d
         for package in package_list_json["packages"]:
f4d17450
             self.menu_items.append((package, self.exit_function))
         self.package_menu = Menu(self.menu_starty,  self.maxx, self.menu_items, height = 18, selector_menu = True)
 
 
     def exit_function(self,  selected_indexes):
bb884b5b
         json_wrapper_package_list = JsonWrapper("packages_minimal.json");
4d6a578d
         package_list_json = json_wrapper_package_list.read()
f4d17450
         selected_items = []
         for index in selected_indexes:
             selected_items.append(self.menu_items[index][0])
 
4d6a578d
         self.install_config['packages'] = package_list_json["packages"] + selected_items
f4d17450
         return ActionResult(True, None)
 
     def display(self, params):
         if (params['custom']):
             return self.window.do_action()
         else:
             return ActionResult(True, None)