From 660c7a058c3c3b61e21975a9ea42023595e51ee4 Mon Sep 17 00:00:00 2001 From: skidus Date: Fri, 10 Apr 2026 22:51:47 +0700 Subject: [PATCH] feat: implement project-level XSD registration and refactor base package - 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. --- DevResources/xsd/ajax.xsd | 127 ++ DevResources/xsd/dynf-form-def.xsd | 1349 +++++++++++++++++ DevResources/xsd/lovdef.xsd | 118 ++ DevResources/xsd/system-config.xsd | 185 +++ build.gradle.kts | 10 +- .../GenerateAction.java | 2 +- .../GenerateBeanAction.java | 2 +- .../GenerateBeanActionV3.java | 2 +- .../GenerateDatasetAction.java | 2 +- .../GeneratorServices.java | 2 +- .../tools/config/DynFormConfigurable.java | 161 ++ .../DynFormSettings.java} | 20 +- .../DynFormCompletionContributor.java | 12 +- .../{helper => dynform}/DynFormPathUtils.java | 6 +- .../DynFormReferenceContributor.java | 64 +- .../tools/dynform/DynFormXsdScanner.java | 44 + .../{helper => dynform}/FRMLFileType.java | 3 +- .../tools/i18n/I18nCompletionContributor.java | 17 +- .../dynform/tools/i18n/I18nConfigurable.java | 86 -- .../tools/i18n/I18nFoldingBuilder.java | 3 +- .../tools/i18n/I18nInlayHintsProvider.java | 5 +- src/main/resources/META-INF/plugin.xml | 53 +- 22 files changed, 2094 insertions(+), 179 deletions(-) create mode 100755 DevResources/xsd/ajax.xsd create mode 100755 DevResources/xsd/dynf-form-def.xsd create mode 100755 DevResources/xsd/lovdef.xsd create mode 100644 DevResources/xsd/system-config.xsd rename src/main/java/com/sdk/dynform/tools/{generators/actionmodels => actionbean}/GenerateAction.java (99%) rename src/main/java/com/sdk/dynform/tools/{generators/actionmodels => actionbean}/GenerateBeanAction.java (98%) rename src/main/java/com/sdk/dynform/tools/{generators/actionmodels => actionbean}/GenerateBeanActionV3.java (98%) rename src/main/java/com/sdk/dynform/tools/{generators/actionmodels => actionbean}/GenerateDatasetAction.java (98%) rename src/main/java/com/sdk/dynform/tools/{generators/actionmodels => actionbean}/GeneratorServices.java (99%) create mode 100644 src/main/java/com/sdk/dynform/tools/config/DynFormConfigurable.java rename src/main/java/com/sdk/dynform/tools/{i18n/I18nSettings.java => config/DynFormSettings.java} (51%) rename src/main/java/com/sdk/dynform/tools/{helper => dynform}/DynFormCompletionContributor.java (98%) rename src/main/java/com/sdk/dynform/tools/{helper => dynform}/DynFormPathUtils.java (99%) rename src/main/java/com/sdk/dynform/tools/{helper => dynform}/DynFormReferenceContributor.java (96%) create mode 100644 src/main/java/com/sdk/dynform/tools/dynform/DynFormXsdScanner.java rename src/main/java/com/sdk/dynform/tools/{helper => dynform}/FRMLFileType.java (90%) delete mode 100644 src/main/java/com/sdk/dynform/tools/i18n/I18nConfigurable.java diff --git a/DevResources/xsd/ajax.xsd b/DevResources/xsd/ajax.xsd new file mode 100755 index 0000000..ba082ca --- /dev/null +++ b/DevResources/xsd/ajax.xsd @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DevResources/xsd/dynf-form-def.xsd b/DevResources/xsd/dynf-form-def.xsd new file mode 100755 index 0000000..65a6483 --- /dev/null +++ b/DevResources/xsd/dynf-form-def.xsd @@ -0,0 +1,1349 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + javascript function exam : (value,row,index)=>{ } + + + + + javascript function exam : (data,value)=>{ } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + javascript (value,index,data )=>{ return value;} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + javascript function + exam : (data)=>{ } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + javascript function exam : ({$ctx,data})=>{ } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + javascript function exam : ({ev, row})=>{ } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + javascript function exam : ($ctx,data)=>{ } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + javascript function exam : ($ctx,data)=>{} + + + + + javascript function exam : ($ctx,data)=>{} + + + + + javascript function exam : ($ctx,data)=>{} + + + + + javascript function exam : ($ctx,data)=>{} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + javascript function exam : (filter)=>{} + + + + + + + + + + javascript function exam : (column)=>{ } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + javascript function + exam : (data)=>{ } + + + + + javascript function + exam : (data)=>{ } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DevResources/xsd/lovdef.xsd b/DevResources/xsd/lovdef.xsd new file mode 100755 index 0000000..4c607cb --- /dev/null +++ b/DevResources/xsd/lovdef.xsd @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DevResources/xsd/system-config.xsd b/DevResources/xsd/system-config.xsd new file mode 100644 index 0000000..42bb86f --- /dev/null +++ b/DevResources/xsd/system-config.xsd @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 59eb9df..1e408a3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } group = "com.sdk.dynform.tools" -version = "3.1.0" +version = "3.2.0" repositories { mavenCentral() @@ -39,6 +39,12 @@ intellijPlatform { } changeNotes = """ +

[3.2.0]

+

[3.1.0]

[3.0.1]