diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/DataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/DataLoad.java index 19ccb80..4fc5ea6 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/DataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/DataLoad.java @@ -2,6 +2,7 @@ package com.zhangmeng.online.exam.ui.api; import javafx.beans.property.SimpleStringProperty; import javafx.scene.Parent; +import javafx.stage.Stage; import java.util.List; import java.util.Map; @@ -23,4 +24,6 @@ public interface DataLoad { public void deleteData(String id); + public void editData(String s, Stage stage); + } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/form/UserForm.java b/src/main/java/com/zhangmeng/online/exam/ui/api/form/UserForm.java index e8cb2f5..13f5245 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/form/UserForm.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/form/UserForm.java @@ -26,20 +26,25 @@ import java.util.Map; */ public class UserForm extends Form { + private TextField username_field; + private PasswordField password_field; + private TextField phone_field; + private TextField email_field; + public UserForm() { Label username_label = new Label("用户名:"); username_label.setLayoutX(83.0); username_label.setLayoutY(64.0); - TextField username_field = new TextField(); + username_field = new TextField(); username_field.setLayoutX(162.0); username_field.setLayoutY(60.0); username_field.setPrefHeight(23.0); username_field.setPrefWidth(289.0); username_field.setPromptText("请输入用户名"); - PasswordField password_field = new PasswordField(); + password_field = new PasswordField(); password_field.setLayoutX(162.0); password_field.setLayoutY(117.0); password_field.setPrefHeight(23.0); @@ -54,7 +59,7 @@ public class UserForm extends Form { phone_label.setLayoutX(87.0); phone_label.setLayoutY(169.0); - TextField phone_field = new TextField(); + phone_field = new TextField(); phone_field.setLayoutX(162.0); phone_field.setLayoutY(165.0); phone_field.setPrefHeight(23.0); @@ -65,7 +70,7 @@ public class UserForm extends Form { email_label.setLayoutX(87.0); email_label.setLayoutY(224.0); - TextField email_field = new TextField(); + email_field = new TextField(); email_field.setLayoutX(162.0); email_field.setLayoutY(220.0); email_field.setPrefHeight(23.0); @@ -106,4 +111,37 @@ public class UserForm extends Form { submit_button, password_label); } + + + public TextField getUsername_field() { + return username_field; + } + + public void setUsername_field(TextField username_field) { + this.username_field = username_field; + } + + public PasswordField getPassword_field() { + return password_field; + } + + public void setPassword_field(PasswordField password_field) { + this.password_field = password_field; + } + + public TextField getPhone_field() { + return phone_field; + } + + public void setPhone_field(TextField phone_field) { + this.phone_field = phone_field; + } + + public TextField getEmail_field() { + return email_field; + } + + public void setEmail_field(TextField email_field) { + this.email_field = email_field; + } } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/PermissionDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/PermissionDataLoad.java index 95dd453..8a99d0c 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/PermissionDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/PermissionDataLoad.java @@ -8,6 +8,7 @@ import com.zhangmeng.online.exam.ui.api.DataLoad; import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.property.SimpleStringProperty; import javafx.scene.Parent; +import javafx.stage.Stage; import java.util.*; @@ -61,4 +62,9 @@ public class PermissionDataLoad implements DataLoad { public void deleteData(String id) { } + + @Override + public void editData(String id, Stage stage) { + + } } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionDataLoad.java index c34b2a9..1b0b946 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionDataLoad.java @@ -8,6 +8,7 @@ import com.zhangmeng.online.exam.ui.api.DataLoad; import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.property.SimpleStringProperty; import javafx.scene.Parent; +import javafx.stage.Stage; import java.util.*; @@ -62,4 +63,9 @@ public class QuestionDataLoad implements DataLoad { public Map saveForm(Map map) { return null; } + + @Override + public void editData(String s, Stage stage) { + + } } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/RoleDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/RoleDataLoad.java index 8345e8a..8482f80 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/RoleDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/RoleDataLoad.java @@ -8,6 +8,7 @@ import com.zhangmeng.online.exam.ui.api.DataLoad; import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.property.SimpleStringProperty; import javafx.scene.Parent; +import javafx.stage.Stage; import java.util.*; @@ -63,4 +64,9 @@ public class RoleDataLoad implements DataLoad { public void deleteData(String id) { } + + @Override + public void editData(String id, Stage stage) { + + } } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/UserDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/UserDataLoad.java index a646fa4..5ee095f 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/UserDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/UserDataLoad.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.zhangmeng.online.exam.ui.api.DataLoad; +import com.zhangmeng.online.exam.ui.api.form.UserForm; import com.zhangmeng.online.exam.ui.utils.AlertUtils; import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.property.SimpleStringProperty; @@ -12,6 +13,7 @@ import java.util.*; import com.zhangmeng.online.exam.ui.api.ApiUtils; import javafx.scene.Parent; +import javafx.stage.Stage; /** * @author zm @@ -37,13 +39,13 @@ public class UserDataLoad implements DataLoad { Map userMap = new HashMap<>(); userMap.put("序号", new SimpleStringProperty(user.getString("id"))); userMap.put("用户名", new SimpleStringProperty(user.getString("username"))); - userMap.put("电子邮箱", new SimpleStringProperty(user.getString("email"))); userMap.put("手机号码", new SimpleStringProperty(user.getString("phone"))); + userMap.put("电子邮箱", new SimpleStringProperty(user.getString("email"))); userMap.put("id", new SimpleStringProperty(user.getString("id"))); userMapList.add(userMap); } - ApiUtils.DataView dataView = new ApiUtils.DataView(Arrays.asList("序号", "用户名", "电子邮箱", "手机号码"), userMapList).setDataLoad(this).setPageNum(pageNum).setPageSize(pageSize).setTotal(total); + ApiUtils.DataView dataView = new ApiUtils.DataView(Arrays.asList("序号", "用户名","手机号码", "电子邮箱" ), userMapList).setDataLoad(this).setPageNum(pageNum).setPageSize(pageSize).setTotal(total); dataView.setDataLoad(this); return dataView; } @@ -82,4 +84,25 @@ public class UserDataLoad implements DataLoad { AlertUtils.alert_warning("删除失败!"); } } + + @Override + public void editData(String id,Stage stage) { + + UserForm userForm = new UserForm(); + + Map map = new HashMap<>(); + map.put("id", id); + String result = HttpUtils.GET(ApiUtils.API_URL + "/user/getUser", map); + JSONObject jsonObject = JSON.parseObject(result); + JSONObject data = jsonObject.getJSONObject("data"); + String username = data.getString("username"); + userForm.getUsername_field().setText(username); + String email = data.getString("email"); + userForm.getEmail_field().setText(email); + String phone = data.getString("phone"); + userForm.getPhone_field().setText(phone); + String password = data.getString("password"); + userForm.getPassword_field().setText(password); + AlertUtils.alert("编辑用户信息", (Parent) userForm, stage); + } } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/DynamicTableComponent.java b/src/main/java/com/zhangmeng/online/exam/ui/components/DynamicTableComponent.java index 597d666..8e4b8fc 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/components/DynamicTableComponent.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/DynamicTableComponent.java @@ -59,12 +59,12 @@ public class DynamicTableComponent extends VBox { tableView.prefHeightProperty().bind(this.heightProperty()); tableView.prefWidthProperty().bind(this.widthProperty()); // 动态生成列(示例字段)‌:ml-citation{ref="3,4" data="citationList"} - List columns ; - if (!dataList.isEmpty()){ - columns= Arrays.asList(dataList.get(0).keySet().toArray(new String[0])).stream().filter(key -> !key.equals("id")).toList(); - }else { - columns=keys; - } + List columns = keys ; +// if (!dataList.isEmpty()){ +// columns= Arrays.asList(dataList.get(0).keySet().toArray(new String[0])).stream().filter(key -> !key.equals("id")).toList(); +// }else { +// columns=keys; +// } List finalColumns = columns; columns.forEach(col -> { TableColumn, String> column = new TableColumn<>(col); @@ -84,8 +84,24 @@ public class DynamicTableComponent extends VBox { data.addAll(dataList); ContextMenu contextMenu = new ContextMenu(); - MenuItem menuItem = new MenuItem("删除"); - menuItem.setOnAction(new EventHandler() { + + MenuItem editItem = new MenuItem("编辑"); + + editItem.setOnAction(new EventHandler() { + @Override + public void handle(ActionEvent event) { + Map selectedItem = tableView.getSelectionModel().getSelectedItem(); + if (selectedItem!= null) { + SimpleStringProperty id = selectedItem.get("id"); + if (id!= null) { + callBack.edit(id.get(), DynamicTableComponent.this); + } + } + } + }); + + MenuItem deleteItem = new MenuItem("删除"); + deleteItem.setOnAction(new EventHandler() { @Override public void handle(ActionEvent event) { Map selectedItem = tableView.getSelectionModel().getSelectedItem(); @@ -98,7 +114,7 @@ public class DynamicTableComponent extends VBox { data.remove(tableView.getSelectionModel().getSelectedItem()); } }); - contextMenu.getItems().add(menuItem); + contextMenu.getItems().addAll(editItem,deleteItem); tableView.setContextMenu(contextMenu); ///添加按钮 diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBack.java b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBack.java index d5b9a50..83fac27 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBack.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBack.java @@ -27,4 +27,6 @@ public interface DynamicTableComponentCallBack { void delete(String s); + void edit(String s,DynamicTableComponent dynamicTableComponent); + } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBackImpl.java b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBackImpl.java index affa77b..3cedaf2 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBackImpl.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBackImpl.java @@ -57,6 +57,12 @@ public class DynamicTableComponentCallBackImpl implements DynamicTableComponentC dataLoad.deleteData(s); } + @Override + public void edit(String id,DynamicTableComponent table) { + Stage stage = (Stage) table.getScene().getWindow(); + dataLoad.editData(id, stage); + } + public DataLoad getDataLoad() { return dataLoad; }