System(Facade)::initializeSystem
set up Controller & Model
Controller initilization
intilize system env
start init_module []
register init module
create module state
init_state.reset
register state to system
create module UIs
A: changeStateTo init state
check if is a new state to enter, new_state.enterState(noti,old_state)
state.send notification of SimInitNoti_StartInit
B: push notice to notification queue and begin handling loop
System::handleNotification –> Controller.handleNotification
pass to module or state to handle, and get next state
State’s handling to notification according to different types
change to next state, which falls back to lable A, but with a different new state.
1. check_env
2. create main module
create_main_module
create states: rocmain_InitState\RocMain_RocDefaultState\RocMain_RocUISetupState
create UIs
main window
window mediator
3. create availableModules
create browser module
create edit module and multi-edit module
add to above 3 to main module
4. start_roc_main
unload init module
find roc main module