diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBankAccount.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBankAccount.java index 7a31c72..0b518ff 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBankAccount.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBankAccount.java @@ -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.FxmlPath; import com.ecep.contract.manager.ui.tab.TabSkin; +import com.ecep.contract.manager.ui.table.cell.BankTableCell; import javafx.scene.control.*; import javafx.scene.input.KeyCode; import lombok.Setter; @@ -58,21 +59,7 @@ public class CompanyTabSkinBankAccount bankAccountTable_idColumn.setCellValueFactory(param -> param.getValue().getId()); bankAccountTable_bankColumn.setCellValueFactory(param -> param.getValue().getBank()); - bankAccountTable_bankColumn.setCellFactory(param -> new TableCell<>() { - @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_bankColumn.setCellFactory(param -> new BankTableCell<>(getBankService())); bankAccountTable_openingBankColumn.setCellValueFactory(param -> param.getValue().getOpeningBank()); bankAccountTable_accountColumn.setCellValueFactory(param -> param.getValue().getAccount()); diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinContract.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinContract.java index 0c6c5eb..e8a71b6 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinContract.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinContract.java @@ -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.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.model.Contract; 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.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.ContractTypeService; import com.ecep.contract.manager.ds.contract.tasker.ContractRepairByCompanyTask; import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; import com.ecep.contract.manager.ds.other.EmployeeStringConverter; 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.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.table.cell.LocalDateTimeTableCell; import com.ecep.contract.manager.util.DesktopUtils; import com.ecep.contract.manager.util.SpecificationUtils; import com.ecep.contract.manager.util.UITools; @@ -183,18 +180,18 @@ public class CompanyTabSkinContract contractTable_startDateColumn.setCellValueFactory(param -> param.getValue().getStartDate()); contractTable_endDateColumn.setCellValueFactory(param -> param.getValue().getEndDate()); 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.setSortable(true); // contractTable_setupDateColumn.setSortType(TableColumn.SortType.DESCENDING); 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_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_createdColumn.setCellValueFactory(param -> param.getValue().getCreated()); @@ -264,18 +261,20 @@ public class CompanyTabSkinContract return contractService; } - private ContractTypeService getContractTypeService() { + private ContractTypeService getContractTypeService() { if (contractTypeService == null) { contractTypeService = getBean(ContractTypeService.class); } return contractTypeService; } + private ContractKindService getContractKindService() { if (contractKindService == null) { contractKindService = getBean(ContractKindService.class); } return contractKindService; } + private ContractGroupService getContractGroupService() { if (contractGroupService == null) { contractGroupService = getBean(ContractGroupService.class); diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeManagerSkin.java index d8cad84..42aae25 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeManagerSkin.java @@ -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.ui.AbstEntityManagerSkin; import com.ecep.contract.manager.ui.ManagerSkin; +import com.ecep.contract.manager.ui.table.cell.DepartmentTableCell; import com.ecep.contract.manager.util.SpecificationUtils; import javafx.event.ActionEvent; import javafx.scene.control.cell.CheckBoxTableCell; -import javafx.scene.control.cell.ComboBoxTableCell; import org.springframework.data.jpa.domain.Specification; public class EmployeeManagerSkin @@ -20,6 +20,15 @@ public class EmployeeManagerSkin super(controller); } + DepartmentService departmentService; + + DepartmentService getDepartmentService() { + if (departmentService == null) { + departmentService = getBean(DepartmentService.class); + } + return departmentService; + } + @Override public Specification getSpecification() { Specification spec = super.getSpecification(); @@ -33,12 +42,6 @@ public class EmployeeManagerSkin @Override public void initializeTable() { - EntityStringConverter departmentStringConverter = new EntityStringConverter<>(); - DepartmentService departmentService = getBean(DepartmentService.class); - departmentStringConverter.setInitialized(department -> { - return departmentService.findById(department.getId()); - }); - controller.idColumn.setCellValueFactory(param -> param.getValue().getId()); controller.nameColumn.setCellValueFactory(param -> param.getValue().getName()); controller.aliasColumn.setCellValueFactory(param -> param.getValue().getAlias()); @@ -46,7 +49,7 @@ public class EmployeeManagerSkin controller.accountColumn.setCellValueFactory(param -> param.getValue().getAccount()); 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()); diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/BankTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/BankTableCell.java new file mode 100644 index 0000000..f448d40 --- /dev/null +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/BankTableCell.java @@ -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 extends AsyncUpdateTableCell { + public BankTableCell(BankService service) { + setService(service); + } + + @Override + protected IEntityService getServiceBean() { + return SpringApp.getBean(BankService.class); + } + + +} diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/CompanyTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/CompanyTableCell.java index 5508638..d3728c1 100644 --- a/src/main/java/com/ecep/contract/manager/ui/table/cell/CompanyTableCell.java +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/CompanyTableCell.java @@ -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.service.CompanyService; -import com.ecep.contract.manager.ui.ViewModelService; +import lombok.NoArgsConstructor; import static com.ecep.contract.manager.SpringApp.getBean; +@NoArgsConstructor public class CompanyTableCell extends AsyncUpdateTableCell { - public CompanyTableCell() { - } - public CompanyTableCell(CompanyService companyService) { setService(companyService); } @Override - protected ViewModelService getServiceBean() { + protected CompanyService getServiceBean() { return getBean(CompanyService.class); } } diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/DepartmentTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/DepartmentTableCell.java new file mode 100644 index 0000000..939c88e --- /dev/null +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/DepartmentTableCell.java @@ -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 extends AsyncUpdateTableCell { + public DepartmentTableCell(DepartmentService service) { + setService(service); + } + + @Override + protected IEntityService getServiceBean() { + return SpringApp.getBean(DepartmentService.class); + } + + +}