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.
This commit is contained in:
@@ -2,11 +2,11 @@
|
||||
<idea-plugin>
|
||||
<!-- Unique id for this plugin. Must stay constant for the life of the plugin. -->
|
||||
<id>com.sdk.dynform.tools</id>
|
||||
<name>Dynamic Form Helper</name>
|
||||
<name>DynamicForm Tools</name>
|
||||
<vendor>Sakda Sakprapakorn</vendor>
|
||||
|
||||
<description><![CDATA[
|
||||
<h3>Enhance Development with Dynamic Form Tools</h3>
|
||||
<h3>Enhance Development with DynamicForm Tools</h3>
|
||||
<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>
|
||||
@@ -29,11 +29,17 @@
|
||||
<h4>Usage:</h4>
|
||||
<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>
|
||||
<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 -> DynamicForm Tools</b>.</li>
|
||||
</ul>
|
||||
]]></description>
|
||||
|
||||
<change-notes><![CDATA[
|
||||
<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>
|
||||
@@ -50,7 +56,7 @@
|
||||
</ul>
|
||||
<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>Rebranding:</strong> Renamed plugin to "DynamicForm Tools" 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>
|
||||
@@ -96,20 +102,20 @@
|
||||
<depends>JavaScript</depends>
|
||||
|
||||
<actions>
|
||||
<group id="com.sdk.dynform.tools.generators.actionmodels.GeneratorGroup" popup="true" text="Generate Action Models">
|
||||
<group id="com.sdk.dynform.tools.actionbean.actionmodels.GeneratorGroup" popup="true" text="Generate Action Models">
|
||||
<add-to-group group-id="DatabaseViewPopupMenu" anchor="first"/>
|
||||
<action id="com.sdk.dynform.tools.generators.actionmodels.GenerateBeanAction"
|
||||
class="com.sdk.dynform.tools.generators.actionmodels.GenerateBeanAction"
|
||||
<action id="com.sdk.dynform.tools.actionbean.GenerateBeanAction"
|
||||
class="com.sdk.dynform.tools.actionbean.GenerateBeanAction"
|
||||
text="Generate Action Models V2"
|
||||
description="Generates ActionBean classes from a database schema.">
|
||||
</action>
|
||||
<action id="com.sdk.dynform.tools.generators.actionmodels.GenerateBeanAction.v3"
|
||||
class="com.sdk.dynform.tools.generators.actionmodels.GenerateBeanActionV3"
|
||||
<action id="com.sdk.dynform.tools.actionbean.GenerateBeanAction.v3"
|
||||
class="com.sdk.dynform.tools.actionbean.GenerateBeanActionV3"
|
||||
text="Generate Action Models V3"
|
||||
description="Generates ActionBean classes from a database schema V3 (sdk.db.xxx).">
|
||||
</action>
|
||||
<action id="com.sdk.dynform.tools.generators.actionmodels.GenerateDatasetAction"
|
||||
class="com.sdk.dynform.tools.generators.actionmodels.GenerateDatasetAction"
|
||||
<action id="com.sdk.dynform.tools.actionbean.GenerateDatasetAction"
|
||||
class="com.sdk.dynform.tools.actionbean.GenerateDatasetAction"
|
||||
text="Generate Dataset XML"
|
||||
description="Generates Dataset XML definition from a database table.">
|
||||
</action>
|
||||
@@ -117,12 +123,13 @@
|
||||
</actions>
|
||||
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<applicationService serviceImplementation="com.sdk.dynform.tools.i18n.I18nSettings"/>
|
||||
<applicationConfigurable instance="com.sdk.dynform.tools.i18n.I18nConfigurable"
|
||||
id="com.sdk.dynform.tools.i18n.I18nConfigurable"
|
||||
displayName="DynForm I18n Tools"/>
|
||||
<projectService serviceImplementation="com.sdk.dynform.tools.config.DynFormSettings"/>
|
||||
<projectConfigurable instance="com.sdk.dynform.tools.config.DynFormConfigurable"
|
||||
id="com.sdk.dynform.tools.config.DynFormConfigurable"
|
||||
displayName="DynamicForm Tools"
|
||||
nonDefaultProject="true"/>
|
||||
|
||||
<fileType name="FRML" implementationClass="com.sdk.dynform.tools.helper.FRMLFileType" extensions="frml" language="XML"/>
|
||||
<fileType name="FRML" implementationClass="com.sdk.dynform.tools.dynform.FRMLFileType" extensions="frml" language="XML"/>
|
||||
<notificationGroup id="Dynamic-Form-Tools-Notification" displayType="BALLOON" isLogByDefault="true"/>
|
||||
|
||||
<!-- Folding Builders -->
|
||||
@@ -140,18 +147,18 @@
|
||||
<psi.referenceContributor language="XML" implementation="com.sdk.dynform.tools.i18n.I18nReferenceContributor"/>
|
||||
<psi.referenceContributor language="JavaScript" implementation="com.sdk.dynform.tools.i18n.I18nReferenceContributor"/>
|
||||
|
||||
<psi.referenceContributor language="JAVA" implementation="com.sdk.dynform.tools.helper.DynFormReferenceContributor"/>
|
||||
<psi.referenceContributor language="XML" implementation="com.sdk.dynform.tools.helper.DynFormReferenceContributor"/>
|
||||
<psi.referenceContributor language="JavaScript" implementation="com.sdk.dynform.tools.helper.DynFormReferenceContributor"/>
|
||||
<psi.referenceContributor language="JAVA" implementation="com.sdk.dynform.tools.dynform.DynFormReferenceContributor"/>
|
||||
<psi.referenceContributor language="XML" implementation="com.sdk.dynform.tools.dynform.DynFormReferenceContributor"/>
|
||||
<psi.referenceContributor language="JavaScript" implementation="com.sdk.dynform.tools.dynform.DynFormReferenceContributor"/>
|
||||
|
||||
<!-- Completion Contributors -->
|
||||
<completion.contributor language="JAVA" implementationClass="com.sdk.dynform.tools.i18n.I18nCompletionContributor"/>
|
||||
<completion.contributor language="XML" implementationClass="com.sdk.dynform.tools.i18n.I18nCompletionContributor"/>
|
||||
<completion.contributor language="JavaScript" implementationClass="com.sdk.dynform.tools.i18n.I18nCompletionContributor"/>
|
||||
|
||||
<completion.contributor language="JAVA" implementationClass="com.sdk.dynform.tools.helper.DynFormCompletionContributor"/>
|
||||
<completion.contributor language="XML" implementationClass="com.sdk.dynform.tools.helper.DynFormCompletionContributor"/>
|
||||
<completion.contributor language="JavaScript" implementationClass="com.sdk.dynform.tools.helper.DynFormCompletionContributor"/>
|
||||
<completion.contributor language="JAVA" implementationClass="com.sdk.dynform.tools.dynform.DynFormCompletionContributor"/>
|
||||
<completion.contributor language="XML" implementationClass="com.sdk.dynform.tools.dynform.DynFormCompletionContributor"/>
|
||||
<completion.contributor language="JavaScript" implementationClass="com.sdk.dynform.tools.dynform.DynFormCompletionContributor"/>
|
||||
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
</idea-plugin>
|
||||
|
||||
Reference in New Issue
Block a user