1- # Techsenger MVVM4FX
1+ # Techsenger PatternFX
22
3- Techsenger MVVM4FX is a compact, practical framework for building JavaFX applications with the MVVM pattern.
4- It provides practical solutions to the most challenging problems of MVVM, including dynamic component composition,
5- lifecycle management, and component state ownership. The framework supplies all necessary interfaces and base class
6- implementations for creating components, which serve as the fundamental units of the MVVM pattern. Examples of
7- components include tabs, dialog windows, toolbars, image viewers, help pages, and more.
3+ Techsenger PatternFX is a compact, practical, component-oriented framework for building JavaFX applications using an
4+ extended MVVM pattern. It provides a complete architectural solution that addresses the limitations of classical
5+ MVVM while preserving its core strengths. With PatternFX, you can easily solve the most challenging MVVM problems,
6+ including dynamic component composition, lifecycle management, and component state ownership. The framework supplies
7+ all the necessary interfaces and base class implementations for creating components. Examples of such components
8+ include tabs, dialog windows, toolbars, image viewers, help pages, and more.
89
910As a real example of using this framework, see [ TabShell] ( https://github.com/techsenger/tabshell ) project.
1011
@@ -33,7 +34,7 @@ As a real example of using this framework, see [TabShell](https://github.com/tec
3334
3435## Overview <a name =" overview " ></a >
3536
36- MVVM4FX reimagines the Model–View–ViewModel pattern as a component-based framework designed around clarity, modularity,
37+ PatternFX reimagines the Model–View–ViewModel pattern as a component-based framework designed around clarity, modularity,
3738and the KISS principle for building complex, dynamic JavaFX applications. It addresses the most fundamental limitation
3839of classical MVVM — dynamic component composition and lifecycle management — by introducing an explicit, imperative
3940component layer responsible for the creation, ownership, and lifetime of components. Each ` Component ` exists as a
@@ -48,11 +49,11 @@ components;
4849- ` ComponentMediator ` provides a controlled interaction channel between the ` ComponentViewModel ` and the ` Component ` ;
4950- ` ComponentHistory ` preserves continuity across sessions.
5051
51- At its core, MVVM4FX follows the KISS principle – every class, method, and abstraction exists only for a clear reason,
52+ At its core, PatternFX follows the KISS principle – every class, method, and abstraction exists only for a clear reason,
5253avoiding unnecessary complexity or dependencies. This simplicity is deliberate: it keeps the architecture transparent,
5354predictable, and easy to extend.
5455
55- By combining conceptual clarity with structural discipline, MVVM4FX achieves both architectural purity and practical
56+ By combining conceptual clarity with structural discipline, PatternFX achieves both architectural purity and practical
5657flexibility — a balance where components remain independent yet fully interoperable. It is not a minimalistic
5758abstraction but a complete design system for building coherent, maintainable, and intelligent JavaFX applications.
5859
@@ -251,7 +252,7 @@ A component has five distinct states (see `ComponentState`):
251252
252253### Component Tree <a name =" component-tree " ></a >
253254
254- Components in MVVM4FX form a hierarchical structure, called the component tree that can change dynamically. This tree
255+ Components in PatternFX form a hierarchical structure, called the component tree that can change dynamically. This tree
255256represents the logical composition of the application and is independent of the JavaFX node tree, which is
256257responsible only for rendering.
257258
@@ -283,7 +284,7 @@ clarity, testability, and long-term maintainability.
283284There are two main approaches to managing UI components: declarative and imperative. Each has its own strengths and
284285weaknesses.
285286
286- MVVM4FX adopts the imperative approach. In this approach, components are explicitly created, initialized, added to
287+ PatternFX adopts the imperative approach. In this approach, components are explicitly created, initialized, added to
287288the component tree, and deinitialized by the developer. This choice leads to the following characteristics:
288289
289290Strengths:
@@ -300,7 +301,7 @@ tabs, dialogs, or search panels).
300301- Higher initial learning curve for developers new to the framework.
301302- Careful design discipline needed to prevent overly complex or "God" components.
302303
303- This approach ensures that MVVM4FX components behave predictably, remain testable, and can support complex,
304+ This approach ensures that PatternFX components behave predictably, remain testable, and can support complex,
304305long-living, dynamic UI applications.
305306
306307### Component Code Example<a name =" component-code " ></a >
@@ -416,36 +417,36 @@ Java 11+ and JavaFX 19.
416417
417418## Dependencies <a name =" dependencies " ></a >
418419
419- This project is available on Maven Central:
420+ This project will be available on Maven Central in a few weeks :
420421
421422```
422423<dependency>
423- <groupId>com.techsenger.mvvm4fx </groupId>
424- <artifactId>mvvm4fx -core</artifactId>
425- <version>${mvvm4fx .version}</version>
424+ <groupId>com.techsenger.patternfx </groupId>
425+ <artifactId>patternfx -core</artifactId>
426+ <version>${patternfx .version}</version>
426427</dependency>
427428```
428429
429430## Code Building <a name =" code-building " ></a >
430431
431432To build the library use standard Git and Maven commands:
432433
433- git clone https://github.com/techsenger/mvvm4fx
434- cd mvvm4fx
434+ git clone https://github.com/techsenger/patternfx
435+ cd patternfx
435436 mvn clean install
436437
437438## Running Demo <a name =" demo " ></a >
438439
439440To run the demo execute the following commands in the root of the project:
440441
441- cd mvvm4fx -demo
442+ cd patternfx -demo
442443 mvn javafx:run
443444
444- Please note, that debugger settings are in ` mvvm4fx -demo/pom.xml` file.
445+ Please note, that debugger settings are in ` patternfx -demo/pom.xml` file.
445446
446447## License <a name =" license " ></a >
447448
448- Techsenger MVVM4FX is licensed under the Apache License, Version 2.0.
449+ Techsenger PatternFX is licensed under the Apache License, Version 2.0.
449450
450451## Contributing <a name =" contributing " ></a >
451452
0 commit comments