...
The following illustrates the directory structure:
webapp
+-- app
| +-- fw
| | +-- util layer
| | +-- svg mast
| | +-- layers nav
| | +-- remote
| | +-- mast svg
| | +-- nav util
| | | +-- view widget
| |
| +-- sample view
| +-- topo device
| +-- device sample
| +-- appext topo
|
+-- data
| +-- img
| +-- map
|
+-- mock tests
| +-- tests app
| | +-- app fw
| | | +...
| | +-- fw view
| | | +...
| | +...
| +-- e2e
|
+-- tp
|
+-- WEB-INF
app directory
The app directory contains subdirectories
- fw for framework related code
- That is, features/functions shared by all "views"
- view for view related code
- That is, a subdirectory for each "view" implemented
- The name of the subdirectory is the "id" of the view
app / fw directory
The fw subdirectory contains the following subdirectories, providing a number of categories of functionality:
- util
- General functions
- Key Handler
- Theme Service
- Alert Service
- svg
- Glyph Service
- Icon Service
- GeoDataService
- Map Service
- Zoom Service
- SVG Utilities Service
- layerlayers
- Flash Service (transient messages)
- Panel Service (floating panels)
- Quick Help Service (key bindings, mouse gestures)
- Death Mask Veil Service (loss of server connection)
- widget
- Button Service (normal, toggle, radiobuttonset)
- Toolbar Service
- Table Service
- Tooltip Service
- remote
- Login Service
- Web Socket Service
- REST Service
- mast
- Masthead functions
- nav
- Navigation Service
...
For example, topo contains the code implementing the Topology View.
appext directory
The appext directory is simply a placeholder to be used as the root path for external application code.
It is expected that external applications (separate .jar/.war packaging) will contribute views and or topology overlays to the main GUI. This functionality will be injected server-side, with the source code file paths projected to be under this directory name. For example:
appext
+--- foo
| +... (foo code and resources)
+--- bar
: +... (bar code and resources)
data directory
The data directory contains subdirectories for static data files
- img - images (.png etc.)
- map - GeoJSON map data
- ...
mock directory
...
- .
tests directory
The tests directory contains karma / jasmine unit tests and end-to-end (scenario) tests for javascript modules.
...