diff --git a/config.properties b/config.properties index aa74cb8..2b04343 100644 --- a/config.properties +++ b/config.properties @@ -2,8 +2,8 @@ #Wed Mar 26 16:33:45 CST 2025 cloud.u8.enabled=true db.server.database=supplier_ms -#db.server.host=10.84.209.8 -#db.server.password=ecep.62335656 -#db.server.port=3306 -#db.server.username=ecep +db.server.host=10.84.209.8 +db.server.password=ecep.62335656 +db.server.port=3306 +db.server.username=ecep username_password.remember=true diff --git a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkManagerSkin.java b/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkManagerSkin.java index 8b3c304..3c982f8 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/cloud/rk/CloudRkManagerSkin.java @@ -3,12 +3,12 @@ package com.ecep.contract.manager.cloud.rk; import org.hibernate.Hibernate; import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.controller.CompanyTableCell; +import com.ecep.contract.manager.ui.table.cell.CompanyTableCell; import com.ecep.contract.manager.ds.company.controller.CompanyWindowController; import com.ecep.contract.manager.ds.company.model.Company; import com.ecep.contract.manager.ds.company.service.CompanyService; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import javafx.collections.ObservableList; import javafx.event.ActionEvent; diff --git a/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycManagerSkin.java b/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycManagerSkin.java index e9cec34..7ff1e0b 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/cloud/tyc/CloudTycManagerSkin.java @@ -8,12 +8,12 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.controller.CompanyTableCell; +import com.ecep.contract.manager.ui.table.cell.CompanyTableCell; import com.ecep.contract.manager.ds.company.controller.CompanyWindowController; import com.ecep.contract.manager.ds.company.model.Company; import com.ecep.contract.manager.ds.company.service.CompanyService; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import jakarta.persistence.criteria.Path; import javafx.collections.ObservableList; diff --git a/src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8ManagerSkin.java b/src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8ManagerSkin.java index 5efd80c..34f20cf 100644 --- a/src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8ManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/cloud/u8/YongYouU8ManagerSkin.java @@ -1,13 +1,13 @@ package com.ecep.contract.manager.cloud.u8; import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.company.controller.CompanyTableCell; +import com.ecep.contract.manager.ui.table.cell.CompanyTableCell; import com.ecep.contract.manager.ds.company.controller.CompanyWindowController; import com.ecep.contract.manager.ds.company.model.Company; import com.ecep.contract.manager.ds.company.service.CompanyService; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; import com.ecep.contract.manager.ui.ManagerSkin; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import jakarta.persistence.criteria.Path; import javafx.collections.ObservableList; import javafx.event.ActionEvent; diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyBasedTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyBasedTabSkin.java index cb4e9e8..86ae5d4 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyBasedTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyBasedTabSkin.java @@ -3,9 +3,8 @@ package com.ecep.contract.manager.ds.company.controller; 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.vo.CompanyViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; -import lombok.Setter; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; public abstract class AbstCompanyBasedTabSkin extends AbstEntityBasedTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyTableTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyTableTabSkin.java index a03d8d1..31ae190 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyTableTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/AbstCompanyTableTabSkin.java @@ -6,9 +6,9 @@ import com.ecep.contract.manager.ds.company.vo.CompanyBasedViewModel; import com.ecep.contract.manager.ds.company.vo.CompanyViewModel; import com.ecep.contract.manager.ds.other.model.IdentityEntity; import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.TableOfTabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; +import com.ecep.contract.manager.ui.table.TableOfTabSkin; import com.ecep.contract.manager.util.SpecificationUtils; import lombok.Setter; import org.springframework.data.jpa.domain.Specification; 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 510e53b..7a31c72 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 @@ -1,23 +1,18 @@ package com.ecep.contract.manager.ds.company.controller; import com.ecep.contract.manager.ds.company.controller.bank_account.BankAccountWindowController; -import com.ecep.contract.manager.ds.company.model.Company; import com.ecep.contract.manager.ds.company.model.CompanyBankAccount; import com.ecep.contract.manager.ds.company.service.CompanyBankAccountService; import com.ecep.contract.manager.ds.company.vo.CompanyBankAccountViewModel; import com.ecep.contract.manager.ds.other.model.Bank; import com.ecep.contract.manager.ds.other.service.BankService; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.*; import javafx.scene.input.KeyCode; import lombok.Setter; import org.hibernate.Hibernate; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; - -import java.util.List; /** * 子合同 diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBase.java index 60738ee..1a73c2c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBase.java @@ -3,7 +3,7 @@ package com.ecep.contract.manager.ds.company.controller; import com.ecep.contract.manager.ds.company.model.Company; import com.ecep.contract.manager.ds.company.model.CompanyOldName; import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.event.ActionEvent; import javafx.geometry.Insets; import javafx.scene.control.*; diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBlackReason.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBlackReason.java index 8b4a933..3556950 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBlackReason.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinBlackReason.java @@ -8,19 +8,16 @@ import com.ecep.contract.manager.ds.company.model.Company; import com.ecep.contract.manager.ds.company.model.CompanyBlackReason; import com.ecep.contract.manager.ds.company.service.CompanyBlackReasonService; import com.ecep.contract.manager.ds.company.vo.CompanyBlackReasonViewModel; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.UITools; import javafx.event.ActionEvent; import javafx.scene.control.*; import javafx.scene.input.KeyCode; import lombok.Setter; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; import java.time.LocalDate; -import java.util.List; /** * 子合同 diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinContact.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinContact.java index d34f742..b749c1c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinContact.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinContact.java @@ -1,23 +1,18 @@ package com.ecep.contract.manager.ds.company.controller; import com.ecep.contract.manager.ds.company.controller.contact.CompanyContactWindowController; -import com.ecep.contract.manager.ds.company.model.Company; import com.ecep.contract.manager.ds.company.model.CompanyContact; import com.ecep.contract.manager.ds.company.service.CompanyContactService; import com.ecep.contract.manager.ds.company.vo.CompanyContactViewModel; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.ViewModelService; +import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.event.ActionEvent; import javafx.scene.control.*; import javafx.scene.input.KeyCode; import lombok.Setter; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; import java.time.LocalDate; -import java.util.List; /** * 子合同 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 3f384cc..0c6c5eb 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,9 +2,12 @@ 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.controller.ContractGroupTableCell; -import com.ecep.contract.manager.ds.contract.controller.ContractKindTableCell; -import com.ecep.contract.manager.ds.contract.controller.ContractTypeTableCell; +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; @@ -15,11 +18,11 @@ 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.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.ui.util.ContractGroupStringConverter; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +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; @@ -80,6 +83,12 @@ public class CompanyTabSkinContract @Setter private ContractService contractService; @Setter + private ContractGroupService contractGroupService; + @Setter + private ContractKindService contractKindService; + @Setter + private ContractTypeService contractTypeService; + @Setter private YongYouU8Service u8Service; @Setter private EmployeeStringConverter employeeStringConverter; @@ -126,7 +135,7 @@ public class CompanyTabSkinContract ObservableList contractGroups = FXCollections.observableArrayList(); contractGroups.add(null); - contractGroups.addAll(contractService.findAllGroups()); + contractGroups.addAll(getViewModelService().findAllGroups()); contractGroupSelector.setItems(contractGroups); contractGroupSelector.setConverter(new ContractGroupStringConverter(contractGroups)); contractSearchKeyField.setOnKeyReleased(event -> { @@ -139,13 +148,13 @@ public class CompanyTabSkinContract CompletableFuture.runAsync(() -> { // 计算主合同编号 for (ContractViewModel model : dataSet) { - Contract contract = contractService.findById(model.getId().get()); + Contract contract = getViewModelService().findById(model.getId().get()); if (contract == null) { continue; } try { - if (contractService.updateParentCode(contract)) { - Contract updated = contractService.save(contract); + if (getViewModelService().updateParentCode(contract)) { + Contract updated = getViewModelService().save(contract); model.update(updated); } } catch (NoSuchElementException e) { @@ -160,13 +169,13 @@ public class CompanyTabSkinContract contractTable_nameColumn.setCellValueFactory(param -> param.getValue().getName()); contractTable_stateColumn.setCellValueFactory(param -> param.getValue().getState()); contractTable_groupColumn.setCellValueFactory(param -> param.getValue().getGroup()); - contractTable_groupColumn.setCellFactory(param -> new ContractGroupTableCell(getViewModelService())); + contractTable_groupColumn.setCellFactory(param -> new ContractGroupTableCell<>(getContractGroupService())); contractTable_typeColumn.setCellValueFactory(param -> param.getValue().getType()); - contractTable_typeColumn.setCellFactory(param -> new ContractTypeTableCell(getViewModelService())); + contractTable_typeColumn.setCellFactory(param -> new ContractTypeTableCell<>(getContractTypeService())); contractTable_kindColumn.setCellValueFactory(param -> param.getValue().getKind()); - contractTable_kindColumn.setCellFactory(param -> new ContractKindTableCell(getViewModelService())); + contractTable_kindColumn.setCellFactory(param -> new ContractKindTableCell<>(getContractKindService())); contractTable_parentCodeColumn.setCellValueFactory(param -> param.getValue().getParentCode()); @@ -205,7 +214,7 @@ public class CompanyTabSkinContract private void onTableUpdateAction(ActionEvent event) { ContractRepairByCompanyTask task = new ContractRepairByCompanyTask(); - task.setContractService(contractService); + task.setContractService(getViewModelService()); task.setCompany(getParent()); UITools.showTaskDialogAndWait("同步合同", task, null); if (task.isRepaired()) { @@ -255,6 +264,25 @@ public class CompanyTabSkinContract return contractService; } + 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); + } + return contractGroupService; + } + private EmployeeStringConverter getEmployeeStringConverter() { if (employeeStringConverter == null) { employeeStringConverter = getBean(EmployeeStringConverter.class); diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinFile.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinFile.java index d1c8b28..faec4dc 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinFile.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinFile.java @@ -8,9 +8,9 @@ import com.ecep.contract.manager.ds.company.model.CompanyFile; import com.ecep.contract.manager.ds.company.model.CompanyFileTypeLocal; import com.ecep.contract.manager.ds.company.service.CompanyFileService; import com.ecep.contract.manager.ds.company.vo.CompanyFileViewModel; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.DesktopUtils; import com.ecep.contract.manager.util.MyDateTimeUtils; import com.ecep.contract.manager.util.UITools; diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinInvoice.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinInvoice.java index a2fa8cd..32a0fed 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinInvoice.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinInvoice.java @@ -6,9 +6,9 @@ import com.ecep.contract.manager.ds.company.service.InvoiceService; import com.ecep.contract.manager.ds.company.vo.InvoiceViewModel; import com.ecep.contract.manager.ds.contract.service.PurchaseBillVoucherService; import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.Button; import javafx.scene.control.Tab; import javafx.scene.control.TableColumn; diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinOldName.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinOldName.java index 8667723..2551544 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinOldName.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinOldName.java @@ -6,7 +6,7 @@ import com.ecep.contract.manager.ds.company.model.CompanyOldName; import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.SpecificationUtils; import javafx.application.Platform; import javafx.event.ActionEvent; diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinOther.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinOther.java index b6b7710..5912d2f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinOther.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinOther.java @@ -16,7 +16,7 @@ import com.ecep.contract.manager.ds.company.service.CompanyExtendInfoService; import com.ecep.contract.manager.ds.company.vo.CompanyExtendInfoViewModel; import com.ecep.contract.manager.ui.FxmlPath; import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.ui.util.DelayOnceExecutor; import com.ecep.contract.manager.util.DesktopUtils; import com.ecep.contract.manager.util.MyDateTimeUtils; diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinPurchaseBillVoucher.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinPurchaseBillVoucher.java index 96127bf..bb71e18 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinPurchaseBillVoucher.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTabSkinPurchaseBillVoucher.java @@ -1,7 +1,6 @@ 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.company.model.Invoice; import com.ecep.contract.manager.ds.company.service.InvoiceService; import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucher; @@ -10,19 +9,16 @@ import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherViewModel; import com.ecep.contract.manager.ds.other.EmployeeStringConverter; import com.ecep.contract.manager.ds.other.model.Employee; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +import com.ecep.contract.manager.ui.tab.TabSkin; +import com.ecep.contract.manager.ui.table.cell.InvoiceTableCell; +import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import javafx.scene.control.*; import javafx.scene.control.cell.TextFieldTableCell; import javafx.scene.input.KeyCode; import lombok.Setter; import org.springframework.beans.BeansException; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; import java.time.LocalDateTime; -import java.util.List; /** * 子合同 diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTableCell.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTableCell.java deleted file mode 100644 index 28e3e8f..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyTableCell.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.ecep.contract.manager.ds.company.controller; - -import static com.ecep.contract.manager.SpringApp.getBean; - -import java.util.concurrent.Future; - -import org.hibernate.Hibernate; - -import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.ds.company.model.Company; -import com.ecep.contract.manager.ds.company.service.CompanyService; - -import javafx.application.Platform; - -public class CompanyTableCell - extends javafx.scene.control.TableCell { - - private CompanyService companyService; - - public CompanyTableCell() { - } - - public CompanyTableCell(CompanyService companyService) { - this.companyService = companyService; - } - - private CompanyService getCompanyService() { - if (companyService == null) { - companyService = getBean(CompanyService.class); - } - return companyService; - } - - @Override - protected void updateItem(Company item, boolean empty) { - super.updateItem(item, empty); - if (empty || item == null) { - setText(null); - return; - } - if (Hibernate.isInitialized(item)) { - setText(formart(item)); - return; - } - setText("# " + item.getId()); - submit(this::asyncLoadAndUpdate); - } - - Future submit(Runnable var1){ - return Desktop.instance.getExecutorService().submit(var1); - } - - private String formart(Company company) { - return company.getName(); - } - - private void asyncLoadAndUpdate() { - Company company = getCompanyService().findById(getItem().getId()); - Platform.runLater(() -> { - setText(formart(company)); - setItem(company); - }); - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyWindowController.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyWindowController.java index 0e2acaa..5ae6f3c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyWindowController.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/CompanyWindowController.java @@ -14,7 +14,7 @@ import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; import com.ecep.contract.manager.ds.vendor.controller.CompanyVendorWindowController; import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; import com.ecep.contract.manager.ui.AbstEntityController; import com.ecep.contract.manager.ui.FxmlPath; import com.ecep.contract.manager.util.DesktopUtils; diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/InvoiceTableCell.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/InvoiceTableCell.java deleted file mode 100644 index 9697dca..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/InvoiceTableCell.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.ecep.contract.manager.ds.company.controller; - -import com.ecep.contract.manager.ds.company.model.Invoice; -import com.ecep.contract.manager.ds.company.service.InvoiceService; -import javafx.scene.control.TableCell; -import org.hibernate.Hibernate; - -import static com.ecep.contract.manager.SpringApp.getBean; - -class InvoiceTableCell extends TableCell { - private InvoiceService invoiceService; - - public InvoiceTableCell() { - } - - public InvoiceTableCell(InvoiceService invoiceService) { - this.invoiceService = invoiceService; - } - - private InvoiceService getInvoiceService() { - if (invoiceService == null) { - invoiceService = getBean(InvoiceService.class); - } - return invoiceService; - } - - @Override - protected void updateItem(Invoice item, boolean empty) { - super.updateItem(item, empty); - if (item == null || empty) { - setText(null); - setGraphic(null); - } else { - if (!Hibernate.isInitialized(item)) { - item = getInvoiceService().findById(item.getId()); - } - setText(item.getCode()); - } - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/bank_account/BankAccountBaseTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/bank_account/BankAccountBaseTabSkin.java index 0d8cbbb..4546c52 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/bank_account/BankAccountBaseTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/bank_account/BankAccountBaseTabSkin.java @@ -5,13 +5,12 @@ import com.ecep.contract.manager.ds.company.CompanyStringConverter; import com.ecep.contract.manager.ds.company.controller.CompanyWindowController; import com.ecep.contract.manager.ds.company.model.Company; import com.ecep.contract.manager.ds.company.model.CompanyBankAccount; -import com.ecep.contract.manager.ds.company.service.CompanyBankAccountService; import com.ecep.contract.manager.ds.company.service.CompanyService; import com.ecep.contract.manager.ds.company.vo.CompanyBankAccountViewModel; import com.ecep.contract.manager.ds.other.BankStringConverter; import com.ecep.contract.manager.ds.other.service.BankService; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.UITools; import javafx.scene.control.Tab; import javafx.scene.control.TextField; diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameTabSkinBase.java index c57e6fd..96119d9 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameTabSkinBase.java @@ -4,8 +4,8 @@ import com.ecep.contract.manager.ds.company.model.CompanyOldName; import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; import com.ecep.contract.manager.ds.company.service.CompanyService; import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.Tab; import javafx.util.converter.LocalDateStringConverter; import lombok.Setter; diff --git a/src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameTabSkinFile.java b/src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameTabSkinFile.java index 90ac992..e8c5391 100644 --- a/src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameTabSkinFile.java +++ b/src/main/java/com/ecep/contract/manager/ds/company/controller/old_name/CompanyOldNameTabSkinFile.java @@ -8,8 +8,8 @@ import com.ecep.contract.manager.ds.company.service.CompanyFileService; import com.ecep.contract.manager.ds.company.service.CompanyOldNameService; import com.ecep.contract.manager.ds.company.vo.CompanyFileViewModel; import com.ecep.contract.manager.ds.company.vo.CompanyOldNameViewModel; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.DesktopUtils; import com.ecep.contract.manager.util.SpecificationUtils; import com.ecep.contract.manager.util.UITools; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/AbstContractBasedTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/AbstContractBasedTabSkin.java index 3b15c0e..5529826 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/AbstContractBasedTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/AbstContractBasedTabSkin.java @@ -3,9 +3,8 @@ package com.ecep.contract.manager.ds.contract.controller; import com.ecep.contract.manager.ds.contract.model.Contract; import com.ecep.contract.manager.ds.contract.service.ContractService; import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; -import lombok.Setter; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; public abstract class AbstContractBasedTabSkin extends AbstEntityBasedTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/AbstContractTableTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/AbstContractTableTabSkin.java index ff7d67f..c36f430 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/AbstContractTableTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/AbstContractTableTabSkin.java @@ -5,9 +5,9 @@ import com.ecep.contract.manager.ds.contract.service.ContractService; import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; import com.ecep.contract.manager.ds.other.model.IdentityEntity; import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.TableOfTabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; +import com.ecep.contract.manager.ui.table.TableOfTabSkin; import com.ecep.contract.manager.util.SpecificationUtils; import org.springframework.data.jpa.domain.Specification; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractGroupTableCell.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractGroupTableCell.java deleted file mode 100644 index c5c06ca..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractGroupTableCell.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.ecep.contract.manager.ds.contract.controller; - -import com.ecep.contract.manager.ds.contract.model.ContractGroup; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; -import javafx.scene.control.TableCell; -import org.hibernate.Hibernate; - -import static com.ecep.contract.manager.SpringApp.getBean; - -public class ContractGroupTableCell extends TableCell { - private ContractService contractService; - - public ContractGroupTableCell() { - } - - public ContractGroupTableCell(ContractService contractService) { - this.contractService = contractService; - } - - ContractService getContractService() { - if (contractService == null) { - contractService = getBean(ContractService.class); - } - return contractService; - } - - @Override - protected void updateItem(ContractGroup item, boolean empty) { - super.updateItem(item, empty); - if (empty || item == null) { - setText(""); - return; - } - if (!Hibernate.isInitialized(item)) { - item = getContractService().findGroupById(item.getId()); - } - setText(item.getName()); - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractKindTableCell.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractKindTableCell.java deleted file mode 100644 index a5d41d4..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractKindTableCell.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.ecep.contract.manager.ds.contract.controller; - -import com.ecep.contract.manager.ds.contract.model.ContractKind; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; -import javafx.scene.control.TableCell; -import org.hibernate.Hibernate; - -import static com.ecep.contract.manager.SpringApp.getBean; - -public class ContractKindTableCell extends TableCell { - private ContractService contractService; - - public ContractKindTableCell() { - } - - public ContractKindTableCell(ContractService contractService) { - this.contractService = contractService; - } - - ContractService getContractService() { - if (contractService == null) { - contractService = getBean(ContractService.class); - } - return contractService; - } - - @Override - protected void updateItem(ContractKind item, boolean empty) { - super.updateItem(item, empty); - if (empty || item == null) { - setText(""); - return; - } - if (!Hibernate.isInitialized(item)) { - item = getContractService().findKindById(item.getId()); - } - setText(item.getName()); - - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractManagerSkin.java index 4a7b0b7..6005f38 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractManagerSkin.java @@ -2,16 +2,18 @@ package com.ecep.contract.manager.ds.contract.controller; import java.time.format.DateTimeFormatter; +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.*; import org.springframework.data.jpa.domain.Specification; -import com.ecep.contract.manager.ds.company.controller.CompanyTableCell; import com.ecep.contract.manager.ds.company.service.CompanyService; import com.ecep.contract.manager.ds.contract.ContractPayWay; 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.service.ContractService; import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; -import com.ecep.contract.manager.ds.other.EmployeeStringConverter; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; import com.ecep.contract.manager.ui.ComboBoxUtils; import com.ecep.contract.manager.ui.ManagerSkin; @@ -30,6 +32,13 @@ public class ContractManagerSkin implements ManagerSkin { @Setter private CompanyService companyService; + @Setter + private ContractGroupService contractGroupService; + @Setter + private ContractKindService contractKindService; + @Setter + private ContractTypeService contractTypeService; + public ContractManagerSkin(ContractManagerWindowController controller) { super(controller); @@ -44,6 +53,23 @@ public class ContractManagerSkin companyService = getBean(CompanyService.class); } return companyService; + }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); + } + return contractGroupService; } @Override @@ -84,11 +110,11 @@ public class ContractManagerSkin controller.nameColumn.setCellValueFactory(param -> param.getValue().getName()); controller.codeColumn.setCellValueFactory(param -> param.getValue().getCode()); controller.groupColumn.setCellValueFactory(param -> param.getValue().getGroup()); - controller.groupColumn.setCellFactory(param -> new ContractGroupTableCell(getContractService())); + controller.groupColumn.setCellFactory(param -> new ContractGroupTableCell<>(getContractGroupService())); controller.typeColumn.setCellValueFactory(param -> param.getValue().getType()); - controller.typeColumn.setCellFactory(param -> new ContractTypeTableCell(getContractService())); + controller.typeColumn.setCellFactory(param -> new ContractTypeTableCell<>(getContractTypeService())); controller.kindColumn.setCellValueFactory(param -> param.getValue().getKind()); - controller.kindColumn.setCellFactory(param -> new ContractKindTableCell(getContractService())); + controller.kindColumn.setCellFactory(param -> new ContractKindTableCell<>(getContractKindService())); controller.parentCodeColumn.setCellValueFactory(param -> param.getValue().getParentCode()); @@ -98,7 +124,7 @@ public class ContractManagerSkin controller.employeeColumn.setCellValueFactory(param -> param.getValue().getEmployee()); controller.employeeColumn - .setCellFactory(TextFieldTableCell.forTableColumn(getBean(EmployeeStringConverter.class))); + .setCellFactory(param -> new EmployeeTableCell<>(controller.getEmployeeService())); controller.createdColumn.setCellValueFactory(param -> param.getValue().getCreated()); DateTimeFormatter formatter = DateTimeFormatter.ofPattern(MyDateTimeUtils.DEFAULT_DATETIME_FORMAT_PATTERN); diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinBase.java index e6774fc..8179d2e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinBase.java @@ -25,7 +25,7 @@ import com.ecep.contract.manager.ds.vendor.controller.CompanyVendorWindowControl import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; import com.ecep.contract.manager.ds.vendor.service.VendorGroupService; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.MyDateTimeUtils; import com.ecep.contract.manager.util.UITools; import javafx.beans.binding.Bindings; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinFiles.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinFiles.java index 9a97db1..92e5023 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinFiles.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinFiles.java @@ -13,9 +13,9 @@ import com.ecep.contract.manager.ds.contract.service.ContractFileService; import com.ecep.contract.manager.ds.contract.tasker.ContractFilesRebuildTasker; import com.ecep.contract.manager.ds.contract.tasker.CustomerContractCostFormUpdateTask; import com.ecep.contract.manager.ds.contract.vo.ContractFileViewModel; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.ui.util.LocalDateFieldTableCell; import com.ecep.contract.manager.util.DesktopUtils; import com.ecep.contract.manager.util.MyDateTimeUtils; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinItems.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinItems.java index f9f1d83..16c36ce 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinItems.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinItems.java @@ -9,8 +9,7 @@ import com.ecep.contract.manager.ds.contract.service.ContractService; import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel; import com.ecep.contract.manager.ds.contract.vo.ContractItemViewModel; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.ViewModelService; +import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.application.Platform; import javafx.beans.property.SimpleListProperty; import javafx.collections.ObservableList; @@ -22,7 +21,6 @@ import lombok.Setter; import org.hibernate.Hibernate; import org.springframework.util.StringUtils; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.function.Function; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinItemsV2.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinItemsV2.java index 5ff3030..05dc3d4 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinItemsV2.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinItemsV2.java @@ -1,23 +1,21 @@ package com.ecep.contract.manager.ds.contract.controller; -import com.ecep.contract.manager.SpringApp; import com.ecep.contract.manager.ds.contract.model.Contract; import com.ecep.contract.manager.ds.contract.model.ContractItem; import com.ecep.contract.manager.ds.contract.service.ContractItemService; import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel; import com.ecep.contract.manager.ds.contract.vo.ContractItemViewModel; -import com.ecep.contract.manager.ds.contract.vo.ProjectCostItemViewModel; import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.other.controller.employee.EmployeeTableCell; +import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; import com.ecep.contract.manager.ds.other.controller.inventory.InventoryWindowController; import com.ecep.contract.manager.ds.other.model.Employee; import com.ecep.contract.manager.ds.other.model.Inventory; import com.ecep.contract.manager.ds.other.service.InventoryService; import com.ecep.contract.manager.ds.other.vo.InventoryViewModel; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +import com.ecep.contract.manager.ui.tab.TabSkin; +import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import javafx.application.Platform; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinPayPlan.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinPayPlan.java index 73e3ba2..b240de0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinPayPlan.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinPayPlan.java @@ -5,7 +5,7 @@ import com.ecep.contract.manager.ds.contract.service.ContractPayPlanService; import com.ecep.contract.manager.ds.contract.vo.ContractPayPlanViewModel; import com.ecep.contract.manager.ui.FxmlPath; import com.ecep.contract.manager.ui.ViewModelService; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import javafx.scene.control.ContextMenu; import javafx.scene.control.Tab; import javafx.scene.control.TableColumn; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinPurchaseOrders.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinPurchaseOrders.java index 59f61b0..f48f7ea 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinPurchaseOrders.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinPurchaseOrders.java @@ -7,10 +7,9 @@ import com.ecep.contract.manager.ds.contract.service.PurchaseOrdersService; import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel; import com.ecep.contract.manager.ds.other.EmployeeStringConverter; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +import com.ecep.contract.manager.ui.tab.TabSkin; +import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import javafx.scene.control.*; -import javafx.scene.input.KeyCode; import java.time.LocalDateTime; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinSaleOrders.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinSaleOrders.java index 33646d6..09c04ca 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinSaleOrders.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinSaleOrders.java @@ -8,7 +8,7 @@ import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel; import com.ecep.contract.manager.ds.other.EmployeeStringConverter; import com.ecep.contract.manager.ds.other.model.Employee; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.ui.util.LocalDateFieldTableCell; import javafx.scene.control.*; import javafx.scene.control.cell.TextFieldTableCell; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinSubContract.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinSubContract.java index 1d9c647..7a9cde2 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinSubContract.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinSubContract.java @@ -5,17 +5,14 @@ import com.ecep.contract.manager.ds.contract.model.Contract; import com.ecep.contract.manager.ds.contract.service.ContractService; import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.ViewModelService; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.SpecificationUtils; import javafx.application.Platform; import javafx.scene.control.*; import javafx.scene.input.KeyCode; import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; import java.time.LocalDate; -import java.util.List; /** * 子合同 diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinVendorBid.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinVendorBid.java index 5267cfe..5fda8a7 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinVendorBid.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTabSkinVendorBid.java @@ -11,17 +11,15 @@ import com.ecep.contract.manager.ds.contract.model.ContractFile; import com.ecep.contract.manager.ds.contract.service.ContractBidVendorService; import com.ecep.contract.manager.ds.contract.service.ContractFileService; import com.ecep.contract.manager.ds.contract.vo.ContractBidVendorViewModel; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.ViewModelService; +import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.event.ActionEvent; import javafx.scene.control.*; import javafx.util.StringConverter; import lombok.Setter; import org.controlsfx.control.textfield.TextFields; import org.hibernate.Hibernate; -import org.springframework.data.jpa.domain.Specification; import java.util.List; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTypeTableCell.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTypeTableCell.java deleted file mode 100644 index 42cade9..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractTypeTableCell.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.ecep.contract.manager.ds.contract.controller; - -import com.ecep.contract.manager.ds.contract.model.ContractType; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; -import javafx.scene.control.TableCell; -import org.hibernate.Hibernate; - -import static com.ecep.contract.manager.SpringApp.getBean; - -public class ContractTypeTableCell extends TableCell { - private ContractService contractService; - - public ContractTypeTableCell() { - } - - public ContractTypeTableCell(ContractService contractService) { - this.contractService = contractService; - } - - ContractService getContractService() { - if (contractService == null) { - contractService = getBean(ContractService.class); - } - return contractService; - } - - @Override - protected void updateItem(ContractType item, boolean empty) { - super.updateItem(item, empty); - if (empty || item == null) { - setText(""); - return; - } - if (!Hibernate.isInitialized(item)) { - item = getContractService().findTypeById(item.getId()); - } - setText(item.getName()); - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractVerifyWindowController.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractVerifyWindowController.java index 4061339..ac0af65 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractVerifyWindowController.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/ContractVerifyWindowController.java @@ -13,6 +13,7 @@ import com.ecep.contract.manager.ds.vendor.service.VendorGroupService; import com.ecep.contract.manager.ui.FxmlPath; import com.ecep.contract.manager.ui.Message; import com.ecep.contract.manager.ui.MessageHolder; +import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; import com.ecep.contract.manager.util.UITools; import javafx.application.Platform; import javafx.beans.property.SimpleListProperty; @@ -104,24 +105,7 @@ public class ContractVerifyWindowController extends BaseController { } - class EmployeeTableCell extends TableCell { - @Override - protected void updateItem(Employee item, boolean empty) { - super.updateItem(item, empty); - if (empty || item == null) { - setText(null); - return; - } - if (!Hibernate.isInitialized(item)) { - item = employeeService.findById(item.getId()); - Model model = getTableRow().getItem(); - if (model != null) { - model.getEmployee().set(item); - } - } - setText(item.toPrettyString()); - } - } + static class StateTableCell extends TableCell> { Label message2Label(MessageExt message) { @@ -238,7 +222,7 @@ public class ContractVerifyWindowController extends BaseController { viewTable_codeColumn.setCellValueFactory(param -> param.getValue().getCode()); viewTable_nameColumn.setCellValueFactory(param -> param.getValue().getName()); viewTable_employeeColumn.setCellValueFactory(param -> param.getValue().getEmployee()); - viewTable_employeeColumn.setCellFactory(param -> new EmployeeTableCell()); + viewTable_employeeColumn.setCellFactory(param -> new EmployeeTableCell<>(getEmployeeService())); viewTable_setupDateColumn.setCellValueFactory(param -> param.getValue().getSetupDate()); // viewTable_stateColumn.setCellValueFactory(param -> param.getValue().getMessages().map(messages -> { // return messages.stream().map(Message::getMessage).collect(Collectors.joining(", ")); diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/VendorBidTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/VendorBidTabSkinBase.java index c363bde..c22ff00 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/VendorBidTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/VendorBidTabSkinBase.java @@ -14,8 +14,8 @@ import com.ecep.contract.manager.ds.contract.vo.ContractBidVendorViewModel; import com.ecep.contract.manager.ds.contract.vo.ContractFileViewModel; import com.ecep.contract.manager.ds.other.EntityStringConverter; import com.ecep.contract.manager.ds.other.vo.BaseViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.MyDateTimeUtils; import com.ecep.contract.manager.util.UITools; import javafx.beans.binding.Bindings; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/ContractTableCell.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/ContractTableCell.java deleted file mode 100644 index e5b1be4..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/ContractTableCell.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.ecep.contract.manager.ds.contract.controller.purchase_bill; - -import com.ecep.contract.manager.ds.contract.model.Contract; -import com.ecep.contract.manager.ds.contract.service.ContractService; -import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherItemViewModel; -import javafx.scene.control.TableCell; -import org.hibernate.Hibernate; - -class ContractTableCell extends TableCell { - private final PurchaseBillVoucherTabSkinItems purchaseBillVoucherTabSkinItems; - ContractService contractService; - - public ContractTableCell(PurchaseBillVoucherTabSkinItems purchaseBillVoucherTabSkinItems) { - this.purchaseBillVoucherTabSkinItems = purchaseBillVoucherTabSkinItems; - } - - ContractService getContractService() { - if (contractService == null) { - contractService = purchaseBillVoucherTabSkinItems.getBean(ContractService.class); - } - return contractService; - } - - @Override - protected void updateItem(Contract item, boolean empty) { - super.updateItem(item, empty); - if (item == null || empty) { - setText(null); - setGraphic(null); - } else { - if (!Hibernate.isInitialized(item)) { - item = getContractService().findById(item.getId()); - getTableRow().getItem().getContract().set(item); - } - setText(item.getCode()); - } - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/PurchaseBillVoucherTabSkinItems.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/PurchaseBillVoucherTabSkinItems.java index 06d23f5..c4fcf89 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/PurchaseBillVoucherTabSkinItems.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/PurchaseBillVoucherTabSkinItems.java @@ -7,14 +7,20 @@ import com.ecep.contract.manager.ds.contract.model.Contract; import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucher; import com.ecep.contract.manager.ds.contract.model.PurchaseBillVoucherItem; import com.ecep.contract.manager.ds.contract.model.PurchaseOrderItem; +import com.ecep.contract.manager.ds.contract.service.ContractService; import com.ecep.contract.manager.ds.contract.service.PurchaseBillVoucherItemService; +import com.ecep.contract.manager.ds.contract.service.PurchaseOrderItemService; import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherItemViewModel; import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherViewModel; -import com.ecep.contract.manager.ds.other.controller.InventoryTableCell; import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ds.other.service.InventoryService; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.cell.ContractTableCell; +import com.ecep.contract.manager.ui.table.cell.InventoryTableCell; +import com.ecep.contract.manager.ui.table.cell.InvoiceTableCell; +import com.ecep.contract.manager.ui.table.cell.PurchaseOrderItemTableCell; import com.ecep.contract.manager.util.SpecificationUtils; import javafx.geometry.Pos; import javafx.scene.control.Tab; @@ -22,7 +28,6 @@ import javafx.scene.control.TableCell; import javafx.scene.control.TableColumn; import javafx.util.Callback; import lombok.Setter; -import org.hibernate.Hibernate; import org.springframework.data.jpa.domain.Specification; @FxmlPath("/ui/contract/purchase-bill-voucher-tab-item.fxml") @@ -44,6 +49,14 @@ public class PurchaseBillVoucherTabSkinItems @Setter private PurchaseBillVoucherItemService service; + @Setter + private ContractService contractService; + @Setter + private InventoryService inventoryService; + @Setter + private InvoiceService invoiceService; + @Setter + private PurchaseOrderItemService purchaseOrderItemService; public PurchaseBillVoucherTabSkinItems(PurchaseBillVoucherWindowController controller) { super(controller); @@ -57,6 +70,34 @@ public class PurchaseBillVoucherTabSkinItems return service; } + ContractService getContractService() { + if (contractService == null) { + contractService = SpringApp.getBean(ContractService.class); + } + return contractService; + } + + InventoryService getInventoryService() { + if (inventoryService == null) { + inventoryService = SpringApp.getBean(InventoryService.class); + } + return inventoryService; + } + + InvoiceService getInvoiceService() { + if (invoiceService == null) { + invoiceService = SpringApp.getBean(InvoiceService.class); + } + return invoiceService; + } + + PurchaseOrderItemService getPurchaseOrderItemService() { + if (purchaseOrderItemService == null) { + purchaseOrderItemService = SpringApp.getBean(PurchaseOrderItemService.class); + } + return purchaseOrderItemService; + } + @Override public Specification getSpecification(PurchaseBillVoucher parent) { return SpecificationUtils.and(getSpecification(), (root, query, builder) -> { @@ -74,13 +115,13 @@ public class PurchaseBillVoucherTabSkinItems idColumn.setCellValueFactory(param -> param.getValue().getId()); refIdColumn.setCellValueFactory(param -> param.getValue().getRefId()); inventoryColumn.setCellValueFactory(param -> param.getValue().getInventory()); - inventoryColumn.setCellFactory(col -> new InventoryTableCell<>()); + inventoryColumn.setCellFactory(col -> new InventoryTableCell<>(getInventoryService())); invoiceColumn.setCellValueFactory(param -> param.getValue().getInvoice()); - invoiceColumn.setCellFactory(col -> new InvoiceTableCell()); + invoiceColumn.setCellFactory(col -> new InvoiceTableCell<>(getInvoiceService())); contractColumn.setCellValueFactory(param -> param.getValue().getContract()); - contractColumn.setCellFactory(col -> new ContractTableCell(this)); + contractColumn.setCellFactory(col -> new ContractTableCell<>(getContractService())); orderItemColumn.setCellValueFactory(param -> param.getValue().getOrderItem()); - orderItemColumn.setCellFactory(col -> new PurchaseOrderItemTableCell(this)); + orderItemColumn.setCellFactory(col -> new PurchaseOrderItemTableCell<>(getPurchaseOrderItemService())); NumberCellFactory v1 = new NumberCellFactory("%,.1f", null); NumberCellFactory v2 = new NumberCellFactory("%,.2f", null); @@ -96,32 +137,6 @@ public class PurchaseBillVoucherTabSkinItems super.initializeTab(); } - private static class InvoiceTableCell extends TableCell { - private InvoiceService invoiceService; - - InvoiceService getInvoiceService() { - if (invoiceService == null) { - invoiceService = SpringApp.getBean(InvoiceService.class); - } - return invoiceService; - } - - @Override - protected void updateItem(Invoice item, boolean empty) { - super.updateItem(item, empty); - if (item == null || empty) { - setText(null); - setGraphic(null); - } else { - if (!Hibernate.isInitialized(item)) { - item = getInvoiceService().findById(item.getId()); - getTableRow().getItem().getInvoice().set(item); - } - setText(item.getCode()); - } - } - } - static class NumberCellFactory implements Callback, TableCell> { private final String format; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/PurchaseOrderItemTableCell.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/PurchaseOrderItemTableCell.java deleted file mode 100644 index f767284..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_bill/PurchaseOrderItemTableCell.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.ecep.contract.manager.ds.contract.controller.purchase_bill; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.model.PurchaseOrderItem; -import com.ecep.contract.manager.ds.contract.service.PurchaseOrderItemService; -import com.ecep.contract.manager.ds.contract.service.PurchaseOrdersService; -import com.ecep.contract.manager.ds.contract.vo.PurchaseBillVoucherItemViewModel; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.service.InventoryCatalogService; -import com.ecep.contract.manager.ds.other.service.InventoryService; -import javafx.scene.control.TableCell; -import org.hibernate.Hibernate; - -class PurchaseOrderItemTableCell extends TableCell { - private final PurchaseBillVoucherTabSkinItems purchaseBillVoucherTabSkinItems; - PurchaseOrdersService service; - PurchaseOrderItemService itemService; - private InventoryService inventoryService; - private InventoryCatalogService inventoryCatalogService; - - public PurchaseOrderItemTableCell(PurchaseBillVoucherTabSkinItems purchaseBillVoucherTabSkinItems) { - this.purchaseBillVoucherTabSkinItems = purchaseBillVoucherTabSkinItems; - } - - InventoryService getInventoryService() { - if (inventoryService == null) { - inventoryService = SpringApp.getBean(InventoryService.class); - } - return inventoryService; - } - - InventoryCatalogService getInventoryCatalogService() { - if (inventoryCatalogService == null) { - inventoryCatalogService = SpringApp.getBean(InventoryCatalogService.class); - } - return inventoryCatalogService; - } - - PurchaseOrdersService getPurchaseOrdersService() { - if (service == null) - service = purchaseBillVoucherTabSkinItems.getBean(PurchaseOrdersService.class); - return service; - } - - PurchaseOrderItemService getPurchaseOrderItemService() { - if (itemService == null) - itemService = purchaseBillVoucherTabSkinItems.getBean(PurchaseOrderItemService.class); - return itemService; - } - - @Override - protected void updateItem(PurchaseOrderItem item, boolean empty) { - super.updateItem(item, empty); - if (item == null || empty) { - setText(null); - setGraphic(null); - } else { - if (!Hibernate.isInitialized(item)) { - item = getPurchaseOrderItemService().findById(item.getId()); - getTableRow().getItem().getOrderItem().set(item); - } - - Inventory inventory = item.getInventory(); - if (!Hibernate.isInitialized(inventory)) { - inventory = getInventoryService().findById(inventory.getId()); - item.setInventory(inventory); - } - setText(inventory.toPrettyString() + " x " + item.getQuantity()); - } - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinBase.java index 8693d56..352516c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinBase.java @@ -7,8 +7,8 @@ import com.ecep.contract.manager.ds.contract.service.ContractFileService; import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel; import com.ecep.contract.manager.ds.other.EmployeeStringConverter; import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.MyDateTimeUtils; import com.ecep.contract.manager.util.UITools; import javafx.beans.property.SimpleObjectProperty; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinBillVoucher.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinBillVoucher.java index 67f01c3..fa4d646 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinBillVoucher.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinBillVoucher.java @@ -14,10 +14,10 @@ import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel; import com.ecep.contract.manager.ds.other.EmployeeStringConverter; import com.ecep.contract.manager.ds.other.EntityStringConverter; import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +import com.ecep.contract.manager.ui.tab.TabSkin; +import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import com.ecep.contract.manager.util.SpecificationUtils; import jakarta.persistence.criteria.Join; import jakarta.persistence.criteria.JoinType; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinItems.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinItems.java index f23c925..e0f3bfc 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinItems.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/purchase_order/PurchaseOrderTabSkinItems.java @@ -11,12 +11,12 @@ import com.ecep.contract.manager.ds.contract.service.PurchaseOrdersService; import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel; import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderItemViewModel; import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderViewModel; -import com.ecep.contract.manager.ds.other.controller.InventoryTableCell; +import com.ecep.contract.manager.ui.table.cell.InventoryTableCell; import com.ecep.contract.manager.ds.other.model.Inventory; import com.ecep.contract.manager.ds.other.service.InventoryService; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.SpecificationUtils; import javafx.application.Platform; import javafx.collections.ObservableList; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinBase.java index 973efd3..9643cd5 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinBase.java @@ -7,8 +7,8 @@ import com.ecep.contract.manager.ds.contract.service.ContractFileService; import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel; import com.ecep.contract.manager.ds.other.EmployeeStringConverter; import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.MyDateTimeUtils; import com.ecep.contract.manager.util.UITools; import javafx.beans.property.SimpleObjectProperty; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinBillVoucher.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinBillVoucher.java index 661a86d..6228227 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinBillVoucher.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinBillVoucher.java @@ -13,9 +13,9 @@ import com.ecep.contract.manager.ds.contract.vo.SalesBillVoucherViewModel; import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel; import com.ecep.contract.manager.ds.other.EmployeeStringConverter; import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.SpecificationUtils; import javafx.application.Platform; import javafx.collections.ObservableList; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinItems.java b/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinItems.java index 3d81d71..a2f6dc6 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinItems.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/controller/sale_order/SalesOrderTabSkinItems.java @@ -11,9 +11,9 @@ import com.ecep.contract.manager.ds.contract.service.SalesOrderItemService; import com.ecep.contract.manager.ds.contract.vo.ContractItemComposeViewModel; import com.ecep.contract.manager.ds.contract.vo.SalesOrderItemViewModel; import com.ecep.contract.manager.ds.contract.vo.SalesOrderViewModel; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.SpecificationUtils; import javafx.application.Platform; import javafx.collections.ObservableList; diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractGroupService.java b/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractGroupService.java index d88d784..6a68de5 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractGroupService.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractGroupService.java @@ -2,6 +2,7 @@ package com.ecep.contract.manager.ds.contract.service; import com.ecep.contract.manager.ds.contract.model.ContractGroup; import com.ecep.contract.manager.ds.contract.repository.ContractGroupRepository; +import com.ecep.contract.manager.ds.other.service.IEntityService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -10,6 +11,9 @@ import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Caching; import org.springframework.context.annotation.Lazy; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import java.util.List; @@ -20,30 +24,46 @@ import java.util.List; @Lazy @Service @CacheConfig(cacheNames = "contract-group") -public class ContractGroupService { +public class ContractGroupService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(ContractGroupService.class); @Lazy @Autowired - private ContractGroupRepository contractGroupRepository; + private ContractGroupRepository repository; @Cacheable(key = "#p0") public ContractGroup findById(Integer id) { - return contractGroupRepository.findById(id).orElse(null); + return repository.findById(id).orElse(null); + } + + @Override + public Page findAll(Specification spec, Pageable pageable) { + return repository.findAll(spec, pageable); + } + + @Override + public Specification getSpecification(String searchText) { + return (root, query, builder)->{ + return builder.or( + builder.like(root.get("code"), "%" + searchText + "%"), + builder.like(root.get("name"), "%" + searchText + "%"), + builder.like(root.get("title"), "%" + searchText + "%") + ); + }; } public ContractGroup findByName(String name) { - return contractGroupRepository.findByName(name).orElse(null); + return repository.findByName(name).orElse(null); } @Cacheable(key = "'code-'+#p0") public ContractGroup findByCode(String code) { - return contractGroupRepository.findByCode(code).orElse(null); + return repository.findByCode(code).orElse(null); } @Cacheable(key = "'groups'") public List findAll() { - return contractGroupRepository.findAll(); + return repository.findAll(); } @Caching(evict = { @@ -52,7 +72,7 @@ public class ContractGroupService { @CacheEvict(key = "'code-'+#p0.code"), }) public ContractGroup save(ContractGroup group) { - return contractGroupRepository.save(group); + return repository.save(group); } @Caching(evict = { @@ -60,7 +80,7 @@ public class ContractGroupService { @CacheEvict(key = "'groups'"), }) public void delete(Integer id) { - contractGroupRepository.deleteById(id); + repository.deleteById(id); } @Caching(evict = { @@ -69,7 +89,7 @@ public class ContractGroupService { @CacheEvict(key = "'code-'+#p0.code"), }) public void delete(ContractGroup group) { - contractGroupRepository.delete(group); + repository.delete(group); } public ContractGroup newContractGroup() { diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractKindService.java b/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractKindService.java index 8c48a19..9c6ea54 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractKindService.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractKindService.java @@ -2,6 +2,7 @@ package com.ecep.contract.manager.ds.contract.service; import com.ecep.contract.manager.ds.contract.model.ContractKind; import com.ecep.contract.manager.ds.contract.repository.ContractKindRepository; +import com.ecep.contract.manager.ds.other.service.IEntityService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -10,6 +11,9 @@ import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Caching; import org.springframework.context.annotation.Lazy; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import java.util.List; @@ -20,41 +24,62 @@ import java.util.List; @Lazy @Service @CacheConfig(cacheNames = "contract-kind") -public class ContractKindService { +public class ContractKindService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(ContractKindService.class); @Lazy @Autowired - private ContractKindRepository contractKindRepository; + private ContractKindRepository repository; @Cacheable(key = "'kind-'+#p0") public ContractKind findById(Integer id) { - return contractKindRepository.findById(id).orElse(null); + return repository.findById(id).orElse(null); + } + + @Override + public Page findAll(Specification spec, Pageable pageable) { + return repository.findAll(spec, pageable); + } + + @Override + public Specification getSpecification(String searchText) { + return (root, query, builder) -> { + return builder.or( + builder.like(root.get("code"), "%" + searchText + "%"), + builder.like(root.get("name"), "%" + searchText + "%"), + builder.like(root.get("title"), "%" + searchText + "%") + ); + }; + } + + @Override + public void delete(ContractKind entity) { + repository.delete(entity); } public ContractKind findByName(String name) { - return contractKindRepository.findByName(name).orElse(null); + return repository.findByName(name).orElse(null); } - @Cacheable(key = "'kind-code-'+#p0") + @Cacheable(key = "'code-'+#p0") public ContractKind findByCode(String code) { - return contractKindRepository.findByCode(code).orElse(null); + return repository.findByCode(code).orElse(null); } @Cacheable(key = "'kinds'") public List findAll() { - return contractKindRepository.findAll(); + return repository.findAll(); } @Caching( evict = { @CacheEvict(key = "'kinds'"), @CacheEvict(key = "'kind-'+#p0.id"), - @CacheEvict(key = "'kind-code-'+#p0.name"), + @CacheEvict(key = "'code-'+#p0.name"), } ) public ContractKind save(ContractKind kind) { - return contractKindRepository.save(kind); + return repository.save(kind); } @Caching( @@ -64,6 +89,6 @@ public class ContractKindService { } ) public void delete(Integer id) { - contractKindRepository.deleteById(id); + repository.deleteById(id); } } \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractTypeService.java b/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractTypeService.java index bc74c22..b10f486 100644 --- a/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractTypeService.java +++ b/src/main/java/com/ecep/contract/manager/ds/contract/service/ContractTypeService.java @@ -2,6 +2,7 @@ package com.ecep.contract.manager.ds.contract.service; import com.ecep.contract.manager.ds.contract.model.ContractType; import com.ecep.contract.manager.ds.contract.repository.ContractTypeRepository; +import com.ecep.contract.manager.ds.other.service.IEntityService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -10,6 +11,9 @@ import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Caching; import org.springframework.context.annotation.Lazy; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import java.util.List; @@ -20,55 +24,71 @@ import java.util.List; @Lazy @Service @CacheConfig(cacheNames = "contract-type") -public class ContractTypeService { +public class ContractTypeService implements IEntityService { private static final Logger logger = LoggerFactory.getLogger(ContractTypeService.class); @Lazy @Autowired - private ContractTypeRepository contractTypeRepository; + private ContractTypeRepository repository; @Cacheable(key = "#p0") public ContractType findById(Integer id) { - return contractTypeRepository.findById(id).orElse(null); + return repository.findById(id).orElse(null); + } + + @Override + public Page findAll(Specification spec, Pageable pageable) { + return repository.findAll(spec, pageable); } public ContractType findByName(String name) { - return contractTypeRepository.findByName(name).orElse(null); + return repository.findByName(name).orElse(null); } @Cacheable(key = "'code-'+#p0") public ContractType findByCode(String code) { - return contractTypeRepository.findByCode(code).orElse(null); + return repository.findByCode(code).orElse(null); } @Cacheable(key = "'types'") public List findAll() { - return contractTypeRepository.findAll(); + return repository.findAll(); } @Caching(evict = { - @CacheEvict(key = "#p0.id"), - @CacheEvict(key = "'code-'+#p0.code"), - @CacheEvict(key = "'types'"), + @CacheEvict(key = "#p0.id"), + @CacheEvict(key = "'code-'+#p0.code"), + @CacheEvict(key = "'types'"), }) public ContractType save(ContractType type) { - return contractTypeRepository.save(type); + return repository.save(type); } @Caching(evict = { - @CacheEvict(key = "#p0"), - @CacheEvict(key = "'types'"), + @CacheEvict(key = "#p0"), + @CacheEvict(key = "'types'"), }) public void delete(Integer id) { - contractTypeRepository.deleteById(id); + repository.deleteById(id); } @Caching(evict = { - @CacheEvict(key = "#p0.id"), - @CacheEvict(key = "'code-'+#p0.code"), - @CacheEvict(key = "'types'"), + @CacheEvict(key = "#p0.id"), + @CacheEvict(key = "'code-'+#p0.code"), + @CacheEvict(key = "'types'"), }) public void delete(ContractType type) { - contractTypeRepository.delete(type); + repository.delete(type); + } + + + @Override + public Specification getSpecification(String searchText) { + return (root, query, builder) -> { + return builder.or( + builder.like(root.get("code"), "%" + searchText + "%"), + builder.like(root.get("name"), "%" + searchText + "%") + ); + }; } } \ No newline at end of file diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/AbstCompanyCustomerTableTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/customer/controller/AbstCompanyCustomerTableTabSkin.java index 3ea9b0f..02b5012 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/AbstCompanyCustomerTableTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/customer/controller/AbstCompanyCustomerTableTabSkin.java @@ -5,10 +5,9 @@ import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel; import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; public abstract class AbstCompanyCustomerTableTabSkin> extends AbstEntityTableTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerManagerSkin.java index a7d6309..8eeca79 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerManagerSkin.java @@ -1,19 +1,14 @@ package com.ecep.contract.manager.ds.customer.controller; -import org.hibernate.Hibernate; - -import com.ecep.contract.manager.ds.company.controller.CompanyTableCell; -import com.ecep.contract.manager.ds.company.model.Company; +import com.ecep.contract.manager.ui.table.cell.CompanyTableCell; import com.ecep.contract.manager.ds.company.service.CompanyService; import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.ManagerSkin; import com.ecep.contract.manager.util.MyDateTimeUtils; import javafx.application.Platform; -import javafx.beans.binding.Bindings; import lombok.Setter; public class CompanyCustomerManagerSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerTabSkinBase.java index d055b4f..a7141a9 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/customer/controller/CompanyCustomerTabSkinBase.java @@ -11,8 +11,8 @@ import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerViewModel; import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.MyDateTimeUtils; import com.ecep.contract.manager.util.UITools; import javafx.beans.binding.Bindings; diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CustomerTabSkinEntity.java b/src/main/java/com/ecep/contract/manager/ds/customer/controller/CustomerTabSkinEntity.java index 3ddb76f..d05810d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CustomerTabSkinEntity.java +++ b/src/main/java/com/ecep/contract/manager/ds/customer/controller/CustomerTabSkinEntity.java @@ -9,7 +9,7 @@ import com.ecep.contract.manager.ds.customer.vo.CustomerEntityViewModel; import com.ecep.contract.manager.ds.other.EmployeeStringConverter; import com.ecep.contract.manager.ds.other.EntityStringConverter; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import com.ecep.contract.manager.util.SpecificationUtils; import javafx.scene.control.MenuItem; import javafx.scene.control.Tab; diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CustomerTabSkinFile.java b/src/main/java/com/ecep/contract/manager/ds/customer/controller/CustomerTabSkinFile.java index d2dbe52..3c0533d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CustomerTabSkinFile.java +++ b/src/main/java/com/ecep/contract/manager/ds/customer/controller/CustomerTabSkinFile.java @@ -12,7 +12,7 @@ import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; import com.ecep.contract.manager.ds.customer.vo.CompanyCustomerFileViewModel; import com.ecep.contract.manager.ds.other.model.BaseEnumEntity; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; import com.ecep.contract.manager.ui.Message; import com.ecep.contract.manager.util.DesktopUtils; diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CustomerTabSkinSatisfactionSurvey.java b/src/main/java/com/ecep/contract/manager/ds/customer/controller/CustomerTabSkinSatisfactionSurvey.java index 5d8d62c..7749c1e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/CustomerTabSkinSatisfactionSurvey.java +++ b/src/main/java/com/ecep/contract/manager/ds/customer/controller/CustomerTabSkinSatisfactionSurvey.java @@ -5,7 +5,8 @@ import com.ecep.contract.manager.ds.customer.model.CompanyCustomer; import com.ecep.contract.manager.ds.customer.model.CustomerCatalog; import com.ecep.contract.manager.ds.customer.vo.CustomerEntityViewModel; import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.other.controller.employee.EmployeeTableCell; +import com.ecep.contract.manager.ds.project.service.ProjectService; +import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; import com.ecep.contract.manager.ds.other.model.Employee; import com.ecep.contract.manager.ds.project.controller.satisfaction_survey.CustomerSatisfactionSurveyWindowController; import com.ecep.contract.manager.ds.project.model.CustomerSatisfactionSurvey; @@ -13,6 +14,7 @@ import com.ecep.contract.manager.ds.project.model.Project; import com.ecep.contract.manager.ds.project.service.CustomerSatisfactionSurveyService; import com.ecep.contract.manager.ds.project.vo.CustomerSatisfactionSurveyViewModel; import com.ecep.contract.manager.ui.FxmlPath; +import com.ecep.contract.manager.ui.table.cell.ProjectTableCell; import com.ecep.contract.manager.util.SpecificationUtils; import javafx.scene.control.MenuItem; import javafx.scene.control.Tab; @@ -39,7 +41,8 @@ public class CustomerTabSkinSatisfactionSurvey public MenuItem entityTable_menu_refresh; public MenuItem entityTable_menu_del; - +@Setter +private ProjectService projectService; @Setter private CustomerSatisfactionSurveyService satisfactionSurveyService; @@ -60,7 +63,7 @@ public class CustomerTabSkinSatisfactionSurvey bindNumberColumn(idColumn, CustomerSatisfactionSurveyViewModel::getId); bindColumn(codeColumn, CustomerSatisfactionSurveyViewModel::getCode); projectColumn.setCellValueFactory(param -> param.getValue().getProject()); - projectColumn.setCellFactory(cell -> new ProjectTableCell<>()); + projectColumn.setCellFactory(cell -> new ProjectTableCell<>(getProjectService())); bindLocalDateColumn(dateColumn, CustomerSatisfactionSurveyViewModel::getDate); bindNumberColumn(totalScoreColumn, CustomerSatisfactionSurveyViewModel::getTotalScore); applicantColumn.setCellValueFactory(param -> param.getValue().getApplicant()); @@ -86,6 +89,12 @@ public class CustomerTabSkinSatisfactionSurvey return satisfactionSurveyService; } + ProjectService getProjectService() { + if (projectService == null) { + projectService = getBean(ProjectService.class); + } + return projectService; + } @Override protected CustomerSatisfactionSurveyService getViewModelService() { diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/ProjectTableCell.java b/src/main/java/com/ecep/contract/manager/ds/customer/controller/ProjectTableCell.java deleted file mode 100644 index 58f17c1..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/ProjectTableCell.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.ecep.contract.manager.ds.customer.controller; - -import com.ecep.contract.manager.ds.project.model.Project; -import com.ecep.contract.manager.ds.project.service.ProjectService; -import org.hibernate.Hibernate; - -import static com.ecep.contract.manager.SpringApp.getBean; - -public class ProjectTableCell extends javafx.scene.control.TableCell { - private ProjectService projectService; - - public ProjectTableCell() { - - } - - public ProjectTableCell(ProjectService projectService) { - this.projectService = projectService; - } - - ProjectService getProjectService() { - if (projectService == null) { - projectService = getBean(ProjectService.class); - } - return projectService; - } - - @Override - protected void updateItem(Project item, boolean empty) { - super.updateItem(item, empty); - if (empty || item == null) { - setText(null); - return; - } - if (!Hibernate.isInitialized(item)) { - item = getProjectService().findById(item.getId()); - } - setText(item.toPrettyString()); - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerEvaluationFormFile.java b/src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerEvaluationFormFile.java index 8c213f5..0fecc02 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerEvaluationFormFile.java +++ b/src/main/java/com/ecep/contract/manager/ds/customer/model/CompanyCustomerEvaluationFormFile.java @@ -1,5 +1,6 @@ package com.ecep.contract.manager.ds.customer.model; +import com.ecep.contract.manager.ds.other.model.IdentityEntity; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; @@ -17,7 +18,7 @@ import lombok.ToString; @Setter @ToString @Table(name = "COMPANY_CUSTOMER_EVALUATION_FORM_FILE") -public class CompanyCustomerEvaluationFormFile implements com.ecep.contract.manager.ds.other.model.Entity { +public class CompanyCustomerEvaluationFormFile implements IdentityEntity, com.ecep.contract.manager.ds.other.model.Entity { @Id @Column(name = "ID", nullable = false) private Integer id; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/InventoryTableCell.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/InventoryTableCell.java deleted file mode 100644 index 8610646..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/InventoryTableCell.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.ecep.contract.manager.ds.other.controller; - -import com.ecep.contract.manager.SpringApp; -import com.ecep.contract.manager.ds.contract.vo.PurchaseOrderItemViewModel; -import com.ecep.contract.manager.ds.other.model.Inventory; -import com.ecep.contract.manager.ds.other.model.InventoryCatalog; -import com.ecep.contract.manager.ds.other.service.InventoryCatalogService; -import com.ecep.contract.manager.ds.other.service.InventoryService; -import javafx.scene.control.TableCell; -import org.hibernate.Hibernate; - -public class InventoryTableCell extends TableCell { - private InventoryService inventoryService; - private InventoryCatalogService inventoryCatalogService; - - InventoryService getInventoryService() { - if (inventoryService == null) { - inventoryService = SpringApp.getBean(InventoryService.class); - } - return inventoryService; - } - - InventoryCatalogService getInventoryCatalogService() { - if (inventoryCatalogService == null) { - inventoryCatalogService = SpringApp.getBean(InventoryCatalogService.class); - } - return inventoryCatalogService; - } - - @Override - protected void updateItem(Inventory item, boolean empty) { - super.updateItem(item, empty); - if (empty || item == null) { - setText(""); - return; - } - if (!Hibernate.isInitialized(item)) { - item = getInventoryService().findById(item.getId()); - } - InventoryCatalog catalog = item.getCatalog(); - if (catalog != null && !Hibernate.isInitialized(catalog)) { - catalog = getInventoryCatalogService().findById(catalog.getId()); - item.setCatalog(catalog); - } - setText((catalog != null ? (catalog.getName() + " ") : "") + item.toPrettyString()); - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/bank/BankManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/bank/BankManagerSkin.java index 7658b5a..074a561 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/bank/BankManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/bank/BankManagerSkin.java @@ -3,7 +3,7 @@ package com.ecep.contract.manager.ds.other.controller.bank; import com.ecep.contract.manager.ds.other.model.Bank; import com.ecep.contract.manager.ds.other.vo.BankViewModel; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.ManagerSkin; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.TextFieldTableCell; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/department/DepartmentManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/department/DepartmentManagerSkin.java index edef64c..01b3e34 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/department/DepartmentManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/department/DepartmentManagerSkin.java @@ -5,7 +5,7 @@ import com.ecep.contract.manager.ds.other.model.Department; import com.ecep.contract.manager.ds.other.model.Employee; import com.ecep.contract.manager.ds.other.vo.DepartmentViewModel; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.ManagerSkin; import javafx.collections.FXCollections; import javafx.event.ActionEvent; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/AbstEmployeeBasedTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/AbstEmployeeBasedTabSkin.java index bf52aac..9e04eb1 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/AbstEmployeeBasedTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/AbstEmployeeBasedTabSkin.java @@ -5,8 +5,8 @@ import com.ecep.contract.manager.ds.other.service.EmployeeRoleService; import com.ecep.contract.manager.ds.other.service.EmployeeService; import com.ecep.contract.manager.ds.other.service.PermissionService; import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import lombok.Setter; public abstract class AbstEmployeeBasedTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/AbstEmployeeTableTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/AbstEmployeeTableTabSkin.java index d44ef58..c7fd430 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/AbstEmployeeTableTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/AbstEmployeeTableTabSkin.java @@ -6,8 +6,8 @@ import com.ecep.contract.manager.ds.other.service.EmployeeService; import com.ecep.contract.manager.ds.other.vo.EmployeeBasedViewModel; import com.ecep.contract.manager.ds.other.vo.EmployeeViewModel; import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.SpecificationUtils; import org.springframework.data.jpa.domain.Specification; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinAuthBind.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinAuthBind.java index a488a75..a4aeb14 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinAuthBind.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinAuthBind.java @@ -4,8 +4,8 @@ import com.ecep.contract.manager.ds.other.model.Employee; import com.ecep.contract.manager.ds.other.model.EmployeeAuthBind; import com.ecep.contract.manager.ds.other.service.EmployeeAuthBindService; import com.ecep.contract.manager.ds.other.vo.EmployeeAuthBindViewModel; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; +import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; import javafx.application.Platform; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinBase.java index e72e0bf..774a9f3 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinBase.java @@ -3,7 +3,7 @@ package com.ecep.contract.manager.ds.other.controller.employee; import com.ecep.contract.manager.ds.other.EntityStringConverter; import com.ecep.contract.manager.ds.other.model.Department; import com.ecep.contract.manager.ds.other.service.DepartmentService; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.UITools; import javafx.scene.control.Tab; import javafx.util.converter.LocalDateStringConverter; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinLoginHistory.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinLoginHistory.java index 72196e4..21bc61a 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinLoginHistory.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinLoginHistory.java @@ -4,8 +4,8 @@ import com.ecep.contract.manager.ds.other.model.EmployeeLoginHistory; import com.ecep.contract.manager.ds.other.service.EmployeeLoginHistoryService; import com.ecep.contract.manager.ds.other.vo.EmployeeLoginHistoryViewModel; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +import com.ecep.contract.manager.ui.tab.TabSkin; +import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import javafx.application.Platform; import javafx.scene.control.Tab; import javafx.scene.control.TableColumn; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinRole.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinRole.java index 5787ca7..e73aef0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinRole.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTabSkinRole.java @@ -3,7 +3,7 @@ package com.ecep.contract.manager.ds.other.controller.employee; import com.ecep.contract.manager.Desktop; import com.ecep.contract.manager.ds.other.model.Employee; import com.ecep.contract.manager.ds.other.model.EmployeeRole; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; import javafx.collections.ListChangeListener; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTableCell.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTableCell.java deleted file mode 100644 index a8ba6c2..0000000 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/employee/EmployeeTableCell.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.ecep.contract.manager.ds.other.controller.employee; - -import com.ecep.contract.manager.ds.other.model.Employee; -import com.ecep.contract.manager.ds.other.service.EmployeeService; -import javafx.scene.control.TableCell; -import lombok.Setter; -import org.hibernate.Hibernate; - -import static com.ecep.contract.manager.SpringApp.getBean; - -@Setter -public class EmployeeTableCell extends TableCell { - private EmployeeService employeeService; - - public EmployeeTableCell() { - } - - public EmployeeTableCell(EmployeeService employeeService) { - this.employeeService = employeeService; - } - - EmployeeService getEmployeeService() { - if (employeeService == null) { - employeeService = getBean(EmployeeService.class); - } - return employeeService; - } - - @Override - protected void updateItem(Employee item, boolean empty) { - super.updateItem(item, empty); - if (empty || item == null) { - setText(null); - return; - } - if (!Hibernate.isInitialized(item)) { - item = getEmployeeService().findById(item.getId()); - } - setText(item.toPrettyString()); - } -} diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryManagerSkin.java index 42a7488..6f36f89 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryManagerSkin.java @@ -7,10 +7,10 @@ import com.ecep.contract.manager.ds.other.service.InventoryCatalogService; import com.ecep.contract.manager.ds.other.service.InventoryService; import com.ecep.contract.manager.ds.other.vo.InventoryViewModel; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.ManagerSkin; import com.ecep.contract.manager.ui.util.LocalDateFieldTableCell; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import javafx.beans.property.Property; import javafx.event.ActionEvent; import javafx.scene.control.TableColumn; @@ -18,11 +18,7 @@ import javafx.scene.control.cell.TextFieldTableCell; import javafx.util.converter.CurrencyStringConverter; import javafx.util.converter.NumberStringConverter; import lombok.Setter; -import org.springframework.data.domain.Page; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; -import java.util.List; import java.util.function.Function; public class InventoryManagerSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinBase.java index 58f2c03..1fe34ae 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinBase.java @@ -8,10 +8,10 @@ import com.ecep.contract.manager.ds.other.model.InventoryCatalog; import com.ecep.contract.manager.ds.other.service.InventoryCatalogService; import com.ecep.contract.manager.ds.other.service.InventoryService; import com.ecep.contract.manager.ds.other.vo.InventoryViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.MessageHolder; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.MyDateTimeUtils; import com.ecep.contract.manager.util.UITools; import javafx.beans.binding.Bindings; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinContracts.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinContracts.java index a1a3239..0840fef 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinContracts.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinContracts.java @@ -9,9 +9,9 @@ import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; import com.ecep.contract.manager.ds.other.model.Inventory; import com.ecep.contract.manager.ds.other.service.InventoryHistoryPriceService; import com.ecep.contract.manager.ds.other.vo.InventoryViewModel; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.SpecificationUtils; import jakarta.persistence.criteria.Root; import jakarta.persistence.criteria.Subquery; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinHistoryPrice.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinHistoryPrice.java index 2582e08..0779352 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinHistoryPrice.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/inventory/InventoryTabSkinHistoryPrice.java @@ -11,9 +11,9 @@ import com.ecep.contract.manager.ds.other.model.InventoryHistoryPrice; import com.ecep.contract.manager.ds.other.service.InventoryHistoryPriceService; import com.ecep.contract.manager.ds.other.vo.InventoryHistoryPriceViewModel; import com.ecep.contract.manager.ds.other.vo.InventoryViewModel; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.SpecificationUtils; import javafx.event.ActionEvent; import javafx.scene.control.*; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/AbstEmployeeRoleBasedTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/AbstEmployeeRoleBasedTabSkin.java index caedc3c..eea9c1b 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/AbstEmployeeRoleBasedTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/AbstEmployeeRoleBasedTabSkin.java @@ -5,7 +5,7 @@ import com.ecep.contract.manager.ds.other.service.EmployeeRoleService; import com.ecep.contract.manager.ds.other.service.FunctionService; import com.ecep.contract.manager.ds.other.service.PermissionService; import com.ecep.contract.manager.ds.other.vo.EmployeeRoleViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; public abstract class AbstEmployeeRoleBasedTabSkin extends AbstEntityBasedTabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleManagerSkin.java index 7dc2f7c..0a47e96 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleManagerSkin.java @@ -4,11 +4,10 @@ import com.ecep.contract.manager.ds.other.model.EmployeeRole; import com.ecep.contract.manager.ds.other.service.PermissionService; import com.ecep.contract.manager.ds.other.vo.EmployeeRoleViewModel; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.ManagerSkin; import javafx.scene.control.cell.CheckBoxTableCell; import lombok.Setter; -import org.springframework.data.jpa.domain.Specification; public class EmployeeRoleManagerSkin extends AbstEntityManagerSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleTabSkinBase.java index e2b08c9..b32afd0 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/EmployeeRoleTabSkinBase.java @@ -1,7 +1,7 @@ package com.ecep.contract.manager.ds.other.controller.permission; import com.ecep.contract.manager.Desktop; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.Tab; public class EmployeeRoleTabSkinBase extends AbstEmployeeRoleBasedTabSkin implements TabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionTabSkinBase.java index 4b791d3..c0f7ba4 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionTabSkinBase.java @@ -2,7 +2,7 @@ package com.ecep.contract.manager.ds.other.controller.permission; import com.ecep.contract.manager.ds.other.model.Function; import com.ecep.contract.manager.ds.other.vo.FunctionViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; import javafx.scene.control.Tab; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionTabSkinPermission.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionTabSkinPermission.java index 6b68bb2..d47ba7c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionTabSkinPermission.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/FunctionTabSkinPermission.java @@ -8,7 +8,7 @@ import com.ecep.contract.manager.ds.other.model.Permission; import com.ecep.contract.manager.ds.other.service.PermissionService; import com.ecep.contract.manager.ds.other.vo.FunctionViewModel; import com.ecep.contract.manager.ds.other.vo.PermissionViewModel; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; import com.ecep.contract.manager.util.SpecificationUtils; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/PermissionManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/PermissionManagerSkin.java index 856b099..a8e0fb3 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/PermissionManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/controller/permission/PermissionManagerSkin.java @@ -4,7 +4,7 @@ import com.ecep.contract.manager.ds.other.model.Permission; import com.ecep.contract.manager.ds.other.vo.FunctionViewModel; import com.ecep.contract.manager.ds.other.vo.PermissionViewModel; import com.ecep.contract.manager.ui.ManagerSkin; -import com.ecep.contract.manager.ui.TableTabSkin; +import com.ecep.contract.manager.ui.table.TableTabSkin; import com.ecep.contract.manager.util.UITools; import javafx.application.Platform; import javafx.beans.property.Property; @@ -15,7 +15,6 @@ import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; -import javafx.scene.control.cell.TextFieldTableCell; import lombok.Setter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/com/ecep/contract/manager/ds/other/service/IEntityService.java b/src/main/java/com/ecep/contract/manager/ds/other/service/IEntityService.java index ef7fdd0..f6e6599 100644 --- a/src/main/java/com/ecep/contract/manager/ds/other/service/IEntityService.java +++ b/src/main/java/com/ecep/contract/manager/ds/other/service/IEntityService.java @@ -1,4 +1,32 @@ package com.ecep.contract.manager.ds.other.service; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; + +import java.util.List; + public interface IEntityService { + T findById(Integer id); + + Page findAll(Specification spec, Pageable pageable); + + /** + * 根据搜索文本构建了一个特定的规格化查询,以实现对实体模糊搜索 + * + * @param searchText 要搜索的文本 + * @return 规格化查询 + */ + Specification getSpecification(String searchText); + + /** + * 根据搜索文本查询列表 + */ + default List search(String searchText) { + throw new UnsupportedOperationException(); + } + + void delete(T entity); + + T save(T entity); } diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/AbstProjectBasedTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/AbstProjectBasedTabSkin.java index 1da900c..667ec26 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/AbstProjectBasedTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/AbstProjectBasedTabSkin.java @@ -3,9 +3,8 @@ package com.ecep.contract.manager.ds.project.controller; import com.ecep.contract.manager.ds.project.model.Project; import com.ecep.contract.manager.ds.project.service.ProjectService; import com.ecep.contract.manager.ds.project.vo.ProjectViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; -import lombok.Setter; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; public abstract class AbstProjectBasedTabSkin extends AbstEntityBasedTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/AbstProjectTableTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/AbstProjectTableTabSkin.java index 05850de..30e0570 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/AbstProjectTableTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/AbstProjectTableTabSkin.java @@ -6,8 +6,8 @@ import com.ecep.contract.manager.ds.project.model.Project; import com.ecep.contract.manager.ds.project.service.ProjectService; import com.ecep.contract.manager.ds.project.vo.ProjectBasedViewModel; import com.ecep.contract.manager.ds.project.vo.ProjectViewModel; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.SpecificationUtils; import org.springframework.data.jpa.domain.Specification; diff --git a/src/main/java/com/ecep/contract/manager/ds/customer/controller/EvaluationFileTableCell.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/EvaluationFileTableCell.java similarity index 85% rename from src/main/java/com/ecep/contract/manager/ds/customer/controller/EvaluationFileTableCell.java rename to src/main/java/com/ecep/contract/manager/ds/project/controller/EvaluationFileTableCell.java index 5bc74b3..176cfd8 100644 --- a/src/main/java/com/ecep/contract/manager/ds/customer/controller/EvaluationFileTableCell.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/EvaluationFileTableCell.java @@ -1,19 +1,17 @@ -package com.ecep.contract.manager.ds.customer.controller; +package com.ecep.contract.manager.ds.project.controller; import com.ecep.contract.manager.SpringApp; import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; +import com.ecep.contract.manager.ds.project.vo.ProjectBidViewModel; import javafx.scene.control.TableCell; import org.hibernate.Hibernate; import org.springframework.util.StringUtils; import java.io.File; -/** - * 评估文件 TableCell - */ -public class EvaluationFileTableCell extends TableCell { +class EvaluationFileTableCell extends TableCell { private CompanyCustomerFileService fileService; public CompanyCustomerFileService getFileService() { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectManagerSkin.java index 8da3c16..b465f45 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectManagerSkin.java @@ -2,7 +2,7 @@ package com.ecep.contract.manager.ds.project.controller; import org.springframework.data.jpa.domain.Specification; -import com.ecep.contract.manager.ds.company.controller.CompanyTableCell; +import com.ecep.contract.manager.ui.table.cell.CompanyTableCell; import com.ecep.contract.manager.ds.company.model.Company; import com.ecep.contract.manager.ds.company.service.CompanyService; import com.ecep.contract.manager.ds.other.EntityStringConverter; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinBase.java index fc0ce66..e9559fd 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinBase.java @@ -7,7 +7,7 @@ import com.ecep.contract.manager.ds.other.service.EmployeeService; import com.ecep.contract.manager.ds.project.model.*; import com.ecep.contract.manager.ds.project.service.*; import com.ecep.contract.manager.ui.ComboBoxUtils; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.UITools; import javafx.beans.binding.Bindings; import javafx.beans.property.SimpleObjectProperty; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinBid.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinBid.java index ad924b6..95d0db9 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinBid.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinBid.java @@ -8,7 +8,7 @@ import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.controller.employee.EmployeeTableCell; +import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; import com.ecep.contract.manager.ds.other.model.Employee; import com.ecep.contract.manager.ds.project.controller.bid.ProjectBidWindowController; import com.ecep.contract.manager.ds.project.model.Project; @@ -16,8 +16,9 @@ import com.ecep.contract.manager.ds.project.model.ProjectBid; import com.ecep.contract.manager.ds.project.service.ProjectBidService; import com.ecep.contract.manager.ds.project.vo.ProjectBidViewModel; import com.ecep.contract.manager.ui.*; +import com.ecep.contract.manager.ui.tab.TabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import javafx.scene.control.*; -import javafx.scene.input.KeyCode; import javafx.util.converter.LocalDateStringConverter; import lombok.Setter; import org.hibernate.Hibernate; @@ -78,19 +79,6 @@ public class ProjectTabSkinBid return controller.bidTab; } - public CompletableFuture refresh() { - CompletableFuture future = new CompletableFuture<>(); - CompletableFuture.runAsync(() -> { - try { - loadTableDataSet(); - future.complete(null); - } catch (Exception e) { - future.completeExceptionally(e); - } - }); - return future; - } - @Override public void initializeTable() { super.initializeTable(); @@ -107,10 +95,10 @@ public class ProjectTabSkinBid // amountColumn.setCellFactory(TextFieldTableCell.forTableColumn(new CurrencyStringConverter(getLocale()))); applicantColumn.setCellValueFactory(param -> param.getValue().getApplicant()); - applicantColumn.setCellFactory(cell -> new EmployeeTableCell<>()); + applicantColumn.setCellFactory(cell -> new EmployeeTableCell<>(getEmployeeService())); bindLocalDateTimeColumn(applyTimeColumn, ProjectBidViewModel::getApplyTime); authorizerColumn.setCellValueFactory(param -> param.getValue().getAuthorizer()); - authorizerColumn.setCellFactory(cell -> new EmployeeTableCell<>()); + authorizerColumn.setCellFactory(cell -> new EmployeeTableCell<>(getEmployeeService())); bindLocalDateTimeColumn(authorizationTimeColumn, ProjectBidViewModel::getAuthorizationTime); bindColumn(descriptionColumn, ProjectBidViewModel::getDescription); @@ -205,35 +193,6 @@ public class ProjectTabSkinBid } - private static class EvaluationFileTableCell extends TableCell { - private CompanyCustomerFileService fileService; - - public CompanyCustomerFileService getFileService() { - if (fileService == null) { - fileService = SpringApp.getBean(CompanyCustomerFileService.class); - } - return fileService; - } - - @Override - protected void updateItem(CompanyCustomerEvaluationFormFile item, boolean empty) { - super.updateItem(item, empty); - if (empty || item == null) { - setText(""); - return; - } - if (!Hibernate.isInitialized(item)) { - item = getFileService().findCustomerEvaluationFormFileById(item.getId()); - } - CompanyCustomerFile customerFile = item.getCustomerFile(); - String path = customerFile.getFilePath(); - if (StringUtils.hasText(path)) { - File file = new File(path); - setText(file.getName()); - } - } - } - private static class LevelTableCell extends TableCell { @Override protected void updateItem(Number item, boolean empty) { diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinContract.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinContract.java index a838e40..64ed2a4 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinContract.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinContract.java @@ -5,7 +5,7 @@ import com.ecep.contract.manager.ds.contract.model.Contract; import com.ecep.contract.manager.ds.contract.service.ContractService; import com.ecep.contract.manager.ds.contract.vo.ContractViewModel; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.application.Platform; import javafx.scene.control.MenuItem; import javafx.scene.control.Tab; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCost.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCost.java index e111436..bbf8ada 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCost.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCost.java @@ -2,7 +2,7 @@ package com.ecep.contract.manager.ds.project.controller; import com.ecep.contract.manager.ds.contract.service.ContractItemService; import com.ecep.contract.manager.ds.contract.vo.ProjectCostItemViewModel; -import com.ecep.contract.manager.ds.other.controller.employee.EmployeeTableCell; +import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; import com.ecep.contract.manager.ds.other.model.Employee; import com.ecep.contract.manager.ds.project.controller.cost.ProjectCostWindowController; import com.ecep.contract.manager.ds.project.model.Project; @@ -11,15 +11,13 @@ import com.ecep.contract.manager.ds.project.model.ProjectCostItem; import com.ecep.contract.manager.ds.project.service.ProjectCostItemService; import com.ecep.contract.manager.ds.project.service.ProjectCostService; import com.ecep.contract.manager.ds.project.vo.ProjectCostViewModel; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +import com.ecep.contract.manager.ui.tab.TabSkin; +import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import javafx.application.Platform; import javafx.event.ActionEvent; import javafx.scene.control.*; import javafx.scene.control.cell.TextFieldTableCell; -import javafx.scene.input.KeyCode; import javafx.util.converter.CurrencyStringConverter; import javafx.util.converter.NumberStringConverter; import lombok.Setter; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCustomerInfo.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCustomerInfo.java index 918df73..af7e102 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCustomerInfo.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCustomerInfo.java @@ -15,7 +15,7 @@ import com.ecep.contract.manager.ds.other.EntityStringConverter; import com.ecep.contract.manager.ds.other.model.Bank; import com.ecep.contract.manager.ds.other.service.BankService; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.UITools; import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.StringProperty; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCustomerSatisfactionSurvey.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCustomerSatisfactionSurvey.java index 9a41759..d0b818f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCustomerSatisfactionSurvey.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinCustomerSatisfactionSurvey.java @@ -1,32 +1,24 @@ package com.ecep.contract.manager.ds.project.controller; -import com.ecep.contract.manager.SpringApp; import com.ecep.contract.manager.ds.company.CompanyStringConverter; import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; -import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.controller.employee.EmployeeTableCell; +import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; import com.ecep.contract.manager.ds.other.model.Employee; import com.ecep.contract.manager.ds.project.controller.satisfaction_survey.CustomerSatisfactionSurveyWindowController; import com.ecep.contract.manager.ds.project.model.CustomerSatisfactionSurvey; import com.ecep.contract.manager.ds.project.model.Project; import com.ecep.contract.manager.ds.project.service.CustomerSatisfactionSurveyService; import com.ecep.contract.manager.ds.project.vo.CustomerSatisfactionSurveyViewModel; -import com.ecep.contract.manager.ds.project.vo.ProjectBidViewModel; import com.ecep.contract.manager.ui.FxmlPath; import com.ecep.contract.manager.ui.RefreshableSkin; import javafx.scene.control.Tab; -import javafx.scene.control.TableCell; import javafx.scene.control.TableColumn; import javafx.util.converter.LocalDateStringConverter; import lombok.Setter; -import org.hibernate.Hibernate; -import org.springframework.util.StringUtils; -import java.io.File; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; @@ -75,18 +67,6 @@ public class ProjectTabSkinCustomerSatisfactionSurvey return controller.satisfactionTab; } - public CompletableFuture refresh() { - CompletableFuture future = new CompletableFuture<>(); - runAsync(() -> { - loadTableDataSet(); - future.complete(null); - }).exceptionally(ex -> { - future.completeExceptionally(ex); - return null; - }); - return future; - } - @Override public void initializeTable() { super.initializeTable(); @@ -172,33 +152,4 @@ public class ProjectTabSkinCustomerSatisfactionSurvey return customerFileService; } - private static class EvaluationFileTableCell - extends TableCell { - private CompanyCustomerFileService fileService; - - public CompanyCustomerFileService getFileService() { - if (fileService == null) { - fileService = SpringApp.getBean(CompanyCustomerFileService.class); - } - return fileService; - } - - @Override - protected void updateItem(CompanyCustomerEvaluationFormFile item, boolean empty) { - super.updateItem(item, empty); - if (empty || item == null) { - setText(""); - return; - } - if (!Hibernate.isInitialized(item)) { - item = getFileService().findCustomerEvaluationFormFileById(item.getId()); - } - CompanyCustomerFile customerFile = item.getCustomerFile(); - String path = customerFile.getFilePath(); - if (StringUtils.hasText(path)) { - File file = new File(path); - setText(file.getName()); - } - } - } } diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinQuotation.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinQuotation.java index 7e2c17f..842f7b6 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinQuotation.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/ProjectTabSkinQuotation.java @@ -2,26 +2,25 @@ package com.ecep.contract.manager.ds.project.controller; import com.ecep.contract.manager.ds.company.CompanyStringConverter; import com.ecep.contract.manager.ds.company.service.CompanyService; -import com.ecep.contract.manager.ds.customer.controller.EvaluationFileTableCell; +import com.ecep.contract.manager.ui.table.cell.EvaluationFileTableCell; import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; import com.ecep.contract.manager.ds.customer.service.CompanyCustomerService; import com.ecep.contract.manager.ds.other.EmployeeStringConverter; -import com.ecep.contract.manager.ds.other.controller.employee.EmployeeTableCell; +import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; import com.ecep.contract.manager.ds.other.model.Employee; import com.ecep.contract.manager.ds.project.controller.quotation.ProjectQuotationWindowController; import com.ecep.contract.manager.ds.project.model.Project; import com.ecep.contract.manager.ds.project.model.ProjectQuotation; import com.ecep.contract.manager.ds.project.service.ProjectQuotationService; import com.ecep.contract.manager.ds.project.vo.ProjectQuotationViewModel; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; import com.ecep.contract.manager.ui.RefreshableSkin; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +import com.ecep.contract.manager.ui.tab.TabSkin; +import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import javafx.scene.control.*; import javafx.scene.control.cell.TextFieldTableCell; -import javafx.scene.input.KeyCode; import javafx.util.converter.CurrencyStringConverter; import javafx.util.converter.LocalDateStringConverter; import lombok.Setter; @@ -80,19 +79,6 @@ public class ProjectTabSkinQuotation return controller.quotationApprovalTab; } - public CompletableFuture refresh() { - CompletableFuture future = new CompletableFuture<>(); - CompletableFuture.runAsync(() -> { - try { - loadTableDataSet(); - future.complete(null); - } catch (Exception e) { - future.completeExceptionally(e); - } - }); - return future; - } - @Override public void initializeTable() { super.initializeTable(); @@ -100,18 +86,18 @@ public class ProjectTabSkinQuotation levelColumn.setCellFactory(param -> new LevelTableCell()); standardPayWayColumn.setCellValueFactory(param -> param.getValue().getStandardPayWay().map(value -> value == null ? "" : (value ? "标准" : "非标准"))); evaluationFileColumn.setCellValueFactory(param -> param.getValue().getEvaluationFile()); - evaluationFileColumn.setCellFactory(param -> new EvaluationFileTableCell<>()); + evaluationFileColumn.setCellFactory(param -> new EvaluationFileTableCell<>(getCompanyCustomerFileService())); amountColumn.setCellValueFactory(param -> param.getValue().getAmount()); amountColumn.setCellFactory(TextFieldTableCell.forTableColumn(new CurrencyStringConverter(getLocale()))); applicantColumn.setCellValueFactory(param -> param.getValue().getApplicant()); - applicantColumn.setCellFactory(this::createEmployeeTableCell); + applicantColumn.setCellFactory(column1 -> new EmployeeTableCell<>()); applyTimeColumn.setCellValueFactory(param -> param.getValue().getApplyTime()); applyTimeColumn.setCellFactory(param -> new LocalDateTimeTableCell<>()); authorizerColumn.setCellValueFactory(param -> param.getValue().getAuthorizer()); - authorizerColumn.setCellFactory(this::createEmployeeTableCell); + authorizerColumn.setCellFactory(column -> new EmployeeTableCell<>()); authorizationTimeColumn.setCellValueFactory(param -> param.getValue().getAuthorizationTime()); authorizationTimeColumn.setCellFactory(param -> new LocalDateTimeTableCell<>()); @@ -120,12 +106,6 @@ public class ProjectTabSkinQuotation } - private TableCell createEmployeeTableCell(TableColumn column) { - EmployeeTableCell cell = new EmployeeTableCell<>(); - cell.setEmployeeService(getEmployeeService()); - return cell; - } - @Override protected ProjectQuotationViewModel createNewViewModel() { ProjectQuotationViewModel model = new ProjectQuotationViewModel(); diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/bid/ProjectBidTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/bid/ProjectBidTabSkinBase.java index 1d7da43..87cc895 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/bid/ProjectBidTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/bid/ProjectBidTabSkinBase.java @@ -26,8 +26,8 @@ import com.ecep.contract.manager.ds.project.service.ProjectCostService; import com.ecep.contract.manager.ds.project.service.ProjectQuotationService; import com.ecep.contract.manager.ds.project.service.ProjectService; import com.ecep.contract.manager.ds.project.vo.ProjectBidViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.DesktopUtils; import com.ecep.contract.manager.util.MyDateTimeUtils; import com.ecep.contract.manager.util.UITools; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostTabSkinBase.java index f0d6029..3ef5bd5 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostTabSkinBase.java @@ -10,8 +10,8 @@ import com.ecep.contract.manager.ds.project.model.Project; import com.ecep.contract.manager.ds.project.model.ProjectCost; import com.ecep.contract.manager.ds.project.service.ProjectService; import com.ecep.contract.manager.ds.project.vo.ProjectCostViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.DesktopUtils; import com.ecep.contract.manager.util.MyDateTimeUtils; import com.ecep.contract.manager.util.UITools; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostTabSkinItems.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostTabSkinItems.java index 7f8892a..8409c50 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostTabSkinItems.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/cost/ProjectCostTabSkinItems.java @@ -5,7 +5,7 @@ import com.ecep.contract.manager.ds.contract.service.ContractItemService; import com.ecep.contract.manager.ds.contract.service.ContractService; import com.ecep.contract.manager.ds.contract.vo.ProjectCostItemViewModel; import com.ecep.contract.manager.ds.other.EntityStringConverter; -import com.ecep.contract.manager.ds.other.controller.employee.EmployeeTableCell; +import com.ecep.contract.manager.ui.table.cell.EmployeeTableCell; import com.ecep.contract.manager.ds.other.controller.inventory.InventoryWindowController; import com.ecep.contract.manager.ds.other.model.Employee; import com.ecep.contract.manager.ds.other.model.Inventory; @@ -17,10 +17,10 @@ import com.ecep.contract.manager.ds.project.model.ProjectCostItem; import com.ecep.contract.manager.ds.project.service.ProjectCostItemService; import com.ecep.contract.manager.ds.project.service.ProjectCostService; import com.ecep.contract.manager.ds.project.vo.ProjectCostViewModel; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +import com.ecep.contract.manager.ui.tab.TabSkin; +import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import com.ecep.contract.manager.util.SpecificationUtils; import com.ecep.contract.manager.util.UITools; import javafx.application.Platform; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/industry/ProjectIndustryManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/industry/ProjectIndustryManagerSkin.java index 97b6a7c..5fba89f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/industry/ProjectIndustryManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/industry/ProjectIndustryManagerSkin.java @@ -1,22 +1,14 @@ package com.ecep.contract.manager.ds.project.controller.industry; import com.ecep.contract.manager.ds.project.model.ProjectIndustry; -import com.ecep.contract.manager.ds.project.service.ProjectIndustryService; import com.ecep.contract.manager.ds.project.service.ProjectService; import com.ecep.contract.manager.ds.project.vo.ProjectIndustryViewModel; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.ManagerSkin; -import com.ecep.contract.manager.util.TableViewUtils; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.TextFieldTableCell; import lombok.Setter; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Sort; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; - -import java.util.List; public class ProjectIndustryManagerSkin extends AbstEntityManagerSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/product_type/ProductTypeManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/product_type/ProductTypeManagerSkin.java index 1ca1484..a8d8ab9 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/product_type/ProductTypeManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/product_type/ProductTypeManagerSkin.java @@ -3,7 +3,7 @@ package com.ecep.contract.manager.ds.project.controller.product_type; import com.ecep.contract.manager.ds.project.model.ProductType; import com.ecep.contract.manager.ds.project.vo.ProductTypeViewModel; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.ManagerSkin; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.TextFieldTableCell; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/project_type/ProjectTypeManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/project_type/ProjectTypeManagerSkin.java index e2699af..5d18100 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/project_type/ProjectTypeManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/project_type/ProjectTypeManagerSkin.java @@ -5,18 +5,11 @@ import com.ecep.contract.manager.ds.project.service.ProjectService; import com.ecep.contract.manager.ds.project.service.ProjectTypeService; import com.ecep.contract.manager.ds.project.vo.ProjectTypeViewModel; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.ManagerSkin; -import com.ecep.contract.manager.util.TableViewUtils; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.TextFieldTableCell; import lombok.Setter; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Sort; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.util.StringUtils; - -import java.util.List; public class ProjectTypeManagerSkin extends AbstEntityManagerSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/quotation/ProjectQuotationTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/quotation/ProjectQuotationTabSkinBase.java index 1c62d7d..3b906c8 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/quotation/ProjectQuotationTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/quotation/ProjectQuotationTabSkinBase.java @@ -23,8 +23,8 @@ import com.ecep.contract.manager.ds.project.model.ProjectQuotation; import com.ecep.contract.manager.ds.project.service.ProjectQuotationService; import com.ecep.contract.manager.ds.project.service.ProjectService; import com.ecep.contract.manager.ds.project.vo.ProjectQuotationViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.DesktopUtils; import com.ecep.contract.manager.util.MyDateTimeUtils; import com.ecep.contract.manager.util.UITools; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/AbstProjectSaleTypeBasedTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/AbstProjectSaleTypeBasedTabSkin.java index 4c1e102..723835c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/AbstProjectSaleTypeBasedTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/AbstProjectSaleTypeBasedTabSkin.java @@ -3,8 +3,8 @@ package com.ecep.contract.manager.ds.project.controller.sale_type; import com.ecep.contract.manager.ds.project.model.ProjectSaleType; import com.ecep.contract.manager.ds.project.service.SaleTypeService; import com.ecep.contract.manager.ds.project.vo.SaleTypeViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; public abstract class AbstProjectSaleTypeBasedTabSkin extends AbstEntityBasedTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/AbstProjectSaleTypeTableTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/AbstProjectSaleTypeTableTabSkin.java index ccf92cb..7fe6d1e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/AbstProjectSaleTypeTableTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/AbstProjectSaleTypeTableTabSkin.java @@ -5,8 +5,8 @@ import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import com.ecep.contract.manager.ds.project.model.ProjectSaleType; import com.ecep.contract.manager.ds.project.service.SaleTypeService; import com.ecep.contract.manager.ds.project.vo.SaleTypeViewModel; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.SpecificationUtils; import org.springframework.data.jpa.domain.Specification; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeBaseTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeBaseTabSkin.java index 03bc853..ace1021 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeBaseTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeBaseTabSkin.java @@ -1,6 +1,6 @@ package com.ecep.contract.manager.ds.project.controller.sale_type; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.Tab; import javafx.util.converter.DoubleStringConverter; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeManagerSkin.java index 153d360..bf54c7f 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeManagerSkin.java @@ -4,7 +4,7 @@ import com.ecep.contract.manager.ds.project.model.ProjectSaleType; import com.ecep.contract.manager.ds.project.service.SaleTypeService; import com.ecep.contract.manager.ds.project.vo.SaleTypeViewModel; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.ManagerSkin; import com.ecep.contract.manager.ui.ViewModelService; import javafx.scene.control.TableColumn; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeRequireFilesTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeRequireFilesTabSkin.java index 9d9fdeb..374547c 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeRequireFilesTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/ProjectSaleTypeRequireFilesTabSkin.java @@ -6,7 +6,7 @@ import com.ecep.contract.manager.ds.contract.model.ContractFileTypeLocal; import com.ecep.contract.manager.ds.contract.service.ContractFileService; import com.ecep.contract.manager.ds.project.model.ProjectSaleTypeRequireFileType; import com.ecep.contract.manager.ds.project.service.ProjectSaleTypeRequireFileTypeService; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import impl.org.controlsfx.skin.ListSelectionViewSkin; import javafx.beans.property.SimpleBooleanProperty; import javafx.collections.FXCollections; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/SignMethodTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/SignMethodTabSkin.java index c35adbc..98b30b6 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/SignMethodTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/sale_type/SignMethodTabSkin.java @@ -4,7 +4,7 @@ import com.ecep.contract.manager.SpringApp; import com.ecep.contract.manager.ds.project.model.DeliverySignMethod; import com.ecep.contract.manager.ds.project.service.DeliverySignMethodService; import com.ecep.contract.manager.ds.project.vo.DeliverySignMethodViewModel; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.Tab; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/satisfaction_survey/CustomerSatisfactionSurveyTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/satisfaction_survey/CustomerSatisfactionSurveyTabSkinBase.java index 303c6f9..c1385a2 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/satisfaction_survey/CustomerSatisfactionSurveyTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/satisfaction_survey/CustomerSatisfactionSurveyTabSkinBase.java @@ -17,8 +17,8 @@ import com.ecep.contract.manager.ds.project.service.ProjectCostService; import com.ecep.contract.manager.ds.project.service.ProjectQuotationService; import com.ecep.contract.manager.ds.project.service.ProjectService; import com.ecep.contract.manager.ds.project.vo.CustomerSatisfactionSurveyViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.MyDateTimeUtils; import com.ecep.contract.manager.util.UITools; import javafx.application.Platform; diff --git a/src/main/java/com/ecep/contract/manager/ds/project/controller/usage/ProductUsageManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/project/controller/usage/ProductUsageManagerSkin.java index 7cc6d38..f0faeca 100644 --- a/src/main/java/com/ecep/contract/manager/ds/project/controller/usage/ProductUsageManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/project/controller/usage/ProductUsageManagerSkin.java @@ -5,14 +5,12 @@ import com.ecep.contract.manager.ds.project.service.ProductUsageService; import com.ecep.contract.manager.ds.project.service.ProjectService; import com.ecep.contract.manager.ds.project.vo.ProductUsageViewModel; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.ManagerSkin; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.TextFieldTableCell; import lombok.Setter; -import java.util.List; - public class ProductUsageManagerSkin extends AbstEntityManagerSkin implements ManagerSkin , EditableEntityTableTabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/AbstCompanyVendorTableTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/AbstCompanyVendorTableTabSkin.java index a882031..d7669be 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/AbstCompanyVendorTableTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/AbstCompanyVendorTableTabSkin.java @@ -2,14 +2,12 @@ package com.ecep.contract.manager.ds.vendor.controller; import com.ecep.contract.manager.ds.company.service.CompanyService; import com.ecep.contract.manager.ds.other.model.IdentityEntity; -import com.ecep.contract.manager.ds.other.vo.BaseViewModel; import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorViewModel; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.ViewModelService; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.SpecificationUtils; import org.springframework.data.jpa.domain.Specification; diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorManagerSkin.java index 433adea..31d237d 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorManagerSkin.java @@ -7,8 +7,7 @@ import java.util.stream.Collectors; import org.hibernate.Hibernate; import org.springframework.data.jpa.domain.Specification; -import com.ecep.contract.manager.ds.company.controller.CompanyTableCell; -import com.ecep.contract.manager.ds.company.model.Company; +import com.ecep.contract.manager.ui.table.cell.CompanyTableCell; import com.ecep.contract.manager.ds.company.service.CompanyService; import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; import com.ecep.contract.manager.ds.vendor.model.VendorCatalog; @@ -17,14 +16,12 @@ import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorViewModel; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; import com.ecep.contract.manager.ui.ComboBoxUtils; -import com.ecep.contract.manager.ui.ManagerSkin; import com.ecep.contract.manager.util.MyDateTimeUtils; import com.ecep.contract.manager.util.SpecificationUtils; import javafx.application.Platform; import javafx.beans.binding.Bindings; import javafx.beans.property.SimpleObjectProperty; -import javafx.beans.property.SimpleStringProperty; import lombok.Setter; public class CompanyVendorManagerSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorTabSkinBase.java index 8b2851c..806f7f4 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/CompanyVendorTabSkinBase.java @@ -12,7 +12,7 @@ import com.ecep.contract.manager.ds.vendor.model.CompanyVendor; import com.ecep.contract.manager.ds.vendor.model.VendorTypeLocal; import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; import com.ecep.contract.manager.ui.ComboBoxUtils; import com.ecep.contract.manager.util.UITools; import javafx.event.ActionEvent; diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/EntityTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/EntityTabSkin.java index 6da8342..a8105ab 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/EntityTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/EntityTabSkin.java @@ -8,7 +8,7 @@ import com.ecep.contract.manager.ds.vendor.model.VendorCatalog; import com.ecep.contract.manager.ds.vendor.service.CompanyVendorEntityService; import com.ecep.contract.manager.ds.vendor.vo.VendorEntityViewModel; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.MenuItem; import javafx.scene.control.Tab; import javafx.scene.control.TableColumn; diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/VendorTabSkinFile.java b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/VendorTabSkinFile.java index e86cc71..5002eff 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/VendorTabSkinFile.java +++ b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/VendorTabSkinFile.java @@ -12,8 +12,7 @@ import com.ecep.contract.manager.ds.vendor.service.CompanyVendorFileService; import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorFileViewModel; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; -import com.ecep.contract.manager.ui.ViewModelService; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.DesktopUtils; import com.ecep.contract.manager.util.MyDateTimeUtils; import com.ecep.contract.manager.util.UITools; @@ -25,7 +24,6 @@ import javafx.scene.control.*; import javafx.scene.control.cell.CheckBoxTableCell; import lombok.Setter; import org.hibernate.Hibernate; -import org.springframework.data.jpa.domain.Specification; import org.springframework.util.StringUtils; import java.io.File; diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinBase.java b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinBase.java index 65d2583..9dd77c6 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinBase.java +++ b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinBase.java @@ -2,8 +2,8 @@ package com.ecep.contract.manager.ds.vendor.controller.approved_list; import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedListViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.Tab; import javafx.util.converter.LocalDateStringConverter; diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinFiles.java b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinFiles.java index e143068..ed99128 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinFiles.java +++ b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinFiles.java @@ -6,9 +6,9 @@ import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; import com.ecep.contract.manager.ds.vendor.service.CompanyVendorApprovedFileService; import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedFileViewModel; import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedListViewModel; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.DesktopUtils; import com.ecep.contract.manager.util.SpecificationUtils; import javafx.event.ActionEvent; diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinVendors.java b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinVendors.java index 1d01b78..60bf776 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinVendors.java +++ b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/approved_list/CompanyVendorApprovedListTabSkinVendors.java @@ -11,13 +11,12 @@ import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedItem; import com.ecep.contract.manager.ds.vendor.model.CompanyVendorApprovedList; import com.ecep.contract.manager.ds.vendor.model.VendorTypeLocal; import com.ecep.contract.manager.ds.vendor.service.CompanyVendorApprovedItemService; -import com.ecep.contract.manager.ds.vendor.service.CompanyVendorApprovedListService; import com.ecep.contract.manager.ds.vendor.service.CompanyVendorService; import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedItemViewModel; import com.ecep.contract.manager.ds.vendor.vo.CompanyVendorApprovedListViewModel; -import com.ecep.contract.manager.ui.AbstEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.AbstEntityTableTabSkin; import com.ecep.contract.manager.ui.FxmlPath; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.ui.util.BooleanConfigProperty; import com.ecep.contract.manager.ui.util.IntegerConfigProperty; import com.ecep.contract.manager.util.SpecificationUtils; diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/AbstVendorGroupBasedTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/AbstVendorGroupBasedTabSkin.java index 13bfcf3..98ac785 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/AbstVendorGroupBasedTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/AbstVendorGroupBasedTabSkin.java @@ -3,8 +3,8 @@ package com.ecep.contract.manager.ds.vendor.controller.group; import com.ecep.contract.manager.ds.vendor.model.VendorGroup; import com.ecep.contract.manager.ds.vendor.service.VendorGroupService; import com.ecep.contract.manager.ds.vendor.vo.VendorGroupViewModel; -import com.ecep.contract.manager.ui.AbstEntityBasedTabSkin; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; public abstract class AbstVendorGroupBasedTabSkin extends AbstEntityBasedTabSkin diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupBaseTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupBaseTabSkin.java index 6fbc031..6468f3e 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupBaseTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupBaseTabSkin.java @@ -1,6 +1,6 @@ package com.ecep.contract.manager.ds.vendor.controller.group; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import javafx.scene.control.Tab; public class VendorGroupBaseTabSkin extends AbstVendorGroupBasedTabSkin implements TabSkin { diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupManagerSkin.java b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupManagerSkin.java index 8598241..7b573c9 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupManagerSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupManagerSkin.java @@ -4,7 +4,7 @@ import com.ecep.contract.manager.ds.vendor.model.VendorGroup; import com.ecep.contract.manager.ds.vendor.service.VendorGroupService; import com.ecep.contract.manager.ds.vendor.vo.VendorGroupViewModel; import com.ecep.contract.manager.ui.AbstEntityManagerSkin; -import com.ecep.contract.manager.ui.EditableEntityTableTabSkin; +import com.ecep.contract.manager.ui.table.EditableEntityTableTabSkin; import com.ecep.contract.manager.ui.ManagerSkin; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.TextFieldTableCell; diff --git a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupRequireFilesTabSkin.java b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupRequireFilesTabSkin.java index 83c717b..6ddab35 100644 --- a/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupRequireFilesTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ds/vendor/controller/group/VendorGroupRequireFilesTabSkin.java @@ -6,7 +6,7 @@ import com.ecep.contract.manager.ds.contract.model.ContractFileTypeLocal; import com.ecep.contract.manager.ds.contract.service.ContractFileService; import com.ecep.contract.manager.ds.vendor.model.VendorGroupRequireFileType; import com.ecep.contract.manager.ds.vendor.service.VendorGroupRequireFileTypeService; -import com.ecep.contract.manager.ui.TabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import impl.org.controlsfx.skin.ListSelectionViewSkin; import javafx.beans.property.SimpleBooleanProperty; import javafx.collections.FXCollections; diff --git a/src/main/java/com/ecep/contract/manager/ui/AbstEntityController.java b/src/main/java/com/ecep/contract/manager/ui/AbstEntityController.java index 35ea178..05b08ca 100644 --- a/src/main/java/com/ecep/contract/manager/ui/AbstEntityController.java +++ b/src/main/java/com/ecep/contract/manager/ui/AbstEntityController.java @@ -3,6 +3,8 @@ package com.ecep.contract.manager.ui; import com.ecep.contract.manager.ds.other.model.IdentityEntity; import com.ecep.contract.manager.ds.other.vo.BaseViewModel; import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.tab.TabSkin; import com.ecep.contract.manager.util.UITools; import javafx.application.Platform; import javafx.beans.binding.Bindings; @@ -114,7 +116,7 @@ public abstract class AbstEntityController> { +public interface ViewModelService> + extends IEntityService { // > R getRepository(); - T findById(Integer id); - default T findByModel(TV model) { if (model instanceof IdentityViewModel identity) { return findById(identity.getId().get()); @@ -23,27 +23,6 @@ public interface ViewModelService getSpecification(String searchText); - - /** - * 根据搜索文本查询列表 - */ - default List search(String searchText) { - throw new UnsupportedOperationException(); - } - - Page findAll(Specification spec, Pageable pageable); - - void delete(T entity); - - T save(T entity); - default TV from(T entity) { TV model = createNewViewModel(); model.update(entity); diff --git a/src/main/java/com/ecep/contract/manager/ui/AbstEntityBasedTabSkin.java b/src/main/java/com/ecep/contract/manager/ui/tab/AbstEntityBasedTabSkin.java similarity index 96% rename from src/main/java/com/ecep/contract/manager/ui/AbstEntityBasedTabSkin.java rename to src/main/java/com/ecep/contract/manager/ui/tab/AbstEntityBasedTabSkin.java index 1b9548a..be864c2 100644 --- a/src/main/java/com/ecep/contract/manager/ui/AbstEntityBasedTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ui/tab/AbstEntityBasedTabSkin.java @@ -1,7 +1,11 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.manager.ui.tab; import com.ecep.contract.manager.ds.other.model.IdentityEntity; import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; +import com.ecep.contract.manager.ui.AbstEntityController; +import com.ecep.contract.manager.ui.AbstGenericTabSkin; +import com.ecep.contract.manager.ui.BaseController; +import com.ecep.contract.manager.ui.FxmlPath; import com.ecep.contract.manager.util.FxmlUtils; import com.ecep.contract.manager.util.MyDateTimeUtils; import com.ecep.contract.manager.util.UITools; diff --git a/src/main/java/com/ecep/contract/manager/ui/TabSkin.java b/src/main/java/com/ecep/contract/manager/ui/tab/TabSkin.java similarity index 78% rename from src/main/java/com/ecep/contract/manager/ui/TabSkin.java rename to src/main/java/com/ecep/contract/manager/ui/tab/TabSkin.java index a7fd734..0add7c9 100644 --- a/src/main/java/com/ecep/contract/manager/ui/TabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ui/tab/TabSkin.java @@ -1,5 +1,6 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.manager.ui.tab; +import com.ecep.contract.manager.ui.Skin; import javafx.beans.property.BooleanProperty; import javafx.scene.control.Tab; diff --git a/src/main/java/com/ecep/contract/manager/ui/AbstEntityTableTabSkin.java b/src/main/java/com/ecep/contract/manager/ui/table/AbstEntityTableTabSkin.java similarity index 95% rename from src/main/java/com/ecep/contract/manager/ui/AbstEntityTableTabSkin.java rename to src/main/java/com/ecep/contract/manager/ui/table/AbstEntityTableTabSkin.java index e42e356..a29a35d 100644 --- a/src/main/java/com/ecep/contract/manager/ui/AbstEntityTableTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ui/table/AbstEntityTableTabSkin.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.manager.ui.table; import java.io.File; import java.time.LocalDate; @@ -9,6 +9,10 @@ import java.util.concurrent.CompletableFuture; import java.util.function.Consumer; import java.util.function.Function; +import com.ecep.contract.manager.ui.RefreshableSkin; +import com.ecep.contract.manager.ui.tab.AbstEntityBasedTabSkin; +import com.ecep.contract.manager.ui.AbstEntityController; +import com.ecep.contract.manager.ui.ViewModelService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.domain.Page; @@ -20,7 +24,7 @@ import com.ecep.contract.manager.ds.other.model.IdentityEntity; import com.ecep.contract.manager.ds.other.service.EmployeeService; import com.ecep.contract.manager.ds.other.vo.IdentityViewModel; import com.ecep.contract.manager.ui.util.LocalDateFieldTableCell; -import com.ecep.contract.manager.ui.util.LocalDateTimeTableCell; +import com.ecep.contract.manager.ui.table.cell.LocalDateTimeTableCell; import com.ecep.contract.manager.util.TableViewUtils; import com.ecep.contract.manager.util.UITools; @@ -65,7 +69,7 @@ public abstract class AbstEntityTableTabSkin> extends AbstEntityBasedTabSkin - implements TableOfTabSkin, EditableEntityTableTabSkin { + implements TableOfTabSkin, EditableEntityTableTabSkin, RefreshableSkin { private static final Logger logger = LoggerFactory.getLogger(AbstEntityTableTabSkin.class); protected CompletableFuture loadedFuture; protected final SimpleBooleanProperty changed = new SimpleBooleanProperty(false); @@ -388,6 +392,19 @@ public abstract class AbstEntityTableTabSkin refresh() { + CompletableFuture future = new CompletableFuture<>(); + CompletableFuture.runAsync(() -> { + try { + loadTableDataSet(); + future.complete(null); + } catch (Exception e) { + future.completeExceptionally(e); + } + }); + return future; + } + protected void onTableRefreshAction(ActionEvent event) { loadTableDataSet(); } diff --git a/src/main/java/com/ecep/contract/manager/ui/EditableEntityTableTabSkin.java b/src/main/java/com/ecep/contract/manager/ui/table/EditableEntityTableTabSkin.java similarity index 84% rename from src/main/java/com/ecep/contract/manager/ui/EditableEntityTableTabSkin.java rename to src/main/java/com/ecep/contract/manager/ui/table/EditableEntityTableTabSkin.java index 2099af2..e95b95b 100644 --- a/src/main/java/com/ecep/contract/manager/ui/EditableEntityTableTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ui/table/EditableEntityTableTabSkin.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.manager.ui.table; import com.ecep.contract.manager.ds.other.vo.BaseViewModel; diff --git a/src/main/java/com/ecep/contract/manager/ui/TableOfTabSkin.java b/src/main/java/com/ecep/contract/manager/ui/table/TableOfTabSkin.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ui/TableOfTabSkin.java rename to src/main/java/com/ecep/contract/manager/ui/table/TableOfTabSkin.java index 2d2f918..107b7a7 100644 --- a/src/main/java/com/ecep/contract/manager/ui/TableOfTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ui/table/TableOfTabSkin.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.manager.ui.table; import com.ecep.contract.manager.ds.other.vo.BaseViewModel; import org.springframework.data.jpa.domain.Specification; diff --git a/src/main/java/com/ecep/contract/manager/ui/TableTabSkin.java b/src/main/java/com/ecep/contract/manager/ui/table/TableTabSkin.java similarity index 89% rename from src/main/java/com/ecep/contract/manager/ui/TableTabSkin.java rename to src/main/java/com/ecep/contract/manager/ui/table/TableTabSkin.java index 74ae639..3195f35 100644 --- a/src/main/java/com/ecep/contract/manager/ui/TableTabSkin.java +++ b/src/main/java/com/ecep/contract/manager/ui/table/TableTabSkin.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui; +package com.ecep.contract.manager.ui.table; import com.ecep.contract.manager.ds.other.vo.BaseViewModel; import javafx.scene.control.TableView; diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/AsyncUpdateTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/AsyncUpdateTableCell.java new file mode 100644 index 0000000..819c4eb --- /dev/null +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/AsyncUpdateTableCell.java @@ -0,0 +1,88 @@ +package com.ecep.contract.manager.ui.table.cell; + +import com.ecep.contract.manager.Desktop; +import com.ecep.contract.manager.ds.other.model.IdentityEntity; +import com.ecep.contract.manager.ds.other.model.NamedEntity; +import com.ecep.contract.manager.ds.other.service.IEntityService; +import javafx.application.Platform; +import org.hibernate.Hibernate; + +import java.util.concurrent.Future; + +/** + * 异步更新表格, 当单元格对应的数据未被初始化时, 显示#id, 当初始化后, 显示对应的文本 + * @param + * @param + */ +public class AsyncUpdateTableCell extends javafx.scene.control.TableCell { + /** + * 转换为文本 + */ + public static String toString(Object entity) { + if (entity instanceof NamedEntity named) { + return named.getName(); + } + if (entity instanceof com.ecep.contract.manager.ds.other.model.Entity e) { + return e.toPrettyString(); + } + return entity.toString(); + } + + private IEntityService service; + + public void setService(IEntityService service) { + this.service = service; + } + + public IEntityService getService() { + if (service == null) { + service = getServiceBean(); + } + return service; + } + + protected IEntityService getServiceBean() { + return null; + } + + @Override + protected void updateItem(T item, boolean empty) { + super.updateItem(item, empty); + if (empty || item == null) { + setText(null); + return; + } + if (isInitialized(item)) { + setText(format(item)); + return; + } + setText("# " + item.getId()); + submit(this::asyncLoadAndUpdate); + } + + protected boolean isInitialized(T proxy) { + return Hibernate.isInitialized(proxy); + } + + Future submit(Runnable var1) { + return Desktop.instance.getExecutorService().submit(var1); + } + + public String format(T entity) { + return toString(entity); + } + + + protected void asyncLoadAndUpdate() { + T entity = initialize(); + Platform.runLater(() -> { + setText(format(entity)); + setItem(entity); + }); + } + + protected T initialize() { + return getService().findById(getItem().getId()); + } + +} 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 new file mode 100644 index 0000000..5508638 --- /dev/null +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/CompanyTableCell.java @@ -0,0 +1,22 @@ +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 static com.ecep.contract.manager.SpringApp.getBean; + +public class CompanyTableCell extends AsyncUpdateTableCell { + + public CompanyTableCell() { + } + + public CompanyTableCell(CompanyService companyService) { + setService(companyService); + } + + @Override + protected ViewModelService getServiceBean() { + return getBean(CompanyService.class); + } +} diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractGroupTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractGroupTableCell.java new file mode 100644 index 0000000..97c2bbf --- /dev/null +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractGroupTableCell.java @@ -0,0 +1,21 @@ +package com.ecep.contract.manager.ui.table.cell; + +import com.ecep.contract.manager.ds.contract.model.ContractGroup; +import com.ecep.contract.manager.ds.contract.service.ContractGroupService; +import com.ecep.contract.manager.ds.other.service.IEntityService; + +import static com.ecep.contract.manager.SpringApp.getBean; + +public class ContractGroupTableCell extends AsyncUpdateTableCell { + public ContractGroupTableCell() { + } + + public ContractGroupTableCell(ContractGroupService service) { + setService(service); + } + + @Override + protected IEntityService getServiceBean() { + return getBean(ContractGroupService.class); + } +} diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractKindTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractKindTableCell.java new file mode 100644 index 0000000..d683419 --- /dev/null +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractKindTableCell.java @@ -0,0 +1,24 @@ +package com.ecep.contract.manager.ui.table.cell; + +import com.ecep.contract.manager.ds.contract.model.ContractKind; +import com.ecep.contract.manager.ds.contract.service.ContractKindService; +import com.ecep.contract.manager.ds.other.service.IEntityService; + +import static com.ecep.contract.manager.SpringApp.getBean; + +public class ContractKindTableCell extends AsyncUpdateTableCell { + + public ContractKindTableCell() { + } + + public ContractKindTableCell(ContractKindService contractService) { + setService(contractService); + } + + @Override + protected IEntityService getServiceBean() { + return getBean(ContractKindService.class); + } + + +} diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractTableCell.java new file mode 100644 index 0000000..c6c3ea1 --- /dev/null +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractTableCell.java @@ -0,0 +1,20 @@ +package com.ecep.contract.manager.ui.table.cell; + +import com.ecep.contract.manager.SpringApp; +import com.ecep.contract.manager.ds.contract.model.Contract; +import com.ecep.contract.manager.ds.contract.service.ContractService; +import com.ecep.contract.manager.ds.other.service.IEntityService; + +public class ContractTableCell extends AsyncUpdateTableCell { + public ContractTableCell() { + } + + public ContractTableCell(ContractService service) { + setService(service); + } + + @Override + protected IEntityService getServiceBean() { + return SpringApp.getBean(ContractService.class); + } +} diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractTypeTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractTypeTableCell.java new file mode 100644 index 0000000..66f571b --- /dev/null +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/ContractTypeTableCell.java @@ -0,0 +1,19 @@ +package com.ecep.contract.manager.ui.table.cell; + +import com.ecep.contract.manager.SpringApp; +import com.ecep.contract.manager.ds.contract.model.ContractType; +import com.ecep.contract.manager.ds.contract.service.ContractTypeService; +import com.ecep.contract.manager.ds.other.service.IEntityService; +import lombok.NoArgsConstructor; + +@NoArgsConstructor +public class ContractTypeTableCell extends AsyncUpdateTableCell { + public ContractTypeTableCell(ContractTypeService contractService) { + setService(contractService); + } + + @Override + protected IEntityService getServiceBean() { + return SpringApp.getBean(ContractTypeService.class); + } +} diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/EmployeeTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/EmployeeTableCell.java new file mode 100644 index 0000000..838302d --- /dev/null +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/EmployeeTableCell.java @@ -0,0 +1,30 @@ +package com.ecep.contract.manager.ui.table.cell; + +import com.ecep.contract.manager.ds.other.model.Employee; +import com.ecep.contract.manager.ds.other.service.EmployeeService; +import com.ecep.contract.manager.ui.ViewModelService; +import lombok.Setter; + +import static com.ecep.contract.manager.SpringApp.getBean; + +@Setter +public class EmployeeTableCell extends AsyncUpdateTableCell { + + public EmployeeTableCell() { + } + + public EmployeeTableCell(EmployeeService employeeService) { + setService(employeeService); + } + + @Override + protected ViewModelService getServiceBean() { + return getBean(EmployeeService.class); + } + + @Override + public String format(Employee entity) { + return entity.toPrettyString(); + } + +} diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/EvaluationFileTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/EvaluationFileTableCell.java new file mode 100644 index 0000000..c5571e5 --- /dev/null +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/EvaluationFileTableCell.java @@ -0,0 +1,49 @@ +package com.ecep.contract.manager.ui.table.cell; + +import com.ecep.contract.manager.SpringApp; +import com.ecep.contract.manager.ds.customer.model.CompanyCustomerEvaluationFormFile; +import com.ecep.contract.manager.ds.customer.model.CompanyCustomerFile; +import com.ecep.contract.manager.ds.customer.service.CompanyCustomerFileService; +import lombok.NoArgsConstructor; +import org.springframework.util.StringUtils; + +import java.io.File; + +/** + * 评估文件 TableCell + */ +@NoArgsConstructor +public class EvaluationFileTableCell extends AsyncUpdateTableCell { + private CompanyCustomerFileService fileService; + + public EvaluationFileTableCell(CompanyCustomerFileService fileService) { + this.fileService = fileService; + } + + public CompanyCustomerFileService getFileService() { + if (fileService == null) { + fileService = SpringApp.getBean(CompanyCustomerFileService.class); + } + return fileService; + } + + + @Override + protected CompanyCustomerEvaluationFormFile initialize() { + return getFileService().findCustomerEvaluationFormFileById(getItem().getId()); + } + + @Override + public String format(CompanyCustomerEvaluationFormFile entity) { + CompanyCustomerFile customerFile = entity.getCustomerFile(); + if (customerFile == null) { + return super.format(entity); + } + String path = customerFile.getFilePath(); + if (StringUtils.hasText(path)) { + File file = new File(path); + return file.getName(); + } + return toString(customerFile); + } +} diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/InventoryTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/InventoryTableCell.java new file mode 100644 index 0000000..f086250 --- /dev/null +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/InventoryTableCell.java @@ -0,0 +1,58 @@ +package com.ecep.contract.manager.ui.table.cell; + +import com.ecep.contract.manager.SpringApp; +import com.ecep.contract.manager.ds.other.model.Inventory; +import com.ecep.contract.manager.ds.other.model.InventoryCatalog; +import com.ecep.contract.manager.ds.other.service.InventoryCatalogService; +import com.ecep.contract.manager.ds.other.service.InventoryService; +import lombok.NoArgsConstructor; +import org.hibernate.Hibernate; + +@NoArgsConstructor +public class InventoryTableCell extends AsyncUpdateTableCell { + + private InventoryCatalogService inventoryCatalogService; + + public InventoryTableCell(InventoryService service) { + setService(service); + } + + + InventoryCatalogService getInventoryCatalogService() { + if (inventoryCatalogService == null) { + inventoryCatalogService = SpringApp.getBean(InventoryCatalogService.class); + } + return inventoryCatalogService; + } + + + @Override + public String format(Inventory entity) { + InventoryCatalog catalog = entity.getCatalog(); + return (catalog != null ? (catalog.getName() + " ") : "") + entity.toPrettyString(); + } + + @Override + protected boolean isInitialized(Inventory proxy) { + if (!super.isInitialized(proxy)) { + return false; + } + InventoryCatalog catalog = proxy.getCatalog(); + if (catalog != null) { + return Hibernate.isInitialized(catalog); + } + return true; + } + + + @Override + protected Inventory initialize() { + Inventory inventory = super.initialize(); + InventoryCatalog catalog = inventory.getCatalog(); + if (catalog != null && !Hibernate.isInitialized(catalog)) { + catalog = getInventoryCatalogService().findById(catalog.getId()); + inventory.setCatalog(catalog); + } + return inventory; + } +} diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/InvoiceTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/InvoiceTableCell.java new file mode 100644 index 0000000..2f376eb --- /dev/null +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/InvoiceTableCell.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.company.model.Invoice; +import com.ecep.contract.manager.ds.company.service.InvoiceService; +import com.ecep.contract.manager.ds.other.service.IEntityService; + +public class InvoiceTableCell extends AsyncUpdateTableCell { + + public InvoiceTableCell(InvoiceService invoiceService) { + setService(invoiceService); + } + + @Override + protected IEntityService getServiceBean() { + return SpringApp.getBean(InvoiceService.class); + } + + @Override + public String format(Invoice entity) { + return entity.getCode(); + } +} diff --git a/src/main/java/com/ecep/contract/manager/ui/util/LocalDateTimeTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/LocalDateTimeTableCell.java similarity index 94% rename from src/main/java/com/ecep/contract/manager/ui/util/LocalDateTimeTableCell.java rename to src/main/java/com/ecep/contract/manager/ui/table/cell/LocalDateTimeTableCell.java index ef951be..6c061b2 100644 --- a/src/main/java/com/ecep/contract/manager/ui/util/LocalDateTimeTableCell.java +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/LocalDateTimeTableCell.java @@ -1,4 +1,4 @@ -package com.ecep.contract.manager.ui.util; +package com.ecep.contract.manager.ui.table.cell; import com.ecep.contract.manager.util.MyDateTimeUtils; diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/ProjectTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/ProjectTableCell.java new file mode 100644 index 0000000..46ade8c --- /dev/null +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/ProjectTableCell.java @@ -0,0 +1,27 @@ +package com.ecep.contract.manager.ui.table.cell; + +import com.ecep.contract.manager.ds.other.service.IEntityService; +import com.ecep.contract.manager.ds.project.model.Project; +import com.ecep.contract.manager.ds.project.service.ProjectService; +import lombok.NoArgsConstructor; + +import static com.ecep.contract.manager.SpringApp.getBean; + +@NoArgsConstructor +public class ProjectTableCell extends AsyncUpdateTableCell { + + public ProjectTableCell(ProjectService projectService) { + setService(projectService); + } + + @Override + protected IEntityService getServiceBean() { + return getBean(ProjectService.class); + } + + + @Override + public String format(Project entity) { + return entity.toPrettyString(); + } +} diff --git a/src/main/java/com/ecep/contract/manager/ui/table/cell/PurchaseOrderItemTableCell.java b/src/main/java/com/ecep/contract/manager/ui/table/cell/PurchaseOrderItemTableCell.java new file mode 100644 index 0000000..00893fe --- /dev/null +++ b/src/main/java/com/ecep/contract/manager/ui/table/cell/PurchaseOrderItemTableCell.java @@ -0,0 +1,71 @@ +package com.ecep.contract.manager.ui.table.cell; + +import com.ecep.contract.manager.SpringApp; +import com.ecep.contract.manager.ds.contract.model.PurchaseOrderItem; +import com.ecep.contract.manager.ds.contract.service.PurchaseOrderItemService; +import com.ecep.contract.manager.ds.contract.service.PurchaseOrdersService; +import com.ecep.contract.manager.ds.other.model.Inventory; +import com.ecep.contract.manager.ds.other.service.InventoryCatalogService; +import com.ecep.contract.manager.ds.other.service.InventoryService; +import lombok.NoArgsConstructor; +import org.hibernate.Hibernate; + +@NoArgsConstructor +public class PurchaseOrderItemTableCell extends AsyncUpdateTableCell { + PurchaseOrdersService service; + private InventoryService inventoryService; + private InventoryCatalogService inventoryCatalogService; + + public PurchaseOrderItemTableCell(PurchaseOrderItemService service) { + setService(service); + } + + InventoryService getInventoryService() { + if (inventoryService == null) { + inventoryService = SpringApp.getBean(InventoryService.class); + } + return inventoryService; + } + + InventoryCatalogService getInventoryCatalogService() { + if (inventoryCatalogService == null) { + inventoryCatalogService = SpringApp.getBean(InventoryCatalogService.class); + } + return inventoryCatalogService; + } + + PurchaseOrdersService getPurchaseOrdersService() { + if (service == null) + service = SpringApp.getBean(PurchaseOrdersService.class); + return service; + } + + @Override + protected boolean isInitialized(PurchaseOrderItem orderItem) { + if (!super.isInitialized(orderItem)) { + return false; + } + Inventory inventory = orderItem.getInventory(); + if (inventory != null) { + return Hibernate.isInitialized(inventory); + } + return true; + } + + @Override + protected PurchaseOrderItem initialize() { + PurchaseOrderItem orderItem = super.initialize(); + Inventory inventory = orderItem.getInventory(); + if (inventory != null && !Hibernate.isInitialized(inventory)) { + inventory = getInventoryService().findById(inventory.getId()); + orderItem.setInventory(inventory); + } + return orderItem; + } + + @Override + public String format(PurchaseOrderItem orderItem) { + Inventory inventory = orderItem.getInventory(); + return (inventory != null ? (inventory.toPrettyString() + " x ") : "") + orderItem.getQuantity(); + } +} diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index 216797e..43c821f 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -28,7 +28,7 @@ - +