Challenge Overview
In previous challenges, we have built a java based desktop application to visualize well log data and implemented basic matching algorithm.
In this challenge, we need to implement a more flexible UI so that it can deal with more views:
In this challenge, we need to implement a more flexible UI so that it can deal with more views:
- We’ll be showing as many as 10+ more windows as part of the app as it develops. They don't all need to be shown at the same time on the same workspace, instead there should be different windows/panels that users can show and hide, similar to how Eclipse handles multiple windows.
- Following this approach, we’ll have different "Views" and it would list the available views to show on the workspace. Users could toggle them. This "Views" panel would need to be hide-able as well so that users would show and hide it when necessary. We need to restructure the current UI so they will now belong to different views, for example:
- View #1 can contain the original and reference plot panels, and the settings that will directly affect both plottings
- View #2 can contain the guidelines table and other controls / buttons related to it
- View #3 can contain the plot panels that show overlapped data
- There can be a common menu section at the top of the UI to load data, change global settings, etc...
- We need to be able show data loaded from the log files in table form. We currently have a table form in the app but only when a user adds the guidelines, we need to implement a similar table for the log data, and this can be a separate view that can be shown or hidden.
- When implementing this, make sure the mechanism is implemented with enough flexibility so that we will be able to easily add more views in the future. The logic to manage these different views should reside in a common / central controller so that we don’t have to rewrite such code whenever we add a new view, instead any new view just needs to register to the controller to be able to receive show / hide events.
TECHNOLOGY
Java 8Final Submission Guidelines
- Single zip containing your code and documents that cover all the requirements above
- Include a readme in markdown format with full details on how to setup, configure, run and verify your submission