拆分模块
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
package com.ecep.contract.controller.bank;
|
||||
|
||||
import com.ecep.contract.controller.AbstEntityManagerSkin;
|
||||
import com.ecep.contract.controller.ManagerSkin;
|
||||
import com.ecep.contract.controller.table.EditableEntityTableTabSkin;
|
||||
import com.ecep.contract.model.Bank;
|
||||
import com.ecep.contract.vm.BankViewModel;
|
||||
|
||||
import javafx.scene.control.TableColumn;
|
||||
import javafx.scene.control.cell.TextFieldTableCell;
|
||||
|
||||
|
||||
public class BankManagerSkin
|
||||
extends AbstEntityManagerSkin<Bank, BankViewModel, BankManagerSkin, BankManagerWindowController>
|
||||
implements ManagerSkin, EditableEntityTableTabSkin<Bank, BankViewModel> {
|
||||
|
||||
public BankManagerSkin(BankManagerWindowController controller) {
|
||||
super(controller);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initializeTable() {
|
||||
getTableView().setEditable(true);
|
||||
controller.idColumn.setCellValueFactory(param -> param.getValue().getId());
|
||||
|
||||
controller.codeColumn.setCellValueFactory(param -> param.getValue().getCode());
|
||||
controller.codeColumn.setCellFactory(TextFieldTableCell.forTableColumn());
|
||||
controller.codeColumn.setOnEditCommit(this::onCodeColumnEditCommit);
|
||||
|
||||
controller.nameColumn.setCellValueFactory(param -> param.getValue().getName());
|
||||
controller.nameColumn.setCellFactory(TextFieldTableCell.forTableColumn());
|
||||
controller.nameColumn.setOnEditCommit(this::onNameColumnEditCommit);
|
||||
|
||||
}
|
||||
|
||||
private void onCodeColumnEditCommit(TableColumn.CellEditEvent<BankViewModel, String> event) {
|
||||
acceptCellEditEvent(event, BankViewModel::getCode);
|
||||
}
|
||||
|
||||
private void onNameColumnEditCommit(TableColumn.CellEditEvent<BankViewModel, String> event) {
|
||||
acceptCellEditEvent(event, BankViewModel::getName);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.ecep.contract.controller.bank;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.ecep.contract.controller.AbstManagerWindowController;
|
||||
import com.ecep.contract.util.FxmlPath;
|
||||
import com.ecep.contract.ds.other.service.BankService;
|
||||
import com.ecep.contract.model.Bank;
|
||||
import com.ecep.contract.vm.BankViewModel;
|
||||
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.scene.control.TableColumn;
|
||||
|
||||
@Lazy
|
||||
@Scope("prototype")
|
||||
@Component
|
||||
@FxmlPath("/ui/bank-manager.fxml")
|
||||
public class BankManagerWindowController
|
||||
extends AbstManagerWindowController<Bank, BankViewModel, BankManagerSkin> {
|
||||
|
||||
@Autowired
|
||||
private BankService bankService;
|
||||
|
||||
public TableColumn<BankViewModel, Number> idColumn;
|
||||
public TableColumn<BankViewModel, String> nameColumn;
|
||||
public TableColumn<BankViewModel, String> codeColumn;
|
||||
|
||||
@Override
|
||||
protected BankManagerSkin createDefaultSkin() {
|
||||
return new BankManagerSkin(this);
|
||||
}
|
||||
|
||||
public void onCreateNewAction(ActionEvent event) {
|
||||
|
||||
}
|
||||
|
||||
public void onReBuildFilesAction(ActionEvent event) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public BankService getViewModelService() {
|
||||
return bankService;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.ecep.contract.controller.bank.account;
|
||||
|
||||
import com.ecep.contract.SpringApp;
|
||||
import com.ecep.contract.controller.company.CompanyWindowController;
|
||||
import com.ecep.contract.controller.tab.AbstEntityBasedTabSkin;
|
||||
import com.ecep.contract.controller.tab.TabSkin;
|
||||
import com.ecep.contract.converter.BankStringConverter;
|
||||
import com.ecep.contract.model.Company;
|
||||
import com.ecep.contract.model.CompanyBankAccount;
|
||||
import com.ecep.contract.service.BankService;
|
||||
import com.ecep.contract.service.CompanyService;
|
||||
import com.ecep.contract.service.CompanyStringConverter;
|
||||
import com.ecep.contract.util.UITools;
|
||||
import com.ecep.contract.vm.CompanyBankAccountViewModel;
|
||||
|
||||
import javafx.scene.control.Tab;
|
||||
import javafx.scene.control.TextField;
|
||||
import lombok.Setter;
|
||||
|
||||
public class BankAccountBaseTabSkin
|
||||
extends AbstEntityBasedTabSkin<BankAccountWindowController, CompanyBankAccount, CompanyBankAccountViewModel>
|
||||
implements TabSkin {
|
||||
@Setter
|
||||
private CompanyService companyService;
|
||||
@Setter
|
||||
private BankService bankService;
|
||||
|
||||
public BankAccountBaseTabSkin(BankAccountWindowController controller) {
|
||||
super(controller);
|
||||
viewModel = controller.getViewModel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Tab getTab() {
|
||||
return controller.baseInfoTab;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initializeTab() {
|
||||
initializeBaseTabCompanyFieldAutoCompletion(controller.companyField);
|
||||
initializeBaseTabBankFieldAutoCompletion(controller.bankField);
|
||||
|
||||
controller.openingBankField.textProperty().bindBidirectional(viewModel.getOpeningBank());
|
||||
controller.bankAccountField.textProperty().bindBidirectional(viewModel.getAccount());
|
||||
|
||||
// controller.descriptionField.textProperty().bindBidirectional(viewModel.getDescription());
|
||||
controller.createdField.textProperty().bind(viewModel.getCreated().asString());
|
||||
controller.versionLabel.textProperty().bind(viewModel.getVersion().asString());
|
||||
|
||||
controller.relativeCompanyBtn.disableProperty().bind(viewModel.getCompany().isNull());
|
||||
controller.relativeCompanyBtn.setOnAction(event -> {
|
||||
Company company = viewModel.getCompany().get();
|
||||
if (company != null) {
|
||||
CompanyWindowController.show(company, controller.root.getScene().getWindow());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void initializeBaseTabCompanyFieldAutoCompletion(TextField textField) {
|
||||
CompanyStringConverter converter = SpringApp.getBean(CompanyStringConverter.class);
|
||||
UITools.autoCompletion(textField, viewModel.getCompany(), converter::suggest, converter);
|
||||
}
|
||||
|
||||
private void initializeBaseTabBankFieldAutoCompletion(TextField textField) {
|
||||
BankStringConverter converter = SpringApp.getBean(BankStringConverter.class);
|
||||
UITools.autoCompletion(textField, viewModel.getBank(), converter::suggest, converter);
|
||||
}
|
||||
|
||||
public BankService getBankService() {
|
||||
if (bankService == null) {
|
||||
bankService = getBean(BankService.class);
|
||||
}
|
||||
return bankService;
|
||||
}
|
||||
|
||||
public CompanyService getCompanyService() {
|
||||
if (companyService == null) {
|
||||
companyService = getBean(CompanyService.class);
|
||||
}
|
||||
return companyService;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package com.ecep.contract.controller.bank.account;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.ecep.contract.controller.AbstEntityController;
|
||||
import com.ecep.contract.util.FxmlPath;
|
||||
import com.ecep.contract.ds.company.service.CompanyBankAccountService;
|
||||
import com.ecep.contract.model.CompanyBankAccount;
|
||||
import com.ecep.contract.vm.CompanyBankAccountViewModel;
|
||||
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.Tab;
|
||||
import javafx.scene.control.TabPane;
|
||||
import javafx.scene.control.TextArea;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.layout.BorderPane;
|
||||
import javafx.stage.Window;
|
||||
import javafx.stage.WindowEvent;
|
||||
|
||||
@Lazy
|
||||
@Scope("prototype")
|
||||
@Component
|
||||
@FxmlPath("/ui/company/bank-account.fxml")
|
||||
public class BankAccountWindowController extends AbstEntityController<CompanyBankAccount, CompanyBankAccountViewModel> {
|
||||
public BorderPane root;
|
||||
public TabPane tabPane;
|
||||
|
||||
public Tab baseInfoTab;
|
||||
public TextField companyField;
|
||||
public Button relativeCompanyBtn;
|
||||
public TextField bankField;
|
||||
public TextField openingBankField;
|
||||
public TextField bankAccountField;
|
||||
public TextField createdField;
|
||||
public TextArea descriptionField;
|
||||
public Label versionLabel;
|
||||
|
||||
public Tab entityTab;
|
||||
|
||||
|
||||
public static void show(CompanyBankAccountViewModel viewModel, Window window) {
|
||||
show(BankAccountWindowController.class, viewModel, window);
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private CompanyBankAccountService bankAccountService;
|
||||
|
||||
@Override
|
||||
public void onShown(WindowEvent event) {
|
||||
super.onShown(event);
|
||||
getTitle().set("[" + viewModel.getId().get() + "] 银行账户详情");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerTabSkins() {
|
||||
registerTabSkin(baseInfoTab, tab -> new BankAccountBaseTabSkin(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompanyBankAccountService getViewModelService() {
|
||||
return bankAccountService;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user