From e0534148b34c12700c70bfc6c2314e41fddb2692 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=99=BD=E4=B8=8E=E5=AD=9F=E6=B5=A9=E7=84=B6?= <1063889643@qq.com> Date: Sun, 15 Oct 2023 06:08:26 +0800 Subject: [PATCH 1/2] =?UTF-8?q?+=20=E9=80=9A=E7=9F=A5=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 2840bef..cf386bb 100644 --- a/README.md +++ b/README.md @@ -36,3 +36,6 @@ 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) + +- label 只能在fx主线程进行更新 +- text 可以在fx异步线程中更新 -- Gitee From f9ae509616804f23b386857e027986409678c5b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=99=BD=E4=B8=8E=E5=AD=9F=E6=B5=A9=E7=84=B6?= <1063889643@qq.com> Date: Sun, 15 Oct 2023 11:29:02 +0800 Subject: [PATCH 2/2] =?UTF-8?q?+=20=E5=A2=9E=E5=8A=A0=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/light/util/H2PoolUtils.java | 12 ++++++++++++ src/main/java/com/light/view/ManagerView.java | 15 ++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/light/util/H2PoolUtils.java b/src/main/java/com/light/util/H2PoolUtils.java index 7f7485e..66db426 100644 --- a/src/main/java/com/light/util/H2PoolUtils.java +++ b/src/main/java/com/light/util/H2PoolUtils.java @@ -449,4 +449,16 @@ public class H2PoolUtils { LOGGER.error("更新项目信息异常:{}", e.getMessage()); } } + + public static int deleteGitProject(GitProject project) throws H2Exception { + try (Connection conn = getConnection()) { + String sql = "delete from git_project_info where id = ?"; + PreparedStatement statement = conn.prepareStatement(sql); + statement.setString(1, String.valueOf(project.id().get())); + return statement.executeUpdate(); + } catch (SQLException e) { + LOGGER.error("删除项目信息异常:{}", e.getMessage()); + throw new H2Exception(); + } + } } diff --git a/src/main/java/com/light/view/ManagerView.java b/src/main/java/com/light/view/ManagerView.java index 2ac8bc0..35f8a77 100644 --- a/src/main/java/com/light/view/ManagerView.java +++ b/src/main/java/com/light/view/ManagerView.java @@ -48,6 +48,7 @@ public class ManagerView extends StackPane { private CustomTextField searchField; private final Button updateButton = new Button("更新"); private final Button addLocalButton = new Button("添加本地项目"); + private final Button deleteBatchButton = new Button("批量删除"); private final DirectoryChooser dirChooser = new DirectoryChooser(); private final HBox hBox = new HBox(5); @@ -70,7 +71,8 @@ public class ManagerView extends StackPane { searchField.setPromptText("请输入仓库名称或者作者名称进行搜索..."); addLocalButton.setMnemonicParsing(true); updateButton.setMnemonicParsing(true); - hBox.getChildren().addAll(searchField, addLocalButton, updateButton); + deleteBatchButton.setMnemonicParsing(true); + hBox.getChildren().addAll(searchField, addLocalButton, updateButton, deleteBatchButton); HBox.setHgrow(searchField, Priority.ALWAYS); // 初始化表格 @@ -219,5 +221,16 @@ public class ManagerView extends StackPane { }); }); }); + + // 删除 + deleteBatchButton.setOnMouseClicked(event -> { + List list = tableView.getItems().stream().filter(param -> param.selected().get()).toList(); + list.forEach(project -> { + int num = H2PoolUtils.deleteGitProject(project); + if (num > 0) { + FxApplicationContextUtils.GIT_PROJECT_OBSERVABLE_LIST.remove(project); + } + }); + }); } } -- Gitee