The User Interface of the ACP background text extractor consists of the following classes: PreferenceUI, SystrayUI and ExitUI.
When the ACP background is launched, the program is minimize to the system tray. User can interact with ACP through the system tray icon. Once the system tray user interface (UI) receive user requests, it will send to the ACPLogic class for processing. This is to done to ensure a clear separation of logic processing and UI code layer.
After system tray UI object is instantiate, it will create the preference UI window form object so that it can show the form when user choose to edit his preference through the system tray icon. The preference UI will send the changed preference to ACPLogic to reflect the changes and for persistent storing.
Since Preference UI and System Tray UI need to communicate with ACPLogic, there is a need for easy access to a single instance of ACPLogic. Singleton, a software design pattern, is used to solve this issue. ACPLogic also act as a Façade class to shield the UI components from the internal logic/data implementation. The design pattern is discussed in detail in the later section.