diff --git a/README.md b/README.md index 2840befa0c1626ffbfe4d4ceb830508d30305c64..cf386bb112230d024d7b08d84a077a07b107181d 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异步线程中更新 diff --git a/src/main/java/com/light/util/H2PoolUtils.java b/src/main/java/com/light/util/H2PoolUtils.java index 7f7485ebd1659cbc99b3ad78464bc531e75b8b3e..66db42641b31565d24b3c4545801bd30ce940539 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 2ac8bc01f1687d783cd810a4a8d1a885a53eaa0f..35f8a77d47d098548546249e7aa0b823d184dad6 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); + } + }); + }); } }