Download Archie - Software Composition Group
Transcript
First, we define an abstract class AbstractDataSource that provides a first entry-point for other plug-ins to extend and write their own statistics. This AbstractDataSource extends the Elexis class BackgroundJob which is a subclass of Eclipse API class Job. In Eclipse Jobs are tasks that can be scheduled and executed. During their execution the API provides methods for monitoring, locking resources, or cancelling currently running jobs. Eclipse Jobs also provide user feedback during execution [Vale04]. These properties are perfectly suited for our data providers. Data providers are gathering statistical data about Elexis. During this process a visual feedback about the current progress is shown to the user. This is the the same concept Elexis already uses to retrieve data from the database – most parts of Elexis itself where data retrieval takes place, particularly if the retrieval may take some time, use a BackgroundJob and therefore the Eclipse Job API. Figure 3.4: First, Conceptual UML Draft Furthermore, we need two controllers for creating tables and charts. Tables are used in the user interface (UI) to display the gathered data to the user. Charts are used to build visualizations of data already displayed in the UI. For this, we define two controller classes — a TableFactory for generating tables and a ChartFactory for creating pie, line, or bar charts based on the data in AbstractDataSource. 17