Files

41 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Neitzel FX Designer developer guide
Neitzel FX Designer edits ordinary FXML while understanding NeitzelLib Models, bindings and reusable Components. The standalone application and the IntelliJ editor share the same Scene Builder Kit UI. This guide describes the current implementation; the older work-package documents record implementation history and test evidence.
Start with the [Person desk quick start](quick-start.md). It uses the real `fx-example` module in NeitzelLib, rather than a separate imitation. The module shows direct and computed bindings, converters, nested/repeated Components, a Table, selection, messages and dependency injection. The optional Designer profile adds sample previews and generated metadata without putting the Designer in the application's runtime dependencies.
| I want to… | Read |
| --- | --- |
| Run the example and open it in the Designer | [Quick start](quick-start.md) |
| Start a JavaFX project and connect it to the Designer | [Projects and configuration](projects.md) |
| Understand sample Models, build snapshots and previews | [Preview and build workflow](previews.md) |
| Edit layouts, Components, bindings and collections | [Authoring reference](authoring.md) |
| Generate metadata, Java ViewModels or a starter View | [Generation](generation.md) |
| Install/use the IntelliJ editor | [IntelliJ setup](intellij.md) |
| Understand the modules or diagnose a failure | [Architecture and troubleshooting](architecture.md) |
## What is available now
- Source, Design and Split views over the same authoritative FXML document.
- Editable target-rendered Component/Repeat/Table placeholders, sizing and Component/Row navigation.
- Direct, Computed, Repeat and Table/Column inspectors, compatible-target discovery and validation.
- Reference-aware identifier rename, subtree copy/paste and deletion with one host Undo/Redo command per operation.
- Shared Problems and source highlighting; native IntelliJ Problems and supported Alt+Enter fixes.
- Independent interactive preview with fresh sample Models and explicit outdated-build/draft handling.
- Opt-in generated Model metadata, generated Java ViewModel subclasses/registries and reviewed creation of a new editable FXML View.
- A native macOS app/ZIP containing its own Java runtime and Kit, plus an IntelliJ plugin for the tested IDE build.
The tested host baseline is macOS arm64, Java 25 and JavaFX/Kit 26. The reference application uses Java 21 and JavaFX 21.0.7. IntelliJ is qualified against build **263.7307.200**. These are tested combinations, not a claim that arbitrary JavaFX, JDK, IDE or OS versions work.
The current artifacts are development snapshots: NeitzelLib `1.0-SNAPSHOT` and Designer tooling `0.1.0-SNAPSHOT`. They must be built/installed locally or obtained from an explicitly provided development build. There is no published stable runtime minimum, public Maven repository or signed/notarized release implied by these instructions.
## Scope and conventions
A **Model** is an ordinary application object. A **ViewModel** is the NeitzelLib object exposing its Attributes as observable properties. A **View** is an FXML document. A **Component** is an application node/controller with its own matching `ClassName.fxml`. A **Row Component** is the reusable row implementation selected by a NeitzelLib Table. A Designer **context** chooses a Maven application and its build/target runtimes. A preview **example** chooses a fresh Model graph and services for one View resource.
Application classes execute only in target JVMs. They do not enter the standalone or IntelliJ host classloader. Discovery uses metadata and signatures; preview executes the application and therefore requires trusted project code. Separate processes are a runtime-isolation boundary, not a security sandbox.
Configuration files and explicit command-line selection are the supported setup workflow. A graphical project/context wizard is not required. Production IntelliJ–standalone ownership handoff, broader native structural editing, signed installation/update, and other platform combinations remain follow-up work. Both hosts can already edit independently; do not infer a coordinated transfer protocol from that fact.
The [documentation validation record](documentation-validation.md) maps this guide to reference-example checks and states what was not rerun.