Lucy comes with a variety of customizable frontend implementations. This diverse offering ensures that you can integrate Lucy in different kinds of applications.

To help choose your frontend, first ask yourself these questions:

  • Do I want to use the hardware-accelerated 2D/3D Lightspeed map or the non-accelerated 2D GXY map? Choose your technology stack discusses these options.

  • Is the map the main focus of the application?

  • Is the application limited to a single map or should it show more than one map?

  • In what way does the end-user need to customize the frontend?

The dockable frontends of Lucy and Lucy GXY

lucy
Figure 1. Dockable Lucy
lucy gxy
Figure 2. Dockable Lucy GXY

The dockable frontend offers a flexible, dockable application pane configuration with these features:

  • The end-user can dock, undock, move, and resize panes.

  • You can save custom layouts into the workspace.

  • You can open many maps at the same time.

  • It supports 2D/3D Lightspeed maps, or 2D GXY maps in the case of Lucy GXY.

The frontend is suitable for applications where the map is just a part of a larger application that displays many extra user interface components to cover other requirements.

This frontend is the default frontend used by the TLcyMain class. To start it from a LuciadLightspeed release, simply run Lucy.bat or Lucy.sh, depending on your operating system.

To start a dockable frontend configured with a 2D Lucy GXY map, run the appropriate GXY equivalent script: LucyGXY.bat or LucyGXY.sh. In Lucy GXY, you can still start a 3D map alongside the initially launched 2D map.

The Lucy user guide offers a visual overview of the dockable frontend.

The map-centric frontend

]
Figure 3. Map-centric Lucy

The map-centric frontend gives the map a central role in the application. It has these features:

  • Most of the screen real estate is dedicated to the map.

  • It uses a dark look and feel, putting even more focus on the map.

  • It uses a single map that can easily switch between 2D and 3D visualization.

  • The toolbar and menu bar of the dockable frontend merge into just one bar in the map-centric frontend. It offers a smaller set of functions, focused on loading and exploring data.

  • Various tasks require less user interaction:

    • The table view and profile view are always available below the map. Users can expand them when necessary.

    • Auxiliary panels such as the Map layers and Object properties in the screenshot are overlaid on the map. Users can expand them when necessary.

    • Time controls automatically appear when time-related data is available.

    • Users can access an extra toolbar to draw annotations on the map.

  • These features are all available as sample code. As a result, you can use it as a starting point for your own application and fully customize it where necessary.

To launch a map-centric configuration of Lucy, you can start Lucy Map Centric from the LuciadLightspeed launcher, or you can start the LucyMapCentric script.

The Lucy user guide offers a visual overview of the map centric frontend.

Other frontends

lucy tabbedpanes
Figure 4. Dockable Lucy with tabbed panes
lucy internalframes
Figure 5. Lucy with internal frames

LuciadLightspeed comes with more sample frontends:

  • samples.lucy.frontend.tabbedpanes: a simpler version of the dockable frontend based on JTabbedPane, offering less complexity and less flexibility to the end-user

  • samples.lucy.frontend.internalframes: a multiple-document interface (MDI) frontend that models panes as JInternalFrame instances

  • samples.lucy.frontend.granteddockableframes: a sample frontend implementation with the same features as the default dockable frontend

You can start all these frontends as samples from the LuciadLightspeed launcher.

Designing a custom frontend

You can also write a completely custom frontend with unlimited flexibility with respect to the user interface. See Creating a custom front-end application for an explanation. This article also discusses technical details of the available sample frontends.