From dff5d100ee5b726801656f5f3ef1aacb696fd39e Mon Sep 17 00:00:00 2001 From: zhangmeng <1334717033@qq.com> Date: Thu, 7 Dec 2023 17:51:45 +0800 Subject: [PATCH] =?UTF-8?q?2023=E5=B9=B412=E6=9C=887=E6=97=A517:46:29?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/controller/ChatAppController.java | 633 ++++++++++++++++++ .../controller/ChatAppImplController.java | 27 + .../tools/controller/HomeController.java | 19 + .../zhangmeng/tools/utils/ResourcesUtils.java | 31 + src/main/resources/fxml/chat-app-impl.fxml | 42 ++ src/main/resources/fxml/chat-app.fxml | 141 ++++ src/main/resources/fxml/home.fxml | 6 + 7 files changed, 899 insertions(+) create mode 100644 src/main/java/com/zhangmeng/tools/controller/ChatAppController.java create mode 100644 src/main/java/com/zhangmeng/tools/controller/ChatAppImplController.java create mode 100644 src/main/resources/fxml/chat-app-impl.fxml create mode 100644 src/main/resources/fxml/chat-app.fxml diff --git a/src/main/java/com/zhangmeng/tools/controller/ChatAppController.java b/src/main/java/com/zhangmeng/tools/controller/ChatAppController.java new file mode 100644 index 0000000..cd14555 --- /dev/null +++ b/src/main/java/com/zhangmeng/tools/controller/ChatAppController.java @@ -0,0 +1,633 @@ +package com.zhangmeng.tools.controller; + +import com.zhangmeng.tools.utils.ImagePath; +import com.zhangmeng.tools.utils.ResourcesUtils; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.geometry.Pos; +import javafx.scene.Scene; +import javafx.scene.control.Label; +import javafx.scene.control.ListCell; +import javafx.scene.control.ListView; +import javafx.scene.control.SplitPane; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.AnchorPane; +import javafx.scene.layout.HBox; +import javafx.scene.paint.Paint; +import javafx.scene.text.Font; +import javafx.stage.Stage; +import javafx.util.Callback; +import lombok.extern.slf4j.Slf4j; + +import java.io.IOException; +import java.util.Arrays; + +@Slf4j +public class ChatAppController { + + private SimpleDoubleProperty width = new SimpleDoubleProperty(0.0); + private SimpleDoubleProperty height = new SimpleDoubleProperty(0.0); + private AnchorPane root; + private AnchorPane chat_app; + + public static final String color_cell = "#f4f4f4"; + + @FXML + private ListView listView; + + @FXML + private SplitPane splitPane; + + @FXML + public void date_query_menu_item(){ + load_small_tools(5); + } + + @FXML + public void cron_menu_item(){ + load_small_tools(6); + } + + @FXML + public void video_menu_item() { + load_player(0); + } + + @FXML + public void music_menu_item() { + load_player(1); + } + + @FXML + public void vip_parser_menu_item() { + load_player(2); + } + + @FXML + public void hex_16(){ + load_small_tools(0); + } + + @FXML + private void hex_16_menu_item(){ + load_small_tools(0); + } + + @FXML + private void unicode_menu_item(){ + load_small_tools(1); + } + + @FXML + private void jwt_menu_item(){ + load_small_tools(2); + } + + @FXML + private void color_choose_menu_item(){ + load_small_tools(3); + } + + @FXML + public void qr_code_menu_item(){ + load_small_tools(4); + } + + @FXML + public void base_62_menu_item(){ + load_codec_tools(0); + } + + @FXML + public void base_64_menu_item(){ + load_codec_tools(1); + } + + @FXML + public void base_32_menu_item(){ + load_codec_tools(2); + } + + @FXML + public void morse_coder_menu_item(){ + load_codec_tools(3); + } + + @FXML + private void sql_code_gen_menu_item(){ + load_sql_tools(0); + } + + @FXML + public void netty_client_menu_item(){ + load_network_tools(0); + } + + public void load_network_tools(int index){ + AnchorPane fx = null; + try { + fx = FXMLLoader.load(ResourcesUtils.getResource("network-tools")); + } catch (IOException e) { + e.printStackTrace(); + } + + Scene scene = new Scene(fx); + Stage stage = (Stage) splitPane.getScene().getWindow(); + stage.setScene(scene); + + ListView listView = (ListView) fx.lookup("#listView"); + listView.getSelectionModel().select(index); + } + + public void load_sql_tools(int index){ + AnchorPane fx = null; + try { + fx = FXMLLoader.load(ResourcesUtils.getResource("sql-tools")); + } catch (IOException e) { + e.printStackTrace(); + } + + Scene scene = new Scene(fx); + Stage stage = (Stage) splitPane.getScene().getWindow(); + stage.setScene(scene); + + ListView listView = (ListView) fx.lookup("#listView"); + listView.getSelectionModel().select(index); + } + + public void load_codec_tools(int index){ + AnchorPane fx = null; + try { + fx = FXMLLoader.load(ResourcesUtils.getResource("codec-tools")); + } catch (IOException e) { + e.printStackTrace(); + } + + Scene scene = new Scene(fx); + Stage stage = (Stage) splitPane.getScene().getWindow(); + stage.setScene(scene); + + ListView listView = (ListView) fx.lookup("#listView"); + listView.getSelectionModel().select(index); + } + + public void load_small_tools(int index){ + AnchorPane fx = null; + try { + fx = FXMLLoader.load(ResourcesUtils.getResource("small-tools")); + } catch (IOException e) { + e.printStackTrace(); + } + + Scene scene = new Scene(fx); + Stage stage = (Stage) splitPane.getScene().getWindow(); + stage.setScene(scene); + + ListView listView = (ListView) fx.lookup("#listView"); + listView.getSelectionModel().select(index); + } + + public void load_player(int index) { + AnchorPane fx = null; + try { + fx = FXMLLoader.load(ResourcesUtils.getResource("player")); + } catch (IOException e) { + e.printStackTrace(); + } + + Scene scene = new Scene(fx); + Stage stage = (Stage) splitPane.getScene().getWindow(); + stage.setScene(scene); + + ListView listView = (ListView) fx.lookup("#listView"); + listView.getSelectionModel().select(index); + } + + @FXML + public void initialize() { + init(); + listView.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> { + if (newValue != null) { + boolean flag = false; + + if (newValue.getIndex() == 0) { + if (chat_app != null){ + flag = true; + } + chat_app(flag); + } + } + }); + } + + private void chat_app(boolean flag) { + listView.getSelectionModel().select(0); + if (!flag){ + try { + root = FXMLLoader.load(ResourcesUtils.getResource("chat-app-impl")); + } catch (IOException e) { + e.printStackTrace(); + } + chat_app = root; + }else { + root = chat_app; + } + common_method(); + } + + public static Image getImage(ResourcesUtils.ChatTools player){ + return switch (player){ + case Chat_App -> new Image(ImagePath.path(ImagePath.ImagePathType.MD5)); + }; + } + + public void init() { + ResourcesUtils.ChatTools[] values = ResourcesUtils.ChatTools.values(); + ObservableList list = FXCollections.observableArrayList(); + list.addAll(Arrays.asList(values)); + listView.setItems(list); + listView.setFixedCellSize(40); + listView.setCellFactory(new Callback<>() { + private int position; + @Override + public ListCell call(ListView playerListView) { + Label label = new Label(); + label.setPrefWidth(200); + ListCell listCell = new ListCell<>() { + @Override + protected void updateItem(ResourcesUtils.ChatTools player, boolean b) { + super.updateItem(player, b); + if (!b) { + HBox hBox = new HBox(25); + hBox.setAlignment(Pos.CENTER); + label.setText(player.getTitle()); + label.setTextFill(Paint.valueOf("#000000")); + Image im = getImage(player); + ImageView iv = new ImageView(im); + iv.setPreserveRatio(true); + iv.setFitWidth(15); + hBox.getChildren().add(iv); + + hBox.getChildren().add(label); + this.setGraphic(hBox); + } + this.setStyle("-fx-background-color: " + color_cell); + } + }; + + listCell.hoverProperty().addListener((observableValue, aBoolean, t1) -> { + if (t1 && !label.getText().equals("")) { + position = playerListView.getItems().indexOf(label.getText()); + label.setFont(new Font(16)); + playerListView.getFocusModel().focus(position); + listCell.setStyle("-fx-background-color: #369e7d"); + } else { + label.setPrefHeight(20); + label.setFont(new Font(13)); + listCell.setStyle("-fx-background-color: " + color_cell); + } + }); + + return listCell; + } + }); + + chat_app(false); + } + + private void common_method() { + splitPane.getItems().remove(1); + splitPane.getItems().add(1, root); + root.widthProperty().addListener((observable, oldValue, newValue) -> { + if (newValue != null) { + double width = splitPane.getWidth(); + ChatAppController.this.width.set(width); + log.info("home:--->width:{}", width); + } + }); + root.heightProperty().addListener((observable, oldValue, newValue) -> { + if (newValue != null) { + double height = splitPane.getHeight(); + ChatAppController.this.height.set(height); + log.info("home:--->height:{}", height); + } + }); + + this.width.addListener((observable, oldValue, newValue) -> { + ChatAppController.this.root.setPrefWidth(newValue.doubleValue() - listView.getWidth()); + }); + + this.height.addListener((observable, oldValue, newValue) -> { + ChatAppController.this.root.setPrefHeight(newValue.doubleValue() - listView.getHeight()); + }); + } + + @FXML + public void http_request_menu_item(ActionEvent event) { + load_http_tools(0); + } + + @FXML + public void http_upload_menu_item(ActionEvent event) { + load_http_tools(1); + } + + @FXML + public void http_download_menu_item(ActionEvent event) { + load_http_tools(2); + } + + public void load_http_tools(int index) { + AnchorPane fx = null; + try { + fx = FXMLLoader.load(ResourcesUtils.getResource("http-tools")); + } catch (IOException e) { + e.printStackTrace(); + } + + Scene scene = new Scene(fx); + Stage stage = (Stage) splitPane.getScene().getWindow(); + stage.setScene(scene); + + ListView listView = (ListView) fx.lookup("#listView"); + listView.getSelectionModel().select(index); + } + + @FXML + public void mail_menu_item(ActionEvent event) { + load_small_tools(7); + } + + public void http_server_menu_item(ActionEvent event) { + load_server_tools(0); + } + + public void ftp_server_menu_item(ActionEvent event) { + load_server_tools(1); + } + + public void load_server_tools(int index) { + AnchorPane fx = null; + try { + fx = FXMLLoader.load(ResourcesUtils.getResource("server-tools")); + } catch (IOException e) { + e.printStackTrace(); + } + + Scene scene = new Scene(fx); + Stage stage = (Stage) splitPane.getScene().getWindow(); + stage.setScene(scene); + + ListView listView = (ListView) fx.lookup("#listView"); + listView.getSelectionModel().select(index); + } + + public void ssh_client_menu_item(ActionEvent event) { + load_server_tools(2); + } + + public void socket_server_menu_item(ActionEvent event) { + load_server_tools(3); + } + + public void telephone_menu_item(ActionEvent event) { + load_small_tools(8); + } + + public void mybatis_plus_gen_menu_item(ActionEvent event) { + load_sql_tools(1); + } + + public void JsonView_menu_item(ActionEvent event) { + + load_small_tools(9); + } + + public void maven_jar_install_menu_item(ActionEvent event) { + load_small_tools(10); + } + + public void word_ocr_menu_item(ActionEvent event) { + load_small_tools(11); + } + + public void bar_code_menu_item(ActionEvent event) { + load_small_tools(12); + } + + public void pdf_menu_item(ActionEvent event) { + load_small_tools(13); + } + + public void json_javabean_gen_menu_item(ActionEvent event) { + load_sql_tools(2); + } + + public void music_parser_menu_item(ActionEvent event) { + load_player(3); + } + + public void batch_update_file_name_menu_item(ActionEvent event) { + load_small_tools(14); + } + + public void socket_client_aio_menu_item(ActionEvent event) { + load_server_tools(4); + } + + public void socket_server_aio_menu_item(ActionEvent event) { + load_server_tools(5); + } + + public void socket_server_nio_menu_item(ActionEvent event) { + load_server_tools(6); + } + + public void socket_client_nio_menu_item(ActionEvent event) { + load_server_tools(7); + } + + public void capter_screen_menu_item(ActionEvent event) { + load_small_tools(15); + } + + public void sql_query_gen_menu_item(ActionEvent event) { + load_sql_tools(3); + } + + public void video_transcoder_menu_item(ActionEvent event) { + load_player(4); + } + + public void json_to_struct_menu_item(ActionEvent event) { + load_go_tools(0); + } + + public void load_go_tools(int index){ + AnchorPane fx = null; + try { + fx = FXMLLoader.load(ResourcesUtils.getResource("go-tools")); + } catch (IOException e) { + e.printStackTrace(); + } + + Scene scene = new Scene(fx); + Stage stage = (Stage) splitPane.getScene().getWindow(); + stage.setScene(scene); + + ListView listView = (ListView) fx.lookup("#listView"); + listView.getSelectionModel().select(index); + } + + public void file_edit_menu_item(ActionEvent event) { + load_small_tools(16); + } + + public void web_socket_client_menu_item(ActionEvent event) { + load_server_tools(8); + } + + public void layui_form_gen_menu_item(ActionEvent actionEvent) { + load_small_tools(17); + } + + public void log_console_menu_item(ActionEvent actionEvent) { + load_small_tools(18); + } + + public void edit_plus_code_menu_item(ActionEvent actionEvent) { + load_small_tools(19); + } + + public void minio_upload_menu_item(ActionEvent actionEvent) { + load_small_tools(20); + } + + public void ace_js_menu_item(ActionEvent actionEvent) { + + js_edit_list(0); + } + + public void js_edit_list(int index){ + AnchorPane fx = null; + try { + fx = FXMLLoader.load(ResourcesUtils.getResource("editor-list")); + } catch (IOException e) { + e.printStackTrace(); + } + + Scene scene = new Scene(fx); + Stage stage = (Stage) splitPane.getScene().getWindow(); + stage.setScene(scene); + + ListView listView = (ListView) fx.lookup("#listView"); + listView.getSelectionModel().select(index); + } + + public void monaco_js_menu_item(ActionEvent actionEvent) { + js_edit_list(1); + } + + public void codemirror_js_menu_item(ActionEvent actionEvent) { + js_edit_list(2); + } + + public void ace_menu_item(ActionEvent actionEvent) { + js_edit_list_impl(0); + } + + public void monaco_menu_item(ActionEvent actionEvent) { + js_edit_list_impl(1); + } + + public void codemirror_menu_item(ActionEvent actionEvent) { + js_edit_list_impl(2); + } + + public void timeFx_menu_item(ActionEvent actionEvent) { + js_edit_list_impl(3); + } + + public void js_edit_list_impl(int index){ + AnchorPane fx = null; + try { + fx = FXMLLoader.load(ResourcesUtils.getResource("editor-list-impl")); + } catch (IOException e) { + e.printStackTrace(); + } + + Scene scene = new Scene(fx); + Stage stage = (Stage) splitPane.getScene().getWindow(); + stage.setScene(scene); + +// ListView listView = (ListView) fx.lookup("#listView"); +// listView.getSelectionModel().select(index); + } + + public void timeFx_fx_menu_item(ActionEvent actionEvent) { + js_edit_list(3); + } + + public void excel_read_menu_item(ActionEvent actionEvent) { + load_small_tools(21); + } + + public void mysql_to_struct_menu_item(ActionEvent actionEvent) { + load_go_tools(1); + } + + public void swing_menu_item(ActionEvent actionEvent) { + js_edit_list(4); + } + + public void chat_app_menu_item(ActionEvent actionEvent) { + load_chat_app(); + } + + public void load_chat_app(){ + AnchorPane fx = null; + try { + fx = FXMLLoader.load(ResourcesUtils.getResource("chat-app-impl")); + } catch (IOException e) { + e.printStackTrace(); + } + + Scene scene = new Scene(fx); + Stage stage = (Stage) splitPane.getScene().getWindow(); + stage.setScene(scene); + } + + public void jks_file_menu_item(ActionEvent event) { + load_encrypt(0); + } + + public void md5_menu_item(ActionEvent actionEvent) { + load_encrypt(1); + } + + public void spring_security_menu_item(ActionEvent actionEvent) { + load_encrypt(2); + } + + public void load_encrypt(int index) { + + Stage stage = (Stage) splitPane.getScene().getWindow(); + + AnchorPane fx = null; + try { + fx = FXMLLoader.load(ResourcesUtils.getResource("home")); + } catch (IOException e) { + e.printStackTrace(); + } + Scene scene = new Scene(fx); + stage.setScene(scene); + + ListView listView = (ListView) fx.lookup("#listView"); + listView.getSelectionModel().select(index); + } +} diff --git a/src/main/java/com/zhangmeng/tools/controller/ChatAppImplController.java b/src/main/java/com/zhangmeng/tools/controller/ChatAppImplController.java new file mode 100644 index 0000000..9298bcf --- /dev/null +++ b/src/main/java/com/zhangmeng/tools/controller/ChatAppImplController.java @@ -0,0 +1,27 @@ +package com.zhangmeng.tools.controller; + +import com.zhangmeng.tools.utils.ImagePath; +import javafx.fxml.FXML; +import javafx.scene.control.Button; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class ChatAppImplController { + + + @FXML + public Button file_button; + + @FXML + public void initialize() { + + file_button.setText(null); + ImageView iv = new ImageView(new Image(ImagePath.path(ImagePath.ImagePathType.IMAGE_FILE))); + iv.setPreserveRatio(true); + iv.setFitWidth(18); + file_button.setGraphic(iv); + + } +} diff --git a/src/main/java/com/zhangmeng/tools/controller/HomeController.java b/src/main/java/com/zhangmeng/tools/controller/HomeController.java index d072fbb..3426f9a 100644 --- a/src/main/java/com/zhangmeng/tools/controller/HomeController.java +++ b/src/main/java/com/zhangmeng/tools/controller/HomeController.java @@ -694,4 +694,23 @@ public class HomeController implements Serializable { js_edit_list(4); } + public void chat_app_menu_item(ActionEvent actionEvent) { + load_chat_app(0); + } + + public void load_chat_app(int index){ + AnchorPane fx = null; + try { + fx = FXMLLoader.load(ResourcesUtils.getResource("chat-app")); + } catch (IOException e) { + e.printStackTrace(); + } + + Scene scene = new Scene(fx); + Stage stage = (Stage) splitPane.getScene().getWindow(); + stage.setScene(scene); + + ListView listView = (ListView) fx.lookup("#listView"); + listView.getSelectionModel().select(index); + } } \ No newline at end of file diff --git a/src/main/java/com/zhangmeng/tools/utils/ResourcesUtils.java b/src/main/java/com/zhangmeng/tools/utils/ResourcesUtils.java index 05fc029..244cde0 100644 --- a/src/main/java/com/zhangmeng/tools/utils/ResourcesUtils.java +++ b/src/main/java/com/zhangmeng/tools/utils/ResourcesUtils.java @@ -394,4 +394,35 @@ public class ResourcesUtils { private String title; private int index; } + + + public enum ChatTools { + + Chat_App("聊天应用", 0), + ; + + ChatTools(String title, int index) { + this.title = title; + this.index = index; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + private String title; + private int index; + } } diff --git a/src/main/resources/fxml/chat-app-impl.fxml b/src/main/resources/fxml/chat-app-impl.fxml new file mode 100644 index 0000000..d139031 --- /dev/null +++ b/src/main/resources/fxml/chat-app-impl.fxml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + +