refactor(ui): 重构表格单元格渲染逻辑
- 新增 BankTableCell、DepartmentTableCell 等通用表格单元格类 - 优化 CompanyTableCell 结构,提高可复用性 - 在 CompanyTabSkinBankAccount 和 CompanyTabSkinContract 中使用新的表格单元格类 - 更新 EmployeeManagerSkin 中的部门列渲染方式
This commit is contained in:
@@ -9,6 +9,7 @@ import com.ecep.contract.manager.ds.other.service.BankService;
|
|||||||
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
|
import com.ecep.contract.manager.ui.table.cell.BankTableCell;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.input.KeyCode;
|
import javafx.scene.input.KeyCode;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@@ -58,21 +59,7 @@ public class CompanyTabSkinBankAccount
|
|||||||
|
|
||||||
bankAccountTable_idColumn.setCellValueFactory(param -> param.getValue().getId());
|
bankAccountTable_idColumn.setCellValueFactory(param -> param.getValue().getId());
|
||||||
bankAccountTable_bankColumn.setCellValueFactory(param -> param.getValue().getBank());
|
bankAccountTable_bankColumn.setCellValueFactory(param -> param.getValue().getBank());
|
||||||
bankAccountTable_bankColumn.setCellFactory(param -> new TableCell<>() {
|
bankAccountTable_bankColumn.setCellFactory(param -> new BankTableCell<>(getBankService()));
|
||||||
@Override
|
|
||||||
protected void updateItem(Bank item, boolean empty) {
|
|
||||||
super.updateItem(item, empty);
|
|
||||||
if (empty || item == null) {
|
|
||||||
setText(null);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!Hibernate.isInitialized(item)) {
|
|
||||||
item = getBankService().findById(item.getId());
|
|
||||||
setItem(item);
|
|
||||||
}
|
|
||||||
setText(item.getName());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
bankAccountTable_openingBankColumn.setCellValueFactory(param -> param.getValue().getOpeningBank());
|
bankAccountTable_openingBankColumn.setCellValueFactory(param -> param.getValue().getOpeningBank());
|
||||||
bankAccountTable_accountColumn.setCellValueFactory(param -> param.getValue().getAccount());
|
bankAccountTable_accountColumn.setCellValueFactory(param -> param.getValue().getAccount());
|
||||||
|
|||||||
@@ -2,27 +2,24 @@ package com.ecep.contract.manager.ds.company.controller;
|
|||||||
|
|
||||||
import com.ecep.contract.manager.cloud.u8.YongYouU8Service;
|
import com.ecep.contract.manager.cloud.u8.YongYouU8Service;
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
import com.ecep.contract.manager.ds.contract.service.ContractGroupService;
|
|
||||||
import com.ecep.contract.manager.ds.contract.service.ContractKindService;
|
|
||||||
import com.ecep.contract.manager.ds.contract.service.ContractTypeService;
|
|
||||||
import com.ecep.contract.manager.ui.table.cell.ContractGroupTableCell;
|
|
||||||
import com.ecep.contract.manager.ui.table.cell.ContractKindTableCell;
|
|
||||||
import com.ecep.contract.manager.ui.table.cell.ContractTypeTableCell;
|
|
||||||
import com.ecep.contract.manager.ds.contract.controller.ContractWindowController;
|
import com.ecep.contract.manager.ds.contract.controller.ContractWindowController;
|
||||||
import com.ecep.contract.manager.ds.contract.model.Contract;
|
import com.ecep.contract.manager.ds.contract.model.Contract;
|
||||||
import com.ecep.contract.manager.ds.contract.model.ContractGroup;
|
import com.ecep.contract.manager.ds.contract.model.ContractGroup;
|
||||||
import com.ecep.contract.manager.ds.contract.model.ContractKind;
|
import com.ecep.contract.manager.ds.contract.model.ContractKind;
|
||||||
import com.ecep.contract.manager.ds.contract.model.ContractType;
|
import com.ecep.contract.manager.ds.contract.model.ContractType;
|
||||||
|
import com.ecep.contract.manager.ds.contract.service.ContractGroupService;
|
||||||
|
import com.ecep.contract.manager.ds.contract.service.ContractKindService;
|
||||||
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
import com.ecep.contract.manager.ds.contract.service.ContractService;
|
||||||
|
import com.ecep.contract.manager.ds.contract.service.ContractTypeService;
|
||||||
import com.ecep.contract.manager.ds.contract.tasker.ContractRepairByCompanyTask;
|
import com.ecep.contract.manager.ds.contract.tasker.ContractRepairByCompanyTask;
|
||||||
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
import com.ecep.contract.manager.ds.contract.vo.ContractViewModel;
|
||||||
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
import com.ecep.contract.manager.ds.other.EmployeeStringConverter;
|
||||||
import com.ecep.contract.manager.ds.other.model.Employee;
|
import com.ecep.contract.manager.ds.other.model.Employee;
|
||||||
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
|
||||||
import com.ecep.contract.manager.ui.FxmlPath;
|
import com.ecep.contract.manager.ui.FxmlPath;
|
||||||
import com.ecep.contract.manager.ui.tab.TabSkin;
|
import com.ecep.contract.manager.ui.tab.TabSkin;
|
||||||
|
import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin;
|
||||||
|
import com.ecep.contract.manager.ui.table.cell.*;
|
||||||
import com.ecep.contract.manager.ui.util.ContractGroupStringConverter;
|
import com.ecep.contract.manager.ui.util.ContractGroupStringConverter;
|
||||||
import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell;
|
|
||||||
import com.ecep.contract.manager.util.DesktopUtils;
|
import com.ecep.contract.manager.util.DesktopUtils;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import com.ecep.contract.manager.util.UITools;
|
import com.ecep.contract.manager.util.UITools;
|
||||||
@@ -183,18 +180,18 @@ public class CompanyTabSkinContract
|
|||||||
contractTable_startDateColumn.setCellValueFactory(param -> param.getValue().getStartDate());
|
contractTable_startDateColumn.setCellValueFactory(param -> param.getValue().getStartDate());
|
||||||
contractTable_endDateColumn.setCellValueFactory(param -> param.getValue().getEndDate());
|
contractTable_endDateColumn.setCellValueFactory(param -> param.getValue().getEndDate());
|
||||||
contractTable_setupPersonColumn.setCellValueFactory(param -> param.getValue().getSetupPerson());
|
contractTable_setupPersonColumn.setCellValueFactory(param -> param.getValue().getSetupPerson());
|
||||||
contractTable_setupPersonColumn.setCellFactory(TextFieldTableCell.forTableColumn(getEmployeeStringConverter()));
|
contractTable_setupPersonColumn.setCellFactory(param -> new EmployeeTableCell<>(getEmployeeService()));
|
||||||
|
|
||||||
contractTable_setupDateColumn.setCellValueFactory(param -> param.getValue().getSetupDate());
|
contractTable_setupDateColumn.setCellValueFactory(param -> param.getValue().getSetupDate());
|
||||||
// contractTable_setupDateColumn.setSortable(true);
|
// contractTable_setupDateColumn.setSortable(true);
|
||||||
// contractTable_setupDateColumn.setSortType(TableColumn.SortType.DESCENDING);
|
// contractTable_setupDateColumn.setSortType(TableColumn.SortType.DESCENDING);
|
||||||
contractTable_inurePersonColumn.setCellValueFactory(param -> param.getValue().getInurePerson());
|
contractTable_inurePersonColumn.setCellValueFactory(param -> param.getValue().getInurePerson());
|
||||||
contractTable_inurePersonColumn.setCellFactory(TextFieldTableCell.forTableColumn(getEmployeeStringConverter()));
|
contractTable_inurePersonColumn.setCellFactory(param -> new EmployeeTableCell<>(getEmployeeService()));
|
||||||
|
|
||||||
contractTable_inureDateColumn.setCellValueFactory(param -> param.getValue().getInureDate());
|
contractTable_inureDateColumn.setCellValueFactory(param -> param.getValue().getInureDate());
|
||||||
|
|
||||||
contractTable_varyPersonColumn.setCellValueFactory(param -> param.getValue().getVaryPerson());
|
contractTable_varyPersonColumn.setCellValueFactory(param -> param.getValue().getVaryPerson());
|
||||||
contractTable_varyPersonColumn.setCellFactory(TextFieldTableCell.forTableColumn(getEmployeeStringConverter()));
|
contractTable_varyPersonColumn.setCellFactory(param->new EmployeeTableCell<>(getEmployeeService()));
|
||||||
|
|
||||||
contractTable_varyDateColumn.setCellValueFactory(param -> param.getValue().getVaryDate());
|
contractTable_varyDateColumn.setCellValueFactory(param -> param.getValue().getVaryDate());
|
||||||
contractTable_createdColumn.setCellValueFactory(param -> param.getValue().getCreated());
|
contractTable_createdColumn.setCellValueFactory(param -> param.getValue().getCreated());
|
||||||
@@ -270,12 +267,14 @@ public class CompanyTabSkinContract
|
|||||||
}
|
}
|
||||||
return contractTypeService;
|
return contractTypeService;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ContractKindService getContractKindService() {
|
private ContractKindService getContractKindService() {
|
||||||
if (contractKindService == null) {
|
if (contractKindService == null) {
|
||||||
contractKindService = getBean(ContractKindService.class);
|
contractKindService = getBean(ContractKindService.class);
|
||||||
}
|
}
|
||||||
return contractKindService;
|
return contractKindService;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ContractGroupService getContractGroupService() {
|
private ContractGroupService getContractGroupService() {
|
||||||
if (contractGroupService == null) {
|
if (contractGroupService == null) {
|
||||||
contractGroupService = getBean(ContractGroupService.class);
|
contractGroupService = getBean(ContractGroupService.class);
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import com.ecep.contract.manager.ds.other.service.DepartmentService;
|
|||||||
import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel;
|
import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel;
|
||||||
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
import com.ecep.contract.manager.ui.AbstEntityManagerSkin;
|
||||||
import com.ecep.contract.manager.ui.ManagerSkin;
|
import com.ecep.contract.manager.ui.ManagerSkin;
|
||||||
|
import com.ecep.contract.manager.ui.table.cell.DepartmentTableCell;
|
||||||
import com.ecep.contract.manager.util.SpecificationUtils;
|
import com.ecep.contract.manager.util.SpecificationUtils;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.scene.control.cell.CheckBoxTableCell;
|
import javafx.scene.control.cell.CheckBoxTableCell;
|
||||||
import javafx.scene.control.cell.ComboBoxTableCell;
|
|
||||||
import org.springframework.data.jpa.domain.Specification;
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
|
|
||||||
public class EmployeeManagerSkin
|
public class EmployeeManagerSkin
|
||||||
@@ -20,6 +20,15 @@ public class EmployeeManagerSkin
|
|||||||
super(controller);
|
super(controller);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DepartmentService departmentService;
|
||||||
|
|
||||||
|
DepartmentService getDepartmentService() {
|
||||||
|
if (departmentService == null) {
|
||||||
|
departmentService = getBean(DepartmentService.class);
|
||||||
|
}
|
||||||
|
return departmentService;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Specification<Employee> getSpecification() {
|
public Specification<Employee> getSpecification() {
|
||||||
Specification<Employee> spec = super.getSpecification();
|
Specification<Employee> spec = super.getSpecification();
|
||||||
@@ -33,12 +42,6 @@ public class EmployeeManagerSkin
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initializeTable() {
|
public void initializeTable() {
|
||||||
EntityStringConverter<Department> departmentStringConverter = new EntityStringConverter<>();
|
|
||||||
DepartmentService departmentService = getBean(DepartmentService.class);
|
|
||||||
departmentStringConverter.setInitialized(department -> {
|
|
||||||
return departmentService.findById(department.getId());
|
|
||||||
});
|
|
||||||
|
|
||||||
controller.idColumn.setCellValueFactory(param -> param.getValue().getId());
|
controller.idColumn.setCellValueFactory(param -> param.getValue().getId());
|
||||||
controller.nameColumn.setCellValueFactory(param -> param.getValue().getName());
|
controller.nameColumn.setCellValueFactory(param -> param.getValue().getName());
|
||||||
controller.aliasColumn.setCellValueFactory(param -> param.getValue().getAlias());
|
controller.aliasColumn.setCellValueFactory(param -> param.getValue().getAlias());
|
||||||
@@ -46,7 +49,7 @@ public class EmployeeManagerSkin
|
|||||||
controller.accountColumn.setCellValueFactory(param -> param.getValue().getAccount());
|
controller.accountColumn.setCellValueFactory(param -> param.getValue().getAccount());
|
||||||
|
|
||||||
controller.departmentColumn.setCellValueFactory(param -> param.getValue().getDepartment());
|
controller.departmentColumn.setCellValueFactory(param -> param.getValue().getDepartment());
|
||||||
controller.departmentColumn.setCellFactory(ComboBoxTableCell.forTableColumn(departmentStringConverter));
|
controller.departmentColumn.setCellFactory(param -> new DepartmentTableCell<>(getDepartmentService()));
|
||||||
|
|
||||||
|
|
||||||
controller.emailColumn.setCellValueFactory(param -> param.getValue().getEmail());
|
controller.emailColumn.setCellValueFactory(param -> param.getValue().getEmail());
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.ecep.contract.manager.ui.table.cell;
|
||||||
|
|
||||||
|
import com.ecep.contract.manager.SpringApp;
|
||||||
|
import com.ecep.contract.manager.ds.other.model.Bank;
|
||||||
|
import com.ecep.contract.manager.ds.other.service.BankService;
|
||||||
|
import com.ecep.contract.manager.ds.other.service.IEntityService;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class BankTableCell<T> extends AsyncUpdateTableCell<T, Bank> {
|
||||||
|
public BankTableCell(BankService service) {
|
||||||
|
setService(service);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected IEntityService<Bank> getServiceBean() {
|
||||||
|
return SpringApp.getBean(BankService.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,21 +2,19 @@ package com.ecep.contract.manager.ui.table.cell;
|
|||||||
|
|
||||||
import com.ecep.contract.manager.ds.company.model.Company;
|
import com.ecep.contract.manager.ds.company.model.Company;
|
||||||
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
import com.ecep.contract.manager.ds.company.service.CompanyService;
|
||||||
import com.ecep.contract.manager.ui.ViewModelService;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import static com.ecep.contract.manager.SpringApp.getBean;
|
import static com.ecep.contract.manager.SpringApp.getBean;
|
||||||
|
|
||||||
|
@NoArgsConstructor
|
||||||
public class CompanyTableCell<V> extends AsyncUpdateTableCell<V, Company> {
|
public class CompanyTableCell<V> extends AsyncUpdateTableCell<V, Company> {
|
||||||
|
|
||||||
public CompanyTableCell() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public CompanyTableCell(CompanyService companyService) {
|
public CompanyTableCell(CompanyService companyService) {
|
||||||
setService(companyService);
|
setService(companyService);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ViewModelService<Company, ?> getServiceBean() {
|
protected CompanyService getServiceBean() {
|
||||||
return getBean(CompanyService.class);
|
return getBean(CompanyService.class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package com.ecep.contract.manager.ui.table.cell;
|
||||||
|
|
||||||
|
import com.ecep.contract.manager.SpringApp;
|
||||||
|
import com.ecep.contract.manager.ds.other.model.Bank;
|
||||||
|
import com.ecep.contract.manager.ds.other.model.Department;
|
||||||
|
import com.ecep.contract.manager.ds.other.service.BankService;
|
||||||
|
import com.ecep.contract.manager.ds.other.service.DepartmentService;
|
||||||
|
import com.ecep.contract.manager.ds.other.service.IEntityService;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class DepartmentTableCell<T> extends AsyncUpdateTableCell<T, Department> {
|
||||||
|
public DepartmentTableCell(DepartmentService service) {
|
||||||
|
setService(service);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected IEntityService<Department> getServiceBean() {
|
||||||
|
return SpringApp.getBean(DepartmentService.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user