- Added comprehensive reference and completion support for FORM-NAME in DATASET > FIELDS > FIELD. - Implemented smart field resolution to target hidden fields in FORM_ENTRY > FIELDS and named fields in FORM_ENTRY > LAYOUT. - Enhanced form scanning to recursively discover fields across all included .frml files. - Bumped plugin version to 3.2.5.
167 lines
10 KiB
Plaintext
167 lines
10 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.5"
|
|
|
|
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.5]</h2>
|
|
<ul>
|
|
<li><strong>Dataset to Form Mapping:</strong> Implemented comprehensive reference and completion support for the <code>FORM-NAME</code> attribute in <code>DATASET > FIELDS > FIELD</code>.</li>
|
|
<li><strong>Smart Field Resolution:</strong> <code>FORM-NAME</code> now correctly resolves to hidden fields in <code>FORM_ENTRY > FIELDS</code> and any named fields within <code>FORM_ENTRY > LAYOUT</code>.</li>
|
|
<li><strong>Recursive Form Scanning:</strong> Enhanced field discovery to scan across all form entries in the current and recursively included <code>.frml</code> files.</li>
|
|
</ul>
|
|
<h2>[3.2.4]</h2>
|
|
<ul>
|
|
<li><strong>Persistent Generation Directories:</strong> Generator now remembers the last used directory for Action Beans and Dataset XMLs independently per project.</li>
|
|
<li><strong>Auto-Open Generated Files:</strong> Added configuration to automatically open newly created files in the editor, with a customizable limit on the number of files.</li>
|
|
<li><strong>Strict Project-Relative Paths:</strong> I18n and XSD configuration now strictly enforces file selection within the project root and stores paths as relative for maximum portability.</li>
|
|
<li><strong>Smart File Browser:</strong> Improved file picker logic to automatically start at the current configured directory if it's within the project, falling back to the project root otherwise.</li>
|
|
</ul>
|
|
<h2>[3.2.3]</h2>
|
|
<ul>
|
|
<li><strong>Advanced Data Referencing:</strong> Implemented comprehensive reference and completion support for <code><FOREIGN-DATASETS></code> and <code><MASTER-DATA></code> structures.</li>
|
|
<li><strong>Contextual Field Resolution:</strong> Enhanced field resolution logic to resolve fields from datasets specified by <code>DATASET-ID</code> and <code>DATAID</code> attributes within their respective tags.</li>
|
|
<li><strong>Recursive Resource Scanning:</strong> Improved dataset and grid scanning to search across recursively included <code>.frml</code> files, ensuring consistent navigation and completion throughout the project.</li>
|
|
</ul>
|
|
|
|
<h2>[3.2.2]</h2>
|
|
<ul>
|
|
<li><strong>UI/UX Improvement:</strong> Updated the I18n settings to allow selecting the message bundle XML file directly via a file browser, improving configuration usability.</li>
|
|
<li><strong>Core Enhancement:</strong> Modified I18nUtils to load message files via absolute paths from project settings, increasing reliability across different project structures.</li>
|
|
</ul>
|
|
<h2>[3.2.1]</h2>
|
|
<ul>
|
|
<li><strong>Bug Fix:</strong> Resolved a <code>ConcurrentModificationException</code> in the I18n cache mechanism caused by concurrent background thread access.</li>
|
|
</ul>
|
|
<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"))
|
|
// }
|
|
}
|