- Schema Validation (XSD): - Added new configuration UI for DynamicForm Tools to manage XSD schemas. - Implemented DynFormXsdScanner to automatically map local .xsd files to the ExternalResourceManager using a custom URI prefix. - Ensured XSD registration is properly scoped at the Project-level (rather than Application-level) using write-actions to comply with IDE threading policies. - Architecture & Refactoring: - Renamed base package from com.sdk.dynformTools to com.sdk.dynform across the entire project for structural consistency. - Converted Application-level settings/configurables to Project-level services. - Extracted and restored complex I18n folding and inlay hint logic that was previously overwritten, adapting it to use the new Project-level settings. - UI & Metadata: - Bumped plugin version to 3.2.0. - Rebranded settings page to "DynamicForm Tools". - Organized settings into logical "Internationalization" and "Schema Validation" groups.
139 lines
7.2 KiB
Plaintext
139 lines
7.2 KiB
Plaintext
plugins {
|
|
id("java")
|
|
id("org.jetbrains.kotlin.jvm") version "2.1.0"
|
|
id("org.jetbrains.intellij.platform") version "2.7.0"
|
|
}
|
|
|
|
group = "com.sdk.dynform.tools"
|
|
version = "3.2.0"
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
intellijPlatform {
|
|
defaultRepositories()
|
|
}
|
|
}
|
|
|
|
// Configure Gradle IntelliJ Plugin
|
|
// Read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin.html
|
|
dependencies {
|
|
intellijPlatform {
|
|
create("IU", "2025.1")
|
|
testFramework(org.jetbrains.intellij.platform.gradle.TestFrameworkType.Platform)
|
|
|
|
// Add necessary plugin dependencies for compilation here, example:
|
|
bundledPlugin("com.intellij.java")
|
|
bundledPlugin("com.intellij.database")
|
|
bundledPlugin("com.intellij.jsp")
|
|
bundledPlugin("JavaScript")
|
|
|
|
}
|
|
implementation("org.freemarker:freemarker:2.3.32")
|
|
}
|
|
|
|
|
|
intellijPlatform {
|
|
pluginConfiguration {
|
|
ideaVersion {
|
|
sinceBuild = "251"
|
|
}
|
|
|
|
changeNotes = """
|
|
<h2>[3.2.0]</h2>
|
|
<ul>
|
|
<li><strong>Schema Validation:</strong> Introduced project-level automatic XSD registration. Configure a target folder and namespace prefix to seamlessly map <code>.xsd</code> files to the <code>ExternalResourceManager</code>.</li>
|
|
<li><strong>Architecture:</strong> Finalized rebranding by standardizing internal packages to <code>com.sdk.dynform.*</code> for better consistency.</li>
|
|
<li><strong>UI Improvement:</strong> Streamlined the plugin settings UI into distinct Internationalization and Schema Validation groups.</li>
|
|
</ul>
|
|
<h2>[3.1.0]</h2>
|
|
<ul>
|
|
<li><strong>Advanced Navigation:</strong> Implemented bidirectional field referencing between <code><FIELDS></code>, <code><LAYOUT></code>, and <code><TITLES></code> tags in <code>.frml</code> files.</li>
|
|
<li><strong>Cross-Module Support:</strong> Added support for cross-module file inclusion and referencing using <code>/module/path</code> and module-relative <code>#path</code> syntax.</li>
|
|
<li><strong>AJAX-OPTION Enhancements:</strong>
|
|
<ul>
|
|
<li>Reference and completion support for datasets defined in <code>defs/ajax.xml</code>.</li>
|
|
<li>Smart mapping for <code>SRC</code> (AJAX datasets) and <code>TARGET</code> (local form fields) attributes.</li>
|
|
</ul>
|
|
</li>
|
|
<li><strong>Robust Field Resolution:</strong> Enhanced deep recursive search for fields/sections within nested layouts (Sections, Rows, and Multi-field lists).</li>
|
|
<li><strong>Path Auto-Correction:</strong> Added handling for common keyboard typos (e.g., Thai 'ิ' instead of '/') in file paths.</li>
|
|
<li><strong>Global Resource Scanning:</strong> <code>GRID-ID</code> now intelligently searches across all recursively included <code>.frml</code> files.</li>
|
|
</ul>
|
|
<h2>[3.0.1]</h2>
|
|
<ul>
|
|
<li><strong>Rebranding:</strong> Renamed plugin to "DynamicForm Tools" 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>
|
|
<ul>
|
|
<li>Feature: Grouped database actions into a single "Generate Action Models" popup menu.</li>
|
|
<li>UI: Renamed base action to "Generate Action Models V2" to distinguish it from V3.</li>
|
|
<li>UI: Improved context menu organization by placing grouped actions at the top of the Database View menu.</li>
|
|
</ul>
|
|
<h2>[2.1.1]</h2>
|
|
<ul>
|
|
<li>Update: Case-insensitive column type mapping in GUtils.java.</li>
|
|
<li>Update: Add "number" type mapping support for broader database compatibility.</li>
|
|
<li>Resource: Added sample Dataset.xml in DevResources for reference.</li>
|
|
</ul>
|
|
<h2>[2.1.0]</h2>
|
|
<ul>
|
|
<li>Add: Generate Dataset XML feature to generate XML table definitions from database tables.</li>
|
|
<li>Feature: Intelligent label generation for XML datasets, prioritizing database column comments with fallback to entity-based keys.</li>
|
|
<li>Feature: Automatic mapping of database types to XML types (TEXT, NUMBER, DATE) and column width extraction.</li>
|
|
<li>Shortcut: Added <code>Ctrl + Alt + J</code> for the dataset generation action.</li>
|
|
</ul>
|
|
<h2>[2.0.1]</h2>
|
|
<ul>
|
|
<li>update : Refactory class structure of sdk.dbutils -> sdk.db.xxxx</li>
|
|
<li>Add : Generate for new class structure as V3 </li>
|
|
</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.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>
|
|
"""
|
|
}
|
|
}
|
|
|
|
tasks {
|
|
// Set the JVM compatibility versions
|
|
withType<JavaCompile> {
|
|
sourceCompatibility = "21"
|
|
targetCompatibility = "21"
|
|
}
|
|
|
|
// signPlugin {
|
|
// certificateChain.set(System.getenv("CERTIFICATE_CHAIN"))
|
|
// privateKey.set(System.getenv("PRIVATE_KEY"))
|
|
// password.set(System.getenv("PRIVATE_KEY_PASSWORD"))
|
|
// }
|
|
//
|
|
// publishPlugin {
|
|
// token.set(System.getenv("PUBLISH_TOKEN"))
|
|
// }
|
|
}
|