Data model as a bridge between data and user interface

    Project “Data Model” (fishbolt.model). The core of architecture is the conceptually new data model. The model is an alternative to existing approaches to organizing data structures in Java applications, such as Plain Old Java Object (POJOs), Enterprise JavaBeans (EJB) and others. The advantages of the model compared to existing approaches are that it is more flexible in terms of adding new or changing existing functionality, more informative in terms of the possibility of analyzing the data structure by software, and also provides the identification of most errors associated with changes in the structure data, at the compilation stage, and not at runtime.

    The project "Extensions of the data model" (fishbolt.model.ext). An effective model extension mechanism makes it easy to add new functionality to the model. Fishbolt offers a number of useful extensions of the model, which include:

    * a mechanism for tracking and processing events in the model
    * a mechanism for checking (validating) user-entered values
    * a mechanism for sorting data, etc.

    The "Model Providers" project (fishbolt.model.provider). The model provides the ability to integrate with various data sources. Model providers are responsible for integrating with data sources. Model providers are an abstraction. Integration with a particular source is provided by the specific implementation of providers. Fishbolt offers two provider implementations:

    * The project "Implementation of the model in memory" (fishbolt.model.memory) - provides storage of data in RAM. Upon completion of the program, this data is completely lost. This implementation is convenient for testing developed software.
    * The project "Implementation of the model using Hibernate" (fishbolt.model.hibernate) - provides interaction with databases through Hibernate technology.

    To ensure integration with Hibernate, two (auxiliary) projects are designed:

    * Project “Pattern Command and Hibernate” (fishbolt.hibernate) - with the help of the pattern, the Team encapsulates the management of Hibernate sessions and transactions, so that the client of the fishbolt.hibernate library can no longer worry about these things. The fishbolt.hibernate library can be used regardless of the fishbolt.hibernate.model data model in any Java applications that use Hibernate technology.
    * The project “Hibernate annotations in the model” (fishbolt.model.hibernate.annotations) - provides support for Hibernate annotations in the objects of the data model.

    The various ideas and approaches on which the model and its extensions are based are based on such well-known design patterns as “Adapter”, “Team”, “Listener”, as well as specially designed patterns - “Set of flags”, “Manager” and “ Representative of value. " Implementations of these patterns are contained in the General Patterns project (fishbolt.common).

    At the presentation tier, Fishbolt provides model integration with various technologies and platforms:

    Eclipse Platform The Eclipse Platform Integration plug-in project (fishbolt.model.eclipse) allows you to quickly and easily develop user interfaces for application data models using the user interface components provided by the Eclipse platform. The plugin supports both simple components from the Standard Widget Toolkit (input fields, drop-down lists, etc.) and complex components from the JFace set (editors, wizards, tables, trees, etc.).

    In addition to the fishbolt.model.eclipse plugin, Fishbolt offers several more Eclipse plugins that together form a framework for building multi-level applications on the Eclipse platform. For more information about these plugins, see "Integration with the Eclipse Platform".

    FreeMarker Template Language. The project "Integration with the FreeMarker template language" (fishbolt.model.freemarker) provides the ability to generate reports based on the data contained in the model using FreeMarker templates.

    Fishbolt is currently developing projects to greatly simplify the construction of user interfaces for application data models in Netbeans (based on the Swing library) and in web applications.

    See details at fishbolt.ru

    Also popular now: