chore: bump version to 3.0.1 and update plugin documentation
This commit is contained in:
15
GEMINI.md
15
GEMINI.md
@@ -2,19 +2,20 @@
|
|||||||
|
|
||||||
## Project Overview
|
## Project Overview
|
||||||
|
|
||||||
The `DynamicFormTools` is an IntelliJ Platform Plugin designed to automate the generation of Java `ActionBean` and Data Transfer Object (DTO) classes from a database schema. This plugin integrates directly into the IntelliJ IDE, allowing developers to select a database table and generate corresponding Java classes based on predefined FreeMarker templates.
|
The `DynamicFormTools` is a comprehensive IntelliJ Platform Plugin designed to streamline the development of Java-based web applications that utilize the DynForm framework. It provides a suite of tools for automated code generation, internationalization (i18n) management, and enhanced support for framework-specific file types.
|
||||||
|
|
||||||
**Key Features:**
|
**Key Features:**
|
||||||
* **Database Schema Introspection:** Utilizes IntelliJ's database tools to read table and column metadata.
|
* **Action Models Generator:** Automates the generation of `ActionBean`, `DTO`, and `Dataset XML` classes from a database schema using FreeMarker templates.
|
||||||
* **Code Generation:** Generates `ActionBean` and DTO classes using FreeMarker templates.
|
* **I18n Management:** Simplifies internationalization workflows with inlay hints, code folding, and smart completion for `message.xml` keys across Java, XML, and JavaScript.
|
||||||
* **Template-driven:** Customizable code generation via FreeMarker templates (`actionBean.ftl`, `actionBean.extend.ftl`, `actionDTO.ftl`, `actionDTO.extend.ftl`).
|
* **DynForm Support:** Provides specialized support for `.frml` files, including file type recognition and intelligent auto-completion.
|
||||||
* **IDE Integration:** Provides a context menu action ("Generate Action Models") in the Database View for easy access.
|
* **Database Schema Introspection:** Utilizes IntelliJ's database tools to read table and column metadata for code generation.
|
||||||
|
* **Template-driven:** Customizable code generation via FreeMarker templates.
|
||||||
|
|
||||||
**Core Technologies:**
|
**Core Technologies:**
|
||||||
* **Java:** Primary development language.
|
* **Java:** Primary development language.
|
||||||
* **Kotlin:** Configured in `build.gradle.kts`, indicating potential for Kotlin usage.
|
* **Kotlin:** Used for Gradle configuration and potentially for plugin logic.
|
||||||
* **Gradle (Kotlin DSL):** Build automation system.
|
* **Gradle (Kotlin DSL):** Build automation system.
|
||||||
* **IntelliJ Platform SDK:** For IDE integration and database interaction.
|
* **IntelliJ Platform SDK:** For IDE integration, UI actions, and language support.
|
||||||
* **FreeMarker:** Templating engine for code generation.
|
* **FreeMarker:** Templating engine for code generation.
|
||||||
|
|
||||||
## Building and Running
|
## Building and Running
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "com.sdk.dynform.tools"
|
group = "com.sdk.dynform.tools"
|
||||||
version = "2.1.2"
|
version = "3.0.1"
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
@@ -39,6 +39,19 @@ intellijPlatform {
|
|||||||
}
|
}
|
||||||
|
|
||||||
changeNotes = """
|
changeNotes = """
|
||||||
|
<h2>[3.0.1]</h2>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Rebranding:</strong> Renamed plugin to "Dynamic Form Helper" (DynamicFormTools) to better reflect its expanding capabilities.</li>
|
||||||
|
<li><strong>I18n Support:</strong> Added comprehensive tools for internationalization:
|
||||||
|
<ul>
|
||||||
|
<li>Inlay hints and code folding for i18n keys in Java, XML, and JavaScript.</li>
|
||||||
|
<li>Auto-completion and reference navigation for keys defined in <code>message.xml</code>.</li>
|
||||||
|
<li>Support for multiple message file locations and naming patterns.</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><strong>DynForm Support:</strong> Introduced dedicated support for <code>.frml</code> files, including file type recognition and specialized completion helpers.</li>
|
||||||
|
<li><strong>Architecture Refactoring:</strong> Complete package reorganization to <code>com.sdk.dynform.tools</code> for better modularity.</li>
|
||||||
|
</ul>
|
||||||
<h2>[2.1.2]</h2>
|
<h2>[2.1.2]</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Feature: Grouped database actions into a single "Generate Action Models" popup menu.</li>
|
<li>Feature: Grouped database actions into a single "Generate Action Models" popup menu.</li>
|
||||||
|
|||||||
@@ -6,25 +6,47 @@
|
|||||||
<vendor>Sakda Sakprapakorn</vendor>
|
<vendor>Sakda Sakprapakorn</vendor>
|
||||||
|
|
||||||
<description><![CDATA[
|
<description><![CDATA[
|
||||||
<h3>Automate Backend Boilerplate with Dynamic form tools</h3>
|
<h3>Enhance Development with Dynamic Form Tools</h3>
|
||||||
<p>This plugin streamlines development in Java-based web applications (such as <code>vrms-system</code> and <code>teddy-taxi-web</code>) by automating the generation of <b>ActionBean</b>, <b>DTO</b>, and <b>Dataset XML</b> files directly from your database schema.</p>
|
<p>This plugin is a comprehensive suite of tools designed to streamline the development of Java-based web applications (like <code>vrms-system</code> and <code>teddy-taxi-web</code>) that utilize the DynForm framework.</p>
|
||||||
|
|
||||||
|
<h4>Core Modules:</h4>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Action Models Generator:</strong> Automates the creation of <b>ActionBean</b>, <b>DTO</b>, and <b>Dataset XML</b> files directly from your database schema using FreeMarker templates. Support for both V2 and V3 (<code>sdk.db.xxxx</code>) architectures.</li>
|
||||||
|
<li><strong>I18n Tools:</strong> Simplifies internationalization workflows with inlay hints, code folding, and smart completion for <code>message.xml</code> keys across Java, XML (JSP/FRML), and JavaScript files.</li>
|
||||||
|
<li><strong>DynForm Helper:</strong> Provides specialized support for <code>.frml</code> files, including custom file type recognition, improved navigation, and intelligent auto-completion for framework-specific attributes and paths.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<h4>Key Features:</h4>
|
<h4>Key Features:</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><b>Database Introspection:</b> Reads table metadata, column names, data types, primary keys, and comments directly from IntelliJ's Database View.</li>
|
<li><b>Database Introspection:</b> Reads table metadata and comments to generate consistent code and XML definitions.</li>
|
||||||
<li><b>Automated Code Generation:</b> Uses FreeMarker templates to instantly generate ActionBean (Base/Extend), DTO, and DynForm Dataset XML files, ensuring consistency between Java and XML definitions.</li>
|
<li><b>Smart Navigation:</b> Easily jump from message keys to their definitions or find usages across the project.</li>
|
||||||
<li><b>Multi-Architecture Support:</b> Provides specific actions for V2/V3 project structures (including <code>sdk.db.xxxx</code> package support).</li>
|
<li><b>Real-time Insights:</b> View translated text directly in the editor via inlay hints without switching files.</li>
|
||||||
<li><b>Intelligent Mapping:</b> Automatically maps SQL types (VARCHAR, INT, TIMESTAMP, etc.) to appropriate Java types and UI widget attributes.</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h4>Compatibility:</h4>
|
<h4>Compatibility:</h4>
|
||||||
<p>The plugin is <b>database-agnostic</b> and works with any database supported by IntelliJ IDEA (PostgreSQL, MySQL, SQL Server, Oracle, SQLite, etc.) via the IntelliJ Database Tools API.</p>
|
<p>Works with any database supported by IntelliJ IDEA and integrates seamlessly with standard web development technologies (JSP, JS, XML).</p>
|
||||||
|
|
||||||
<h4>Usage:</h4>
|
<h4>Usage:</h4>
|
||||||
<p>Right-click on a database table in the <b>Database tool window</b> and select <b>"Generate Action Models"</b> to get started.</p>
|
<ul>
|
||||||
|
<li><b>Generation:</b> Right-click a table in the <b>Database tool window</b> -> <b>"Generate Action Models"</b>.</li>
|
||||||
|
<li><b>I18n:</b> Type <code>@M{</code> in XML or use supported I18n methods in Java/JS to see suggestions. Configure message file paths in <b>Settings -> DynForm I18n Tools</b>.</li>
|
||||||
|
</ul>
|
||||||
]]></description>
|
]]></description>
|
||||||
|
|
||||||
<change-notes><![CDATA[
|
<change-notes><![CDATA[
|
||||||
|
<h2>[3.0.1]</h2>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Rebranding:</strong> Renamed plugin to "Dynamic Form Helper" (DynamicFormTools) to better reflect its expanding capabilities beyond code generation.</li>
|
||||||
|
<li><strong>I18n Support:</strong> Added comprehensive tools for internationalization:
|
||||||
|
<ul>
|
||||||
|
<li>Inlay hints and code folding for i18n keys in Java, XML, and JavaScript.</li>
|
||||||
|
<li>Auto-completion and reference navigation for keys defined in <code>message.xml</code>.</li>
|
||||||
|
<li>Support for multiple message file locations and naming patterns.</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><strong>DynForm Support:</strong> Introduced dedicated support for <code>.frml</code> files, including file type recognition and specialized completion helpers for paths and attributes.</li>
|
||||||
|
<li><strong>Architecture Refactoring:</strong> Complete package reorganization to <code>com.sdk.dynform.tools</code> for improved project structure and maintainability.</li>
|
||||||
|
</ul>
|
||||||
<h2>[2.1.2]</h2>
|
<h2>[2.1.2]</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Feature: Grouped database actions into a single "Generate Action Models" popup menu.</li>
|
<li>Feature: Grouped database actions into a single "Generate Action Models" popup menu.</li>
|
||||||
@@ -49,25 +71,6 @@
|
|||||||
<li>update : Refactory class structure of sdk.dbutils -> sdk.db.xxxx</li>
|
<li>update : Refactory class structure of sdk.dbutils -> sdk.db.xxxx</li>
|
||||||
<li>Add : Generate for new class structure as V3 </li>
|
<li>Add : Generate for new class structure as V3 </li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2>[1.1.2]</h2>
|
|
||||||
<ul>
|
|
||||||
<li>fix: Handle databases that do not support user-defined types</li>
|
|
||||||
</ul>
|
|
||||||
<h2>[1.1.1]</h2>
|
|
||||||
<ul>
|
|
||||||
<li>fix: Correctly generate primary keys. The generator was failing to identify primary key columns, resulting in generated beans without them. This has been fixed by updating the code to use the `getColumnsRef()` method, which correctly retrieves the column names for the primary key.</li>
|
|
||||||
</ul>
|
|
||||||
<h2>[1.1.0]</h2>
|
|
||||||
<h3>New Features and Enhancements</h3>
|
|
||||||
<ul>
|
|
||||||
<li><strong>DTO Generation:</strong> Introduced new functionality to generate Data Transfer Object (DTO) classes alongside ActionBeans. This includes new FreeMarker templates (<code>actionDTO.ftl</code>, <code>actionDTO.extend.ftl</code>) and updated logic in <code>GeneratorServices.java</code>.</li>
|
|
||||||
<li><strong>ActionField and DTOField Enhancements:</strong> Implemented enhancements related to the generation of <code>ActionField</code> and <code>DTOField</code> within the generated classes.</li>
|
|
||||||
</ul>
|
|
||||||
<h3>Refactoring and Improvements</h3>
|
|
||||||
<ul>
|
|
||||||
<li><strong>Project Structure Refactoring:</strong> The project structure has been reorganized. Generator-related classes were moved to a new package (<code>com.sdk.dynform.tools.generators.actionmodels</code>), and template directory names were standardized to <code>src/main/resources/templates</code>.</li>
|
|
||||||
<li><strong>Build System Updates:</strong> Updated <code>build.gradle.kts</code>, <code>plugin.xml</code>, and Gradle wrapper files to reflect the structural and functional enhancements.</li>
|
|
||||||
</ul>
|
|
||||||
]]></change-notes>
|
]]></change-notes>
|
||||||
|
|
||||||
<depends>com.intellij.modules.platform</depends>
|
<depends>com.intellij.modules.platform</depends>
|
||||||
|
|||||||
Reference in New Issue
Block a user