重构所有VO对象,统一字段命名规范,移除冗余字段,优化接口实现 新增Voable接口用于VO对象转换 调整BaseViewModel和ProjectBasedViewModel接口定义 更新相关服务和控制器以适应VO对象变更
110 lines
4.4 KiB
Java
110 lines
4.4 KiB
Java
package com.ecep.contract.controller;
|
|
|
|
import com.ecep.contract.SpringApp;
|
|
import com.ecep.contract.controller.company.CompanyWindowController;
|
|
import com.ecep.contract.controller.table.cell.CompanyTableCell;
|
|
import com.ecep.contract.controller.table.cell.LocalDateTimeTableCell;
|
|
import com.ecep.contract.service.CloudRkService;
|
|
import com.ecep.contract.service.CompanyService;
|
|
import com.ecep.contract.vm.CloudRkViewModel;
|
|
import com.ecep.contract.vo.CloudRkVo;
|
|
import com.ecep.contract.vo.CompanyVo;
|
|
|
|
import javafx.collections.ObservableList;
|
|
import javafx.event.ActionEvent;
|
|
import javafx.scene.control.ContextMenu;
|
|
import javafx.scene.control.MenuItem;
|
|
import javafx.scene.control.TableColumn;
|
|
import javafx.scene.control.cell.CheckBoxTableCell;
|
|
import lombok.Setter;
|
|
|
|
public class CloudRkManagerSkin
|
|
extends AbstEntityManagerSkin<CloudRkVo, CloudRkViewModel, CloudRkManagerSkin, CloudRkManagerWindowController> {
|
|
@Setter
|
|
private CompanyService companyService;
|
|
|
|
public CloudRkManagerSkin(CloudRkManagerWindowController controller) {
|
|
super(controller);
|
|
}
|
|
|
|
CloudRkService getCloudRkService() {
|
|
return controller.getViewModelService();
|
|
}
|
|
|
|
CompanyService getCompanyService() {
|
|
if (companyService == null) {
|
|
companyService = SpringApp.getBean(CompanyService.class);
|
|
}
|
|
return companyService;
|
|
}
|
|
|
|
@Override
|
|
public void initializeTable() {
|
|
controller.idColumn.setCellValueFactory(param -> param.getValue().getId());
|
|
|
|
controller.companyColumn.setCellValueFactory(param -> param.getValue().getCompany());
|
|
controller.companyColumn.setCellFactory(param -> new CompanyTableCell<>(getCompanyService()));
|
|
|
|
controller.cloudIdColumn.setCellValueFactory(param -> param.getValue().getCloudId());
|
|
|
|
controller.latestUpdateColumn.setCellValueFactory(param -> param.getValue().getLatestUpdate());
|
|
controller.latestUpdateColumn.setCellFactory(param -> new LocalDateTimeTableCell<>());
|
|
|
|
controller.cloudLatestColumn.setCellValueFactory(param -> param.getValue().getCloudLatest());
|
|
controller.cloudLatestColumn.setCellFactory(param -> new LocalDateTimeTableCell<>());
|
|
|
|
controller.cloudBlackListUpdatedColumn
|
|
.setCellValueFactory(param -> param.getValue().getCloudBlackListUpdated());
|
|
controller.cloudBlackListUpdatedColumn.setCellFactory(param -> new LocalDateTimeTableCell<>());
|
|
|
|
controller.cloudEntUpdateColumn.setCellValueFactory(param -> param.getValue().getCloudEntUpdate());
|
|
controller.cloudEntUpdateColumn.setCellFactory(param -> new LocalDateTimeTableCell<>());
|
|
|
|
controller.autoUpdateColumn.setCellValueFactory(param -> param.getValue().getAutoUpdate());
|
|
controller.autoUpdateColumn.setCellFactory(CheckBoxTableCell.forTableColumn(controller.autoUpdateColumn));
|
|
|
|
controller.descriptionColumn.setCellValueFactory(param -> param.getValue().getDescription());
|
|
}
|
|
|
|
private void onAutoUpdateColumnEditCommit(TableColumn.CellEditEvent<CloudRkViewModel, Boolean> event) {
|
|
CloudRkViewModel row = event.getRowValue();
|
|
row.getAutoUpdate().set(event.getNewValue());
|
|
saveRowData(row);
|
|
}
|
|
|
|
@Override
|
|
protected void createContextMenu(ContextMenu contextMenu) {
|
|
MenuItem item2 = new MenuItem("刷新");
|
|
item2.setOnAction(this::onTableRefreshAction);
|
|
|
|
MenuItem item3 = new MenuItem("清空备注");
|
|
item3.setOnAction(this::onTableClearDescriptionAction);
|
|
|
|
contextMenu.getItems().addAll(item2, item3);
|
|
}
|
|
|
|
/**
|
|
* 请空选择行的注释
|
|
*
|
|
* @param event event
|
|
*/
|
|
public void onTableClearDescriptionAction(ActionEvent event) {
|
|
ObservableList<CloudRkViewModel> selectedItems = getTableView().getSelectionModel().getSelectedItems();
|
|
if (selectedItems.isEmpty()) {
|
|
return;
|
|
}
|
|
CloudRkService service = getCloudRkService();
|
|
for (CloudRkViewModel selectedItem : selectedItems) {
|
|
selectedItem.getDescription().set("");
|
|
selectedItem.saveInFxApplicationThread(service);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected void onTableRowDoubleClickedAction(CloudRkViewModel item) {
|
|
Integer companyId = item.getCompany().get();
|
|
CompanyVo company = getCompanyService().findById(companyId);
|
|
CompanyWindowController.show(company, getTableView().getScene().getWindow());
|
|
}
|
|
}
|