package xyz.wbsite.dbtool.javafx.ctrl; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.CheckBox; import javafx.scene.control.TableView; import javafx.scene.control.TreeView; import javafx.scene.layout.Pane; import javafx.stage.DirectoryChooser; import javafx.stage.Stage; import xyz.wbsite.dbtool.javafx.JavaFxApplication; import xyz.wbsite.dbtool.javafx.enumeration.DataBase; import xyz.wbsite.dbtool.javafx.listener.GenerateOptionListener; import xyz.wbsite.dbtool.javafx.manger.ManagerFactory; import xyz.wbsite.dbtool.javafx.manger.ProjectManager; import xyz.wbsite.dbtool.javafx.po.Project; import xyz.wbsite.dbtool.javafx.tool.Dialog; import java.io.File; public class MainController { private ProjectManager dBmanger = ManagerFactory.getdBManager(); @FXML private TreeView dbtree; @FXML private Pane detail; @FXML private TableView feilds; @FXML private Button add; @FXML private Button sub; @FXML private CheckBox addSysFields; private JavaFxApplication main; public ProjectManager getdBmanger() { return dBmanger; } public void setdBmanger(ProjectManager dBmanger) { this.dBmanger = dBmanger; } public JavaFxApplication getMain() { return main; } public void setMain(JavaFxApplication main) { this.main = main; } public Button getAdd() { return add; } public void setAdd(Button add) { this.add = add; } public Button getSub() { return sub; } public CheckBox getAddSysFields() { return addSysFields; } public void setAddSysFields(CheckBox addSysFields) { this.addSysFields = addSysFields; } public void setSub(Button sub) { this.sub = sub; } public TableView getFeilds() { return feilds; } public void setFeilds(TableView feilds) { this.feilds = feilds; } public TreeView getDbtree() { return dbtree; } public void setDbtree(TreeView dbtree) { this.dbtree = dbtree; } public Pane getDetail() { return detail; } public void setDetail(Pane detail) { this.detail = detail; } @FXML public void showFileChooser(ActionEvent actionEvent) { DirectoryChooser directoryChooser = new DirectoryChooser(); Stage stage = new Stage(); File file = directoryChooser.showDialog(stage); if (file != null && file.exists()) { dBmanger.setPath(file.getAbsolutePath()); dBmanger.invalidate(); main.loadingProjectTree(); System.out.println(file.getAbsolutePath()); } } public boolean doSave(ActionEvent actionEvent) { if (dBmanger.getPath() == null || "".equals(dBmanger.getPath())) { DirectoryChooser directoryChooser = new DirectoryChooser(); Stage stage = new Stage(); File file = directoryChooser.showDialog(stage); if (file == null) { return false; } dBmanger.setPath(file.getAbsolutePath()); System.out.println(file.getAbsolutePath()); } dBmanger.save(); System.out.println("自动保存成功"); return true; } @FXML public void save(ActionEvent actionEvent) { doSave(actionEvent); } @FXML public void saveAs(ActionEvent actionEvent) { DirectoryChooser directoryChooser = new DirectoryChooser(); Stage stage = new Stage(); File file = directoryChooser.showDialog(stage); if (file != null) { dBmanger.setPath(file.getAbsolutePath()); dBmanger.save(); } } @FXML public void clear(ActionEvent actionEvent) { Project project = dBmanger.getProject(); project = new Project(); } @FXML public void showConnectInfo(ActionEvent actionEvent) { Dialog.showDBConnectInput(); } @FXML public void generate(ActionEvent actionEvent) { if (!this.doSave(null)) { return; } if (dBmanger.doCheck()) { DirectoryChooser directoryChooser = new DirectoryChooser(); directoryChooser.setInitialDirectory(new File(dBmanger.getPath())); Stage stage = new Stage(); File file = directoryChooser.showDialog(stage); if (file != null) { //展示生成方式 Dialog.showGenerateOption(new GenerateOptionListener() { @Override public void onGenerate(String option, DataBase dataBase) { System.out.println("生成目录:" + file.getAbsolutePath()); dBmanger.generate(file.getAbsolutePath(), option, dataBase); } }); } } } @FXML public void generateApi(ActionEvent actionEvent) { Dialog.showApi(); } }