ERPDesk

Changelog

Full release notes for ERPDesk — the UML designer for Windows with multi-dialect SQL generation and round-trip XMI.

Version 1.2

Latest 1 September 2026

Fixed

  • The Model Explorer’s selected row was unreadable. It was the one control without a themed appearance, so it still used the harsh system highlight — a saturated blue box — while the row’s own labels kept their near-black colour. The selection now uses the same soft tone as the rest of the app, stretches across the full row, and stays visible in a quieter shade when focus moves to the canvas. The branch arrows are themed to match.
  • The packaging script stamped the installer with the wrong version. It read the version before the build, but the build itself increments the build number — so the package claimed one version while the program inside it reported the next. The version is now read afterwards, and packaging fails outright if the two ever disagree.

Version 1.1

1 September 2026

A full audit of the app found 20 correctness bugs, 3 dark-mode defects and 14 workflow gaps — all fixed here. Alongside them: drawing a link between two tables now offers to make it a real foreign key, there is a live SQL panel under the canvas, and the interface has had a proper pass.

New — foreign keys and live SQL

  • Draw a link between two tables and ERPDesk offers to make it a real foreign key — pick or create the child column, choose the referenced column, set nullability. One undo step, and it appears in the generated DDL immediately. Drawn relationships previously contributed nothing at all to the schema.
  • A live SQL panel docked under the canvas (View → Live SQL panel), regenerating as the model changes, with dialect and option pickers.
  • DROP TABLE IF EXISTS prelude and CREATE INDEX on foreign-key columns as export options — indexes are skipped for MySQL, which creates them itself.
  • Whole-project SQL export when your tables are spread across several diagrams.

Fixed — correctness

  • Drag-to-connect never created a connection. The drop target could never actually name the shape under the cursor — and this was the only interactive way to create a connection at all.
  • PNG, PDF and clipboard exports contained the selection outline and resize handles. The selection is now cleared for the render and restored afterwards.
  • SVG export dropped every table’s columns, falling back to a generic rounded rectangle. Tables now have a real writer, along with the Pool, Lane, Data Object, Data Store, Fragment and Activation shapes that were also missing.
  • Nothing in the Properties panel was undoable — Ctrl+Z after a recolour undid an earlier, unrelated action. Every property edit now records history, with slider drags coalesced into one step.
  • Closing a diagram tab discarded its contents silently and irreversibly. It now confirms, and it can be undone.
  • Auto-save was written every two minutes and never offered back. It is now recovered on the next start, and cleaned up after a clean exit.
  • Ctrl+click could not remove a shape from a selection, clicking one shape of a multi-selection did not narrow to it, and Ctrl+C with only a connection selected wiped the clipboard.
  • Curved connections were hit-tested as straight lines, so clicking the visible curve missed it, and class and table contents painted outside their own box when the shape was too small — now clipped, with a new Fit to content command.
  • Orthogonal routing ran its first segment backwards (and flipped the source arrowhead) when two shapes overlapped, and an XMI round-trip merged two parallel associations into one.
  • The DDL parser stripped comments without respecting quoted text, so DEFAULT 'a--b' lost everything after the dashes. SQL generation also emitted an invalid empty CREATE TABLE for an all-unnamed table, wrote duplicate table names twice, and did not length-limit or de-duplicate constraint names.
  • A grid size of zero in a hand-edited file turned every coordinate into a non-number, and event-handler leaks meant views re-subscribed without ever detaching.

Fixed — dark mode

  • Every text box and drop-down in the Properties panel rendered white-on-white.
  • The menu bar, toolbar, status bar and tab strip were hard-coded white, so dark mode only repainted the background behind them.
  • The grid, connection labels, hollow arrowheads and shape text ignored both the theme and the shape’s own fill — a dark-filled shape had unreadable black text on it. Text colour is now derived from the fill by measured brightness, on the canvas and in SVG export.

Added — workflow

  • An Edit menu and a canvas right-click menu, both acting on whatever is under the cursor.
  • Ctrl+A, Ctrl+D, Ctrl+X, Ctrl+Shift+Z, Ctrl+Shift+S, arrow-key nudging (Shift for a coarser step), and Esc to deselect or cancel a connection.
  • Align, distribute and make-same-size for multi-selections — and appearance edits now apply to the whole selection, since the panel no longer disappears when more than one shape is selected.
  • Per-diagram zoom and pan, remembered, so switching tabs no longer re-frames the diagram.
  • Relationship presets for the Connect tool — association, directed, inheritance, realization, aggregation, composition, dependency, foreign key — with a hover highlight on the drop target and an optional sticky mode.
  • Model Explorer search across diagrams, elements, columns and members, with per-kind icons and Zoom to selection; double-clicking an element now reveals it instead of re-fitting the whole diagram.
  • Columns editor: OK / Cancel with full rollback, row reordering, a type drop-down, and a foreign-key target drop-down listing the diagram’s other tables.
  • File → Open recent, and copy and paste through the system clipboard, so fragments cross windows and restarts.

Changed

  • PDF export is lossless. It used to embed a compressed photo-quality image, which put visible ringing on every line and letter.
  • Auto-layout minimises crossing lines and gives unconnected shapes their own columns instead of one very tall pile.
  • Grid visibility is independent of snapping — one checkbox used to control both.
  • A refreshed interface — a proper icon toolbar with real hover and pressed states, vector shape previews in the toolbox, a status-bar zoom control showing the active tool and last action, collapsible property groups with X/Y/W/H fields, a colour picker in place of bare hex entry, and a minimap.
  • Startup is quicker — the splash held for a fixed 1.5 seconds regardless of whether the app was ready; it is now 450 milliseconds.

Version 1.0

2026

First public release. A complete UML designer covering ER, class, process, and sequence diagrams — with multi-dialect SQL generation, SQL reverse engineering, multi-diagram projects, XMI 2.1 round-trip, and PNG / SVG / PDF export.

Recent fixes

  • Unsaved-template lost on File → New / Open / Close. The save-prompt now fires whenever the project has any content and hasn't been saved to a file yet, so a never-saved diagram can't disappear silently.

Interchange — XMI 2.1 / UML 2.x Export & Import

  • XMI export writes the project as OMG-standard XMI 2.1 + UML 2.x so other UML tools (Visual Paradigm, Enterprise Architect, StarUML, Modelio, MagicDraw, ArgoUML) can read it. Each diagram becomes a UML package; nodes become Class / Interface / Enumeration with ER shapes carrying a «Table» / «Entity» stereotype; connections become Associations or Generalizations. Reachable via File → Export → As XMI (UML 2.x)….
  • XMI import reads XMI 2.1 documents from ERPDesk or other tools. Tolerant of small dialect differences (matches element names by local-name).
  • Lossless ERPDesk round-trip: an extension block carries layout (x / y / width / height), colours, ER shape kinds, full column metadata (length / scale / PK / FK / nullable / unique / autoinc / default) and connection style. Other tools ignore the extension but still see a valid UML model.
  • Auto-layout on foreign imports: when the ERPDesk extension is absent (the file came from another tool), the importer arranges every imported diagram automatically.

Branding — Icons, Splash, About

  • App icon, Store assets & splash images produced from a single source — multi-size icon (16–256), all MSIX tile sizes, splash images at scales 100 / 125 / 150 / 200 / 400, an About logo, and a Store banner.
  • Splash window: borderless logo splash shown briefly at startup, with the live version number, then hands off to the welcome screen.
  • About box: square logo, product name, version + build number, clickable backendside.com hyperlink, Copy-version button. Reachable via Help → About ERPDesk….
  • Auto-incrementing build number: every build bumps the Build component of the version stamped into the executable and surfaced in the About box.

Auto-Layout

  • Auto-layout: a layered (Sugiyama-style) arrange that places nodes into columns by their distance along connections and stacks them within each column. Guaranteed overlap-free, cycle-safe, and deterministic. Exposed as View → Auto-layout diagram and an ⊞ Arrange toolbar button (one undoable step). Applied automatically to SQL imports.

SQL Reverse Engineering

  • DDL import: parses CREATE TABLE / ALTER TABLE scripts into table nodes with structured columns, primary keys, and foreign keys, then lays them out on a new diagram and draws FK connection lines. Lenient cross-dialect parser — handles quoted / bracketed / back-ticked and schema-qualified names, inline + table-level + ALTER ADD FKs, SERIAL / AUTO_INCREMENT / IDENTITY, DEFAULT, comments; skips what it can't model and reports notes. Round-trips with the generator (verified across all four dialects).
  • Import UI: paste a script or load a .sql file; reachable via File → Import SQL…. Imports onto a new “Imported SQL” diagram as one undoable step.

SQL / DDL Generation

  • The namesake feature: design tables visually, generate real SQL.
  • Table shape (ER category): a physical database table with structured columns (name, type, length / scale, PK, FK → table.column, nullable, unique, auto-increment, default).
  • Columns editor: a grid to add / edit / remove columns, opened from the Properties panel when a Table is selected.
  • Multi-dialect DDL generatorPostgreSQL, MySQL, SQL Server, SQLite — correct per-dialect identifier quoting, type mapping, and auto-increment (SERIAL / AUTO_INCREMENT / IDENTITY(1,1) / INTEGER PRIMARY KEY AUTOINCREMENT). Emits all CREATE TABLEs then ALTER TABLE … ADD FOREIGN KEYs (order-independent), plus -- WARNING: comments for no-PK tables, dangling / blank FKs, and duplicate table names.
  • Generate-SQL dialog: live dialect switch, syntax-styled preview, copy-to-clipboard, and save .sql. Reachable via File → Export → As SQL (DDL).
  • “SQL Schema” starter template: two linked tables ready to export.

Multi-Diagram Projects

  • One project holds many diagrams — an ER diagram, a class diagram, and a flowchart all in one place.
  • Diagram tab strip above the canvas (switch / add / close).
  • Model Explorer: a project → diagrams → elements tree; double-click to open a diagram or jump to an element.
  • File format v2: legacy single-diagram files auto-migrate into a one-diagram project on load (no data loss).
  • Unsaved-changes guard: New / Open / window-close prompt Save / Don't Save / Cancel; the title bar shows a * marker.

UX Polish

  • Welcome screen: New diagram, 5-template gallery, and a recent-files list. Shown at startup before the editor.
  • 5 starter templates: Blank, Basic ER, Basic Class Diagram, Basic Flowchart, Basic Sequence.
  • Dark / light mode: toggle in View menu, persisted. Chrome follows the theme; the canvas keeps the document's own “paper” background.
  • Keyboard cheat sheet (press ?).
  • Status bar shows element / selection counts, live cursor coordinates, and a zoom indicator; View menu has Fit-to-screen and Reset-zoom.

File & Export

  • File service: .umlproj save / load, re-resolving connection endpoints on load.
  • Auto-save every 2 minutes to a recovery file.
  • Export: PNG and PDF (2× raster; single-page PDF embedding a JPEG), and vector SVG generated from the model. Export selection only (PNG) and Copy as image to the clipboard.
  • File menu (New / Open / Save / Save As + Export submenu) with Ctrl+N / O / S; recent files tracked in settings.

Toolbox

  • Toolbox (left sidebar): tabs per diagram type (ER / Class / Process / Sequence), a search box (flat filtered results), and a “Recently used” section.
  • Shape tiles support click-to-add (drops at viewport centre) and drag-and-drop onto the canvas.
  • Category filters, search, recents (max 6).

Properties Panel

  • Properties (right sidebar): context-sensitive, no modal dialogs.
  • Node: name, italic / abstract, stereotype, fill & border colour (swatches + hex), border style, border thickness, font size.
  • Connection: label, routing, line colour, line style, start / end arrowheads.
  • Canvas: grid size, snap toggle, background colour.
  • Connection selection via click hit-testing.

UML Shape Libraries

  • Shape model: editable class members, stereotype, abstract flag, attributes and operations collections.
  • Shape catalog: all shape kinds, categories (ER / Class / Process / Sequence), per-kind default sizes, and a factory with sensible starting content.
  • Vector renderer for ER (entity, weak entity, attribute, multivalued, derived, relationship, weak relationship), Process (start / end events, task, gateway, data object, data-store cylinder), Sequence (lifeline, activation, combined-fragment), plus generic.
  • Class node view: Class / Abstract (italic) / Interface («interface») / Enum («enum») with inline-editable attribute & operation compartments — double-click to edit, Enter for a new row, + attribute / operation affordances.

Canvas Engine

  • Data models: observable nodes, connections, documents; enums for routing, arrowheads, and stroke styles.
  • Undo / redo: bounded stack (capacity 100) with add / remove, move, and resize edits; re-entrancy guard so applying an undo never records a new edit.
  • Diagram view model: selection, snap-to-grid, clipboard copy / paste with id remapping + cascading paste offset; all mutations routed through history.
  • Rendering: infinite grid in screen space (crisp 1px at any zoom), connections with straight / orthogonal / curved routing, 5 arrowheads, dash styles, and midpoint labels.
  • Interaction: Ctrl+wheel zoom-to-cursor, middle-drag pan, rubber-band multi-select, move + 8-handle resize, interactive connect-drag, double-click-to-add-node, fit-to-screen and reset-zoom.
  • Shell: toolbar (add / connect / undo / redo / copy / paste / delete / snap / fit / zoom), status bar (node / connection / selection counts + live cursor coordinates), zoom indicator, and Ctrl+Z / Y / C / V + Delete shortcuts.

Roadmap

  • Shared model elements / views — the same element appears across multiple diagrams and stays in sync.
  • Class ↔ ERD transform + EF Core / JPA code generation.
  • Live database introspection (read straight from a connected database).
  • New diagram types: Use Case → Activity → State Machine → Component / Deployment.
  • Editor polish: waypoint routing, doc export.

Versions

Documentation

User Guide →