package com.zzg.mybatis.generator.controller; import com.zzg.mybatis.generator.model.GeneratorConfig; import com.zzg.mybatis.generator.util.ConfigHelper; import com.zzg.mybatis.generator.view.AlertUtil; import javafx.collections.FXCollections; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.TableCell; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.layout.HBox; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.net.URL; import java.util.List; import java.util.ResourceBundle; /** * 管理GeneratorConfig的Controller * * Created by Owen on 8/21/16. */ public class GeneratorConfigController extends BaseFXController { private static final Logger _LOG = LoggerFactory.getLogger(GeneratorConfigController.class); @FXML private TableView<GeneratorConfig> configTable; @FXML private TableColumn nameColumn; @FXML private TableColumn opsColumn; private MainUIController mainUIController; private GeneratorConfigController controller; @Override public void initialize(URL location, ResourceBundle resources) { controller = this; nameColumn.setCellValueFactory(new PropertyValueFactory<>("name")); // 自定义操作列 opsColumn.setCellValueFactory(new PropertyValueFactory<>("name")); opsColumn.setCellFactory(cell -> { return new TableCell() { @Override protected void updateItem(Object item, boolean empty) { super.updateItem(item, empty); if (item == null || empty) { setText(null); setGraphic(null); } else { Button btn1 = new Button("应用"); Button btn2 = new Button("删除"); HBox hBox = new HBox(); hBox.setSpacing(10); hBox.getChildren().add(btn1); hBox.getChildren().add(btn2); btn1.setOnAction(event -> { try { // 应用配置 GeneratorConfig generatorConfig = ConfigHelper.loadGeneratorConfig(item.toString()); mainUIController.setGeneratorConfigIntoUI(generatorConfig); controller.closeDialogStage(); } catch (Exception e) { AlertUtil.showErrorAlert(e.getMessage()); } }); btn2.setOnAction(event -> { try { // 删除配置 _LOG.debug("item: {}", item); ConfigHelper.deleteGeneratorConfig(item.toString()); refreshTableView(); } catch (Exception e) { AlertUtil.showErrorAlert(e.getMessage()); } }); setGraphic(hBox); } } }; }); refreshTableView(); } public void refreshTableView() { try { List<GeneratorConfig> configs = ConfigHelper.loadGeneratorConfigs(); configTable.setItems(FXCollections.observableList(configs)); } catch (Exception e) { AlertUtil.showErrorAlert(e.getMessage()); } } void setMainUIController(MainUIController mainUIController) { this.mainUIController = mainUIController; } }