If you need more information about the application and what's going on in the application, you should add an event listener. The application sends events in different situations:
public void beforeSave(ProjX pApplication); public void afterSave(ProjX pApplication); public void beforeCommit(ProjX pApplication); public void afterCommit(ProjX pApplication); public void beforeRollback(ProjX pApplication); public void afterRollback(ProjX pApplication); public void beforeReload(ProjX pApplication); public void afterReload(ProjX pApplication); public void beforeUndo(ProjX pApplication); public void afterUndo(ProjX pApplication); public void beforeRedo(ProjX pApplication); public void afterRedo(ProjX pApplication); public void openContainer(ProjX pApplication, IContainer pContainer, IContent pContent); public void vetoOpenWorkScreen(WorkScreenEvent pEvent); public void beforeOpenWorkScreen(WorkScreenEvent pEvent); public void afterOpenWorkScreen(WorkScreenEvent pEvent); public void openWorkScreenException(WorkScreenExceptionEvent pEvent); public void beforeCloseWorkScreen(WorkScreenEvent pEvent); public void afterCloseWorkScreen(WorkScreenEvent pEvent); public void beforeDestroyWorkScreen(WorkScreenEvent pEvent); public void afterDestroyWorkScreen(WorkScreenEvent pEvent); public void beforeConfigureMenu(ProjX pApplication, Menu pMenu); public void afterConfigureMenu(ProjX pApplication, Menu pMenu); public void beforeTabMode(ProjX pApplication, boolean pTabMode); public void afterTabMode(ProjX pApplication, boolean pTabMode); public void beforeOpenError(ProjX pApplication, Error pError); public void afterCloseError(ProjX pApplication); public void autoLoginException(ProjX pApplication, MasterConnection pConnection, java.lang.Throwable pThrowable); public void beforeLogin(ProjX pApplication); public void beforeLogout(ProjX pApplication); public void beforeNotifyVisible(ProjX pApplication); public void beforeNotifyVisible(ProjX pApplication); public void updateLanguage(ProjX pApplication); public void beforeOpenConnection(ProjX pApplication, AbstractConnection pConnection); public void afterOpenConnection(ProjX pApplication, AbstractConnection pConnection); public void beforeCommunicationException(ProjX pApplication, CommunicationException pException); public void afterCommunicationException(ProjX pApplication, CommunicationException pException);
No worries, there are event methods in the application. It's not needed to implement all of the above methods, only what you need, e.g.,
application.eventAfterLogin().addListener(this, "doAfterLogin");