Core Framework · Chapters 1–9

mdi

The core MDI framework: application and desktop management, views, drawable items, toolbars, plotting, mapping, simulation, and optimization.

github.com/heddle/mdi

What It Covers

ChapterTopicKey classes
1Architecture overviewApplication → Desktop → View → Container → Layer → Item
2Creating the applicationBaseMDIApplication
3Creating viewsBaseView
4Drawable itemsAItem, PointItem, LineItem, PolygonItem, PolylineItem, RectangleItem, EllipseItem, RadArcItem, TextItem, ImageItem, ConnectorItem
5Toolbars and rubberbandingAToolBar, BaseToolBar, ToolBits, IToolHandler, GestureContext
6Plotting (sPlot)PlotView, PlotPanel, PlotCanvas, PlotToolHandler, ACurve, XYPlotBuilder, PlotDeck
7MappingMapView2D, MapContainer, IMapProjection, ShapefileLayer, MapLayerStyle
8SimulationSimulation, SimulationEngine, SimulationContext
9Optimizationsimulated annealing and genetic-algorithm demos, built as specialized simulations

Figures from the Optimization chapter (9), showing the simulated-annealing and genetic-algorithm demos in action.

Try It

git clone https://github.com/heddle/mdi.git
cd mdi
mvn install
mvn exec:java -Dexec.mainClass=edu.cnu.mdi.app.DemoApp

DemoApp opens a virtual desktop preloaded with a drawing view, a map view, a plot view, and several simulation/optimization demos (network decluttering, traveling-salesperson simulated annealing, image evolution via a genetic algorithm, and a geometry-slice view) — a useful first stop before reading the chapters in detail.

Maven Coordinates

Released versions are published on Maven Central under io.github.heddle.

<dependency>
    <groupId>io.github.heddle</groupId>
    <artifactId>mdi</artifactId>
    <version>1.2.3</version>
</dependency>

Check Maven Central for the artifact listing. The book release is v1.2.3.

API Documentation

Full Javadoc is available here.