#!/usr/bin/python2 # # Copyright (C) 2015 vmware inc. # # Author: Mahmoud Bassiouny 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): json_wrapper_package_list = JsonWrapper("packages_full.json"); package_list_json = json_wrapper_package_list.read() for package in package_list_json["packages"]: 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): json_wrapper_package_list = JsonWrapper("packages_minimal.json"); package_list_json = json_wrapper_package_list.read() selected_items = [] for index in selected_indexes: selected_items.append(self.menu_items[index][0]) self.install_config['packages'] = package_list_json["packages"] + selected_items return ActionResult(True, None) def display(self, params): if (params['custom']): return self.window.do_action() else: return ActionResult(True, None)