This is a project to create a Java Applet to display two line graphs. The purpose of the applet is to be able to visually compare two time series simultaneously. The two time series will be displayed in windows called Pane 1 and Pane2. Pane 3 will contain data generated from a combination of data in pane 1 and pane 2.
The applet will communicate with a backend server for all CRUD operations. Communication with the backend will be done using AJAX POSTs (using jQuery), the payload will be in JSON format.
Since this project does not involve the backend, a test harness will be needed to mock up server responses.
The main requirements of the applet are as follows:
REQ-1. Display the main screen* which is divided into two vertical panes as follows:
Left hand side vertical pane:
i. Four times the width of the right hand pane
ii. Divided horizontally into three panes (Pane 1, Pane 2 and Pane 3)
iii. Pane 1 and Pane 2 have the same height
iv. Pane 3 is roughly 20% of either of the Pane 1
Right hand vertical pane:
Divided horizontally into two equal height panes (A and B)
Top toolbar with the following buttons:
i. Open (this displays a dialog box) and requests the selected data from the server (using a JQuery AJAX call)
ii. New (this displays a dialog box allows user to select item, and then requests data from the server)
iii. Delete (this displays a warning message first, if user continues, a 'delete' command is sent to the server)
iv. Save (this saves data back to the server)
v. FK (changes frequency of graph data displayed to KiloHertz)
vi. FM (changes frequency of graph data displayed to MHertz)
vi. FC (changes frequency of graph data displayed to Custom Hertz)
REQ-2: The main screen will have a horizontal scrollbar at the botttom of the window containing pane 1, pane 2 and pane 3
REQ-3: When the horizontal scrollbar is scrolled, the plot in pane1, pane 2 and pane 3 will be scrolled along together
REQ-4: Pane 2 (as described above) will have a drop down box in the top right hand corner, with a list of datasets that can be selected
to be plotted in pane 2
REQ-5: When a new data series (dataset) is selected from the drop down box as described above, the plot in pane1, pane 2 and pane 3 should
automatically scroll to the first date that is common to the timeseries in pane1 and pane 2.
REQ-6: Allow the line graph displayed in Pane 2 to be DRAG and DROPPED into EITHER Pane A or Pane B. If the line graph has already been
dragged and dropped into (either) Pane A or Pane B, don't let it be dragged and dropped again, unless it is deleted from Pane A (or B).
When a time series is drag and dropped from Pane 2 into Pane A (or B), the name of the time series is added to a list in the Pane (A or B)
REQ-7: A user can select one of the names in the list of Pane A (or B), and hit the delete key, to remove the time series from the list in Pane A (or B)
REQ-8: Clicking on the New button will display a dialog box. The user will select an item in the dialog box, and the selection would be used to fetch
the relevant data set from the server. A new main window is then displayed and the user will be able to visually compare two time series at
a time, and drag & drop the time series displayed in Pane 2 into Pane A or Pane B.
Note 1: if the user has changed an existing configuration before clicking the new button, they will be prompted whether they want to save
the new configuration or not. If they say yes, the configuration is saved (by sending it to the server), if not the data is discarded.
Note 2: In order to save on bandwidth, data fetched from the server is cached (in the browser cookie - for 24hrs).
* Note, a screenshots of mockups for the main screen and dialog box(es) will be provided
Additional Project Description:
04/21/2013 at 18:57 EDT
Please note: The applet is to be developed using Netbeans - so the code should be provided as a netbeans project.