pyceo/ceo/tui/start.py

90 lines
4.1 KiB
Python
Raw Normal View History

import os
2021-08-28 23:09:02 -04:00
import sys
2021-09-08 18:28:29 -04:00
from asciimatics.exceptions import ResizeScreenError
2021-08-28 23:09:02 -04:00
from asciimatics.scene import Scene
from asciimatics.screen import Screen
from .ConfirmView import ConfirmView
2021-09-06 12:40:05 -04:00
from .ErrorView import ErrorView
2021-08-28 23:09:02 -04:00
from .Model import Model
2021-09-06 12:40:05 -04:00
from .ResultView import ResultView
2021-08-28 23:09:02 -04:00
from .TransactionView import TransactionView
from .WelcomeView import WelcomeView
2021-09-12 02:08:15 -04:00
from .databases.CreateDatabaseView import CreateDatabaseView
from .databases.CreateDatabaseResultView import CreateDatabaseResultView
from .databases.ResetDatabasePasswordView import ResetDatabasePasswordView
from .databases.ResetDatabasePasswordResultView import ResetDatabasePasswordResultView
2021-09-07 01:02:34 -04:00
from .groups.AddGroupView import AddGroupView
2021-09-07 22:59:56 -04:00
from .groups.AddMemberToGroupView import AddMemberToGroupView
2021-09-07 01:22:20 -04:00
from .groups.GetGroupView import GetGroupView
from .groups.GetGroupResultView import GetGroupResultView
2021-09-07 23:20:51 -04:00
from .groups.RemoveMemberFromGroupView import RemoveMemberFromGroupView
2021-09-17 23:45:45 -04:00
from .members.AddUserTransactionView import AddUserTransactionView
2021-08-28 23:09:02 -04:00
from .members.AddUserView import AddUserView
from .members.ChangeLoginShellView import ChangeLoginShellView
2021-09-06 22:29:53 -04:00
from .members.GetUserView import GetUserView
from .members.GetUserResultView import GetUserResultView
2021-09-06 12:40:05 -04:00
from .members.RenewUserView import RenewUserView
2021-09-06 23:03:30 -04:00
from .members.ResetPasswordView import ResetPasswordView
from .members.ResetPasswordResultView import ResetPasswordResultView
from .members.SetForwardingAddressesView import SetForwardingAddressesView
from .positions import GetPositionsView, SetPositionsView
2021-08-28 23:09:02 -04:00
2021-09-05 18:48:20 -04:00
# tuples of (name, view)
views = []
def screen_wrapper(screen, last_scene, model):
global views
2021-08-28 23:09:02 -04:00
width = min(screen.width, 90)
height = min(screen.height, 24)
2021-09-05 18:48:20 -04:00
views = [
('Welcome', WelcomeView(screen, width, height, model)),
('Confirm', ConfirmView(screen, width, height, model)),
('Transaction', TransactionView(screen, width, height, model)),
2021-09-06 12:40:05 -04:00
('Result', ResultView(screen, width, height, model)),
('Error', ErrorView(screen, width, height, model)),
('AddUser', AddUserView(screen, width, height, model)),
2021-09-17 23:45:45 -04:00
('AddUserTransaction', AddUserTransactionView(screen, width, height, model)),
2021-09-06 12:40:05 -04:00
('RenewUser', RenewUserView(screen, width, height, model)),
2021-09-06 22:29:53 -04:00
('GetUser', GetUserView(screen, width, height, model)),
('GetUserResult', GetUserResultView(screen, width, height, model)),
2021-09-06 23:03:30 -04:00
('ResetPassword', ResetPasswordView(screen, width, height, model)),
('ResetPasswordResult', ResetPasswordResultView(screen, width, height, model)),
('ChangeLoginShell', ChangeLoginShellView(screen, width, height, model)),
('SetForwardingAddresses', SetForwardingAddressesView(screen, width, height, model)),
2021-09-07 01:02:34 -04:00
('AddGroup', AddGroupView(screen, width, height, model)),
2021-09-07 01:22:20 -04:00
('GetGroup', GetGroupView(screen, width, height, model)),
('GetGroupResult', GetGroupResultView(screen, width, height, model)),
2021-09-07 22:59:56 -04:00
('AddMemberToGroup', AddMemberToGroupView(screen, width, height, model)),
2021-09-07 23:20:51 -04:00
('RemoveMemberFromGroup', RemoveMemberFromGroupView(screen, width, height, model)),
2021-09-12 02:08:15 -04:00
('CreateDatabase', CreateDatabaseView(screen, width, height, model)),
('CreateDatabaseResult', CreateDatabaseResultView(screen, width, height, model)),
('ResetDatabasePassword', ResetDatabasePasswordView(screen, width, height, model)),
('ResetDatabasePasswordResult', ResetDatabasePasswordResultView(screen, width, height, model)),
('GetPositions', GetPositionsView(screen, width, height, model)),
('SetPositions', SetPositionsView(screen, width, height, model)),
2021-09-05 18:48:20 -04:00
]
2021-08-28 23:09:02 -04:00
scenes = [
2021-09-05 18:48:20 -04:00
Scene([view], -1, name=name) for name, view in views
2021-08-28 23:09:02 -04:00
]
2021-09-06 22:29:53 -04:00
model.screen = screen
model.views = [view for name, view in views]
2021-08-28 23:09:02 -04:00
screen.play(
2021-09-05 18:48:20 -04:00
scenes, stop_on_resize=True, start_scene=last_scene, allow_int=True,
2021-09-08 18:28:29 -04:00
)
2021-08-28 23:09:02 -04:00
def main():
last_scene = None
model = Model()
try:
Screen.wrapper(screen_wrapper, arguments=[last_scene, model])
sys.exit(0)
except ResizeScreenError:
os.system('reset')
print('Unfortunately, ceo does not currently support dynamic resizing.')
sys.exit(1)