Skip to content
Kevin Jia edited this page Jun 28, 2015 · 1 revision

Welcome to the Organizer wiki!

The Personal Organizer Application design document


General information


Versions:


Date modified Version. No Author Modifications
27 Feb 2015 0.0.1 Zhenge Jia Initial version
05 Mar 2015 0.0.2 Zhenge Jia Improvement of main interface, build up database via MySQL
13 Mar 2015 0.0.3 Zhenge Jia Change to use Derby as an Embedded database
22 Mar 2014 0.0.4 Zhenge Jia Enable the app to export different formats of file, store users' preferences
23 Mar 2014 0.0.5 Zhenge Jia Add calendar with todo list embedded, Add two JUnit test classes
25 Mar 2014 0.0.6 Zhenge Jia Add design document, test summary

Introduction


The application is designed to store contracts and demonstrate stored informations to users. The function of the application is to provide convenience for viewing and managing contract records. The application is demonstrated by GUI, the components of it is connected by methods behind GUI and the data utilized by the app is stored in an Embedded Database named Derby.

Purpose of this document


  1. To provide a base for the Personal Organizer application.
  2. To summarize and explain ideas on various components on the application.
  3. To explain the reasons why choose such method or class to be utilized instead of others.
  4. To serve as a summary of the experience and reflection on designing such application.

The Structure of Personal Organizer Application


The Personal Organizer Application consists of three parts, which are GUI, methods within GUI and Embedded Database. The following doc will discuss these parts respectively.

About GUI

The JFrame MyAddress


The main frame MyAddress is made up of JMenuBar and an empty place for MainFrame or AddFrame to be added under various operations. As for menu item, it provides users with functions to export contracts info in three formats, change skin of the app, demonstrate all contracts info in a JTabel, pop a calendar and etc.

The Main Interface MainFrame


The MainFrame extends a JPanel. The main part of MainFrame is a list of names depending on the selection of JComboBox group which provide options of various group. Besides that, it enables user to search or add record and show the changes simultaneously.

The Add Interface AddFrame


As for AddFrame, it also extends a JPanel and enables user to add new record including several entries of a person. The image could be uploaded and changed in this interface.

The Edit Interface EditFrame


The EditFrame implements two functions. The first one is to demonstrate all information of the person selected from MainFrame. The second one is to enable user to edit or delete the information of the selected person and save it.

The Demonstrate Interface DemFrame


The DemFrame could list informations of all contracts in a JTabel.

About Methods within GUI


The methods implemented within different GUIs lead application to work correctly and smoothly. Methods could be ActionListener, MouseListener and etc. These methods are like a bridge connecting various components in GUI or GUI with database. They could decide the appearance of specific component, obtain data from database and show it on screen and etc. The doc will pick up several instances to discuss the importance of methods within GUI.

The First Method: ActionListener


It is the method that be used mostly in Swing GUI. The ActionListener implements functions for all buttons and menu items. This method is like a bridge connecting various components in the application.

The Second Method: MouseListener


The method MouseListener is utilized to implement help message function. It provides user a tip for "tricky" component when user operate mouse to enter the component. It also enables number of days of month to change from black to blue when user move mouse to the area.

The Third Method: Methods in SimpleQuery class


All methods implemented in SimpleQuery class is a connection between GUI and database. They build up a connection with database and obtain expected record in Object form. Then it can be applied in GUI and provides data for GUI to shown on screen. Besides that, the Xstream in Xstream jar is used to transfer data from Object to xml or Json in form of String.

About Embedded Database


Database software is the phrase used to describe any software that is designed for creating databases and managing the information stored in them. Sometimes referred to as database management systems (DBMS), database software tools are primarily used for storing, modifying, extracting, and searching for information within a database.

As for Derby


There are various kinds of database being utilized in the real world such as MySQL, Access and etc. As for this application, the embedded database Derby is applied to store and manage data. Derby is an embeddable SQL engine written entirely in Java. Fully transactional, multi-user with a decent SQL subset, Derby is a mature engine and freely available under the Apache license and is actively maintained.

Benefit of utilizing Derby


The Derby database shares memory in jvm with source code in the program. As a result, it enables user to operate the application without the Internet. The application could build up a database which runs smoothly on any laptop or PC. Besides that, there is no need to establish a server for the application. All data is stored in local jvm, there is no probability that the record could be stolen through connecting with server via the Internet.

The End


Through the design process on assignment1, the understanding of relationship among GUI, methods and database has been improved. Hope for the next assignment and obtain more improvement.

The UML Diagrame


Organiser