Releases: code4teaching/VisuStruct
Releases · code4teaching/VisuStruct
Release list
VisuStruct 1.2.3
VisuStruct 1.2.3
Release after 1.2.2.
Kotlin migration
- Production sources are now Kotlin under
src/main/kotlin/(UI, control, structure elements, code generation, simulation XML). - Former Java sources are kept for reference only in
src/main/java-reference/(not compiled). - Tests remain Java under
src/test/java/and run against the Kotlin main code. - Behaviour and file format unchanged:
.visustruct/ XML projects remain compatible.
Internationalization
- Element editor and common dialogs (zoom, colour, font, element edit) use bundle keys (
editor.*,dialog.*) with EN + DE and EN fallback in all 21 UI locales. tools/resync_message_bundles.pyrebuilds locale files fromMessages_en.propertieswhen VisuStruct-swift is not available locally.tools/translation_aliases.jsonmaps new keys from existing translated Java keys where possible.- Full Swift parity still requires a sibling VisuStruct-swift clone and
python3 tools/sync_java_messages_from_swift.py.
UI
- Element editor split pane: one-touch expandable divider (
editorSplit).
Build
- Maven:
de.visustruct:visustruct:1.2.3 - Fat JAR:
visustruct-1.2.3.jar(./mvnw package→target/)
VisuStruct 1.2.2
VisuStruct 1.2.2
Patch release after 1.2.1.
Languages
- 21 UI languages (aligned with VisuStruct-swift): Settings → Languages only; persisted as
uilanguageinvisustruct.properties. - Settings → Labels (structogram) is for text presets only (Java-like / didactic in menu language) — no duplicate language list.
- Settings → Simulation… for simulation-specific options (separate from label presets).
- Bundles synced from the Swift app where keys overlap:
python3 tools/sync_java_messages_from_swift.py.
Build / CI
- GitHub Actions: unit tests no longer fail with
java.awt.HeadlessExceptionon CI runners without a display. Drag-and-drop is initialized only when not in headless mode (GraphicsEnvironment.isHeadless()).
Build
- Maven:
de.visustruct:visustruct:1.2.2 - Fat JAR:
visustruct-1.2.2.jar(./mvnw package→target/)
VisuStruct 1.2.0
VisuStruct 1.2.0
Release after 1.1.4 (GitHub master).
Simulation (Kotlin)
- Kotlin im Maven-Build (
kotlin-stdlib, explizite Quellpfade für stabile Kompilierung). - Modell
SimulationDocument/SimulationElement/ … und XML-Decoder (StructogramXml), kompatibel zum bestehenden.visustruct/<struktogramm>-Format (Swift/Java-Parität). - Editor-Brücke:
Struktogramm.toSimulationDocument()— gleiche XML-Quelle wie Speichern / Rückgängig (xmlErstellen()). - Laufzeit:
SimulationEnginemit schrittweiser Ausführung, Simulations-Ansicht (Transport, Variablen, Ausgabe, Eingabe), Diagramm-Hervorhebung (letzter/nächster Schritt).
Build
- Maven:
de.visustruct:visustruct:1.2.0 - Fat JAR:
visustruct-1.2.0.jar(./mvnw package→target/)
VisuStruct Java 1.1.4
VisuStruct 1.1.4
Release after 1.1.3 (GitHub master).
Diagram canvas
- View zoom for the diagram: ⌘+ / ⌘− on macOS, Strg+ / Strg− on Windows/Linux (root-pane shortcuts). The logical block layout is unchanged; only the on-screen scale changes.
- Removed: resizing blocks with the mouse wheel (and the related setting / menu entry / persisted option).
Tabs
- Unsaved changes: closing a tab (×, middle-click, context menu, or Diagramm schließen) asks to save, discard, or cancel when the diagram is dirty.
- Dirty indicator is shown on the tab chrome (no
*suffix in the title text).
Code maintenance
- Removed large sections of commented-out legacy code (obsolete helpers, unused fields, dead branches) in
Struktogramm,StrTabbedPane,AuswahlPanel,Fallauswahl,StruktogrammElementListe,XMLLeser, and related classes to reduce noise and merge conflicts.
UI & localization (follow-up)
- Palette: Generate code / Code erzeugen button below the trash control (same dialog as File → Generate source code).
- Default block text presets: only Java-like and interface language (removed extra German-only packs); settings key
elementlabelpresetwith migration from legacyelementbeschriftungpreset. - i18n: aligned DE / EN / pt_PT structure block names (e.g. loop wording); English palette If wording (no “branch” tooltip).
Build
- Maven:
de.visustruct:visustruct:1.1.4 - Fat JAR:
visustruct-1.1.4.jar(./mvnw package→target/)
VisuStruct 1.1.3
VisuStruct 1.1.3
Tabs
- Close diagram tabs via middle-click, tab context menu, and Ctrl+W / Cmd+W (sensible behaviour for the last tab and unsaved changes).
- Clicking the tab header reliably switches the active diagram; the close control is a label instead of a button so it no longer steals tab-selection clicks.
Palette
- Trash: left-click deletes the currently selected (yellow-highlighted) block, with the same confirmation dialog as Delete in the context menu. Dragging a block onto the trash still removes it as before.
Code generator
- Extensions for Java scope and
CodeGenRules, including updates toStruktogrammElementListeandCodeErzeuger.
Requirements: Java 17
Run: java -jar visustruct-1.1.3.jar
VisuStruct 1.1.1
Summary
- Adds system Print support from the File menu.
- Updates the palette trash area to use a larger Lucide trash icon.
- Fixes JavaScript preview opening for local HTML files and prevents duplicate insertion after drag-and-drop from the palette.
Build
- Version: 1.1.1
- JAR: visustruct-1.1.1.jar
VisuStruct 1.1
Summary
- Adds a Swift-style bottom element editor with focused editing, placeholders, input/output modes, for-loop fields, and switch case controls.
- Improves code generation for Java, Python, and JavaScript using rules aligned with the SwiftUI version, including input/output handling, typed assignments, for-loop conversion, length handling, and Java snippet/class output.
- Improves JavaScript export with copy support and a browser runner page that shows
console.logoutput without opening developer tools. - Updates the About dialog links: Web points to visustruct.org, GitHub stays on code4teaching/VisuStruct, and Developer points to sebastiao.org.
Build
- Maven build target:
target/visustruct-1.1.jar - Verified with
./mvnw package
VisuStruct 1.0.9
VisuStruct 1.0.9 — release notes
- Palette: Lucide SVG icons for the element buttons (
Statement,Branch, loops,Switch,Break,Call). - For loop: multi-part headers are displayed and generated as a single C-style header (
start; condition; increment). - Java code generation:
output:statements are exported asSystem.out.println(...). - Licenses: Lucide attribution added to the About dialog; full Lucide/Feather license text is bundled.
Build artifact: visustruct-1.0.9.jar.
VisuStruct 1.0.8 — JavaScript export & browser preview
VisuStruct 1.0.8 — release notes
Source code generator
- JavaScript export (brace syntax like Java); generated output starts with
"use strict";. celanguageinvisustruct.properties:0= Java,1= Python,2= JavaScript.- Generate code dialog: Test in browser (only when JavaScript is selected): confirmation explains that free diagram lines must be valid JS; opens a temporary HTML preview in the default browser (
</script>in user code is escaped). - Browser preview page: short hint (localized) on how to open the developer console (Safari, Firefox, Chrome, Edge).
Build
- Maven:
de.visustruct:visustruct:1.0.8, artifactvisustruct-1.0.8.jar, release also shipsvisustruct.jar.
VisuStruct 1.0.7 – Python im Quellcode-Generator, mehrsprachiger Dialog
Quellcode-Generator: Zusätzlich zu Java kann der exportierte Code als Python erzeugt werden (u. a. match / case / case _: für die Mehrfachauswahl; sinnvoll ab Python 3.10).
Dialog „Quellcode erzeugen“ ist mehrsprachig (u. a. Deutsch, Englisch, Portugiesisch); die gewählte Zielsprache wird in visustruct.properties unter celanguage gespeichert (0 = Java, 1 = Python).