From 61fd806885e0812180a2692a6dd976cc632b74c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=B7=A1=E5=BF=98=E4=B8=80=E5=88=87?= <7990497@qq.com> Date: Sun, 30 Jul 2023 16:57:45 +0800 Subject: [PATCH 01/17] =?UTF-8?q?feat:=201=E3=80=81=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=94=9F=E6=88=90=E6=94=AF=E6=8C=81Active=20Record=20=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=202=E3=80=81SQL=E9=A2=84=E8=A7=88icon=E4=B9=9F?= =?UTF-8?q?=E4=BC=9A=E5=9C=A8=E5=AF=BC=E5=85=A5import=E5=89=8D=E9=9D=A2?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/action/flex/SQLPreviewAction.java | 22 +- .../annotator/MybatisFlexConfigAnnotator.java | 8 +- .../plugin/core/config/MybatisFlexConfig.java | 17 + .../core/constant/MybatisFlexConstant.java | 1 + .../windows/MybatisFlexSettingDialog.form | 671 +++++++++--------- .../windows/MybatisFlexSettingDialog.java | 7 +- src/main/resources/META-INF/plugin.xml | 16 +- .../resources/templates/modelTemplate.java.vm | 13 +- 8 files changed, 410 insertions(+), 345 deletions(-) diff --git a/src/main/java/club/bigtian/mf/plugin/action/flex/SQLPreviewAction.java b/src/main/java/club/bigtian/mf/plugin/action/flex/SQLPreviewAction.java index f195549..510d8f9 100644 --- a/src/main/java/club/bigtian/mf/plugin/action/flex/SQLPreviewAction.java +++ b/src/main/java/club/bigtian/mf/plugin/action/flex/SQLPreviewAction.java @@ -21,6 +21,8 @@ import com.intellij.ide.highlighter.JavaFileType; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CommonDataKeys; +import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; @@ -259,14 +261,16 @@ public class SQLPreviewAction extends AnAction { virtualFiles.add(virtualFile); CompilerManagerUtil.compile(virtualFiles.toArray(new VirtualFile[0]), (b, i, i1, compileContext) -> { try { - WriteCommandAction.runWriteCommandAction(ProjectUtils.getCurrentProject(), () -> { - try { - virtualFile.delete(this); - removeNoArgsConstructor(entityClass); - } catch (IOException e) { - System.out.println(e.getMessage()); - } - }); + ApplicationManager.getApplication().invokeLater(() -> { + WriteCommandAction.runWriteCommandAction(project, () -> { + try { + virtualFile.delete(this); + removeNoArgsConstructor(entityClass); + } catch (IOException e) { + System.out.println(e.getMessage()); + } + }); + }, ModalityState.defaultModalityState()); // 执行配置 ProgramRunner runner = ProgramRunner.PROGRAM_RUNNER_EP.getExtensions()[0]; Executor instance = MyBatisLogExecutor.getInstance(); @@ -298,7 +302,7 @@ public class SQLPreviewAction extends AnAction { String text = event1.getText(); if (text.startsWith("Exception in")) { - NotificationUtils.notifyError((StrUtil.subAfter(text, ":", true)),"Mybatis-Flex system tips"); + NotificationUtils.notifyError((StrUtil.subAfter(text, ":", true)), "Mybatis-Flex system tips"); } } } diff --git a/src/main/java/club/bigtian/mf/plugin/core/annotator/MybatisFlexConfigAnnotator.java b/src/main/java/club/bigtian/mf/plugin/core/annotator/MybatisFlexConfigAnnotator.java index 7dd205e..6d6e257 100644 --- a/src/main/java/club/bigtian/mf/plugin/core/annotator/MybatisFlexConfigAnnotator.java +++ b/src/main/java/club/bigtian/mf/plugin/core/annotator/MybatisFlexConfigAnnotator.java @@ -29,12 +29,12 @@ public class MybatisFlexConfigAnnotator implements Annotator { String text = element.getText(); - if ( StrUtil.containsAny(text, "QueryWrapper","UpdateChain", "QueryChain", "queryChain()") - && text.endsWith(";") && !iconMap.containsKey(lineNumber)) { + if (StrUtil.containsAny(text, "QueryWrapper", "UpdateChain", "QueryChain", "queryChain()") + && text.endsWith(";") && !text.startsWith("import") && !iconMap.containsKey(lineNumber)) { String matchText = StrUtil.subBetween(text, "(", ")"); //如果是括号里面的则不显示icon - if (matchText != null){ - if (StrUtil.containsAny(matchText, "QueryWrapper","UpdateChain", "QueryChain", "queryChain()")) { + if (matchText != null) { + if (StrUtil.containsAny(matchText, "QueryWrapper", "UpdateChain", "QueryChain", "queryChain()")) { return; } } diff --git a/src/main/java/club/bigtian/mf/plugin/core/config/MybatisFlexConfig.java b/src/main/java/club/bigtian/mf/plugin/core/config/MybatisFlexConfig.java index 764f130..dc097b6 100644 --- a/src/main/java/club/bigtian/mf/plugin/core/config/MybatisFlexConfig.java +++ b/src/main/java/club/bigtian/mf/plugin/core/config/MybatisFlexConfig.java @@ -186,6 +186,11 @@ public class MybatisFlexConfig { private boolean accessors; + /** + * ar模式 + */ + private boolean activeRecord; + public Map getSuffix() { Map data = new HashMap<>(); data.put(MybatisFlexConstant.CONTROLLER, ObjectUtil.defaultIfBlank(controllerSuffix, MybatisFlexConstant.CONTROLLER)); @@ -613,4 +618,16 @@ public class MybatisFlexConfig { public void setAccessors(boolean accessors) { this.accessors = accessors; } + + public boolean isAccessors() { + return accessors; + } + + public boolean isActiveRecord() { + return activeRecord; + } + + public void setActiveRecord(boolean activeRecord) { + this.activeRecord = activeRecord; + } } diff --git a/src/main/java/club/bigtian/mf/plugin/core/constant/MybatisFlexConstant.java b/src/main/java/club/bigtian/mf/plugin/core/constant/MybatisFlexConstant.java index 735aac3..65341f4 100644 --- a/src/main/java/club/bigtian/mf/plugin/core/constant/MybatisFlexConstant.java +++ b/src/main/java/club/bigtian/mf/plugin/core/constant/MybatisFlexConstant.java @@ -66,4 +66,5 @@ public class MybatisFlexConstant { public static final String MYBATISFLEX_CORE_BASE_MAPPER = "com.mybatisflex.core.BaseMapper"; public static final String ANNOTATION_AUTOWIRED = "org.springframework.beans.factory.annotation.Autowired"; public static final String ANNOTATION_RESOURCE = "javax.annotation.Resource"; + public static final String ACTIVE_RECORD = "activeRecord"; } diff --git a/src/main/java/club/bigtian/mf/plugin/windows/MybatisFlexSettingDialog.form b/src/main/java/club/bigtian/mf/plugin/windows/MybatisFlexSettingDialog.form index 348a6f7..7198a54 100644 --- a/src/main/java/club/bigtian/mf/plugin/windows/MybatisFlexSettingDialog.form +++ b/src/main/java/club/bigtian/mf/plugin/windows/MybatisFlexSettingDialog.form @@ -15,223 +15,17 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -455,129 +249,372 @@ - - + - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/src/main/java/club/bigtian/mf/plugin/windows/MybatisFlexSettingDialog.java b/src/main/java/club/bigtian/mf/plugin/windows/MybatisFlexSettingDialog.java index c641539..9035d0d 100644 --- a/src/main/java/club/bigtian/mf/plugin/windows/MybatisFlexSettingDialog.java +++ b/src/main/java/club/bigtian/mf/plugin/windows/MybatisFlexSettingDialog.java @@ -73,6 +73,8 @@ public class MybatisFlexSettingDialog extends JDialog { private JTextField xmlPath; private JTextField mapperPath; private JCheckBox accessorsCheckBox; + private JTabbedPane tabbedPane2; + private JCheckBox activeRecordCheckBox; private Project project; public MybatisFlexSettingDialog(Project project) { @@ -80,8 +82,9 @@ public class MybatisFlexSettingDialog extends JDialog { setContentPane(contentPane); setModal(true); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); - screenSize.setSize(screenSize.getWidth() * 0.8, screenSize.getHeight() * 0.8); + screenSize.setSize(screenSize.getWidth() * 0.8, screenSize.getHeight() * 0.7); setSize(screenSize); + setMinimumSize(new Dimension(700,500)); getRootPane().setDefaultButton(buttonOK); DialogUtil.centerShow(this); buttonOK.addActionListener(new ActionListener() { @@ -233,6 +236,7 @@ public class MybatisFlexSettingDialog extends JDialog { xmlPath.setText(ObjectUtil.defaultIfBlank(Template.getConfigData(MybatisFlexConstant.XML_PATH), xmlPath.getText())); mapperPath.setText(ObjectUtil.defaultIfBlank(Template.getConfigData(MybatisFlexConstant.MAPPER_PATH), mapperPath.getText())); accessorsCheckBox.setSelected(Template.getChecBoxConfig(MybatisFlexConstant.LOMBOK_ACCESSORS)); + activeRecordCheckBox.setSelected(Template.getChecBoxConfig(MybatisFlexConstant.ACTIVE_RECORD)); initSinceComBox(); } @@ -307,6 +311,7 @@ public class MybatisFlexSettingDialog extends JDialog { config.setXmlPath(xmlPath.getText()); config.setMapperPath(mapperPath.getText()); config.setAccessors(accessorsCheckBox.isSelected()); + config.setActiveRecord(activeRecordCheckBox.isSelected()); return config; } diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index ff8e882..69bc7de 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -21,6 +21,7 @@
  • APT automatic compilation
  • Share template-related configurations
  • Automatically identify the packet path
  • +
  • Preview SQL
    • @@ -29,20 +30,17 @@
    • APT自动编译
    • 模板相关配置分享
    • 自动识别包路径
    • +
    • 预览SQL
    ]]> + 1.4.4-RELEASE +

    1.4.5-RELEASE

      -
    • 【新增】mybatis-flex.config 配置提示
    • -
    • 【新增】自动生成 APT 文件(解决 mvn clean 之后无法编译)
    • -
    • 【新增】Lombok链式调用注解@Accessors
    • -
    • 【新增】SQL 预览(只支持QueryWrapper)
    • -
    • 【优化】生成代码后自动生成 APT 文件
    • -
    • 【优化】mybatis-flex.config icon 调整
    • -
    • 【优化】多模块开发过滤掉没有用的父级项目
    • -
    • 【优化】生成代码之后自动编译
    • +
    • 【新增】代码生成支持Active Record
    • +
    • 【优化】插件设置界面优化
    • +
    • 【修复】SQL预览图标在import也会显示
    ]]>