from __future__ import absolute_import
import npyscreen
from mylinux.libs import overrides
from mylinux.libs import AppErr
from .SelectForm import SelectForm
[docs]class SelectApp(npyscreen.NPSAppManaged):
requiredModelValues = [
'action',
'packages',
'modules',
'classes',
'packageNames',
'packageInfos',
'packageStates',
'configStates'
]
@overrides(npyscreen.NPSAppManaged)
[docs] def onStart(self):
self.setModelValues()
self.checkModelValues()
self.mainForm = SelectForm(
name='Select & {0} packages'.format(self.modelValues['action'].upper())
)
self.mainForm.action = self.modelValues['action']
self.mainForm.packages = self.modelValues['packages']
self.mainForm.modules.values = self.modelValues['modules']
self.mainForm.classes.values = self.modelValues['classes']
self.mainForm.packageNames.values = self.modelValues['packageNames']
self.mainForm.packageInfos.values = self.modelValues['packageInfos']
self.mainForm.packageStates.values = self.modelValues['packageStates']
self.mainForm.configStates.values = self.modelValues['configStates']
''' REGISTER FORM '''
self.registerForm('MAIN', self.mainForm)
@overrides(npyscreen.NPSAppManaged)
[docs] def onCleanExit(self):
self.exit(packageNames=self.mainForm.packageNames.get_selected_objects())
[docs] def checkModelValues(self):
error = []
for requiredElement in SelectApp.requiredModelValues:
if not requiredElement in self.modelValues:
error.append(requiredElement)
if error:
raise AppErr.developer('Missing in modelValues! ==> ' + str(error))
[docs] def setModelValues(self):
pass
[docs] def exit(self, packageNames):
pass