master
wangbing 6 years ago
parent 4e0cd388e7
commit adf990b519

@ -0,0 +1,79 @@
package xyz.wbsite.dbtool.javafx.ctrl;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
public class AndroidOptionController {
@FXML
private TextField path;
@FXML
private Button selectPath;
@FXML
private TextField name;
@FXML
private TextField packages;
@FXML
private TextField domain;
@FXML
private Button ok;
@FXML
private Button cancel;
public Button getOk() {
return ok;
}
public void setOk(Button ok) {
this.ok = ok;
}
public Button getCancel() {
return cancel;
}
public void setCancel(Button cancel) {
this.cancel = cancel;
}
public TextField getPath() {
return path;
}
public void setPath(TextField path) {
this.path = path;
}
public Button getSelectPath() {
return selectPath;
}
public void setSelectPath(Button selectPath) {
this.selectPath = selectPath;
}
public TextField getName() {
return name;
}
public void setName(TextField name) {
this.name = name;
}
public TextField getPackages() {
return packages;
}
public void setPackages(TextField packages) {
this.packages = packages;
}
public TextField getDomain() {
return domain;
}
public void setDomain(TextField domain) {
this.domain = domain;
}
}

@ -190,4 +190,8 @@ public class MainController {
public void generateApi(ActionEvent actionEvent) {
Dialog.showApi();
}
@FXML
public void generateAndroid(ActionEvent actionEvent) {
Dialog.showAndroid();
}
}

@ -1,5 +1,6 @@
package xyz.wbsite.dbtool.javafx.manger;
import com.sun.org.apache.xpath.internal.operations.And;
import org.springframework.boot.system.ApplicationHome;
import xyz.wbsite.dbtool.javafx.enumeration.DataBase;
import xyz.wbsite.dbtool.javafx.enumeration.FieldType;
@ -281,7 +282,7 @@ public class ProjectManager {
}
public void generateSDK(File module, File sdk, List<Api> apis) {
public void generateApi(File module, File sdk, List<Api> apis) {
if (module.exists()) {
boolean mkdirs = sdk.mkdirs();
File reqList = new File(module.getAbsolutePath() + File.separator + "req");
@ -305,6 +306,10 @@ public class ProjectManager {
}
}
public void generateAndroid(final String path, AndroidOption option){
}
public void invalidate() {
project = xmlService.inflate(path);
}

@ -0,0 +1,7 @@
package xyz.wbsite.dbtool.javafx.po;
public class AndroidOption {
public String projectName;
public String packages;
public String domain;
}

@ -1,6 +1,7 @@
package xyz.wbsite.dbtool.javafx.tool;
import xyz.wbsite.dbtool.Application;
import xyz.wbsite.dbtool.javafx.ctrl.AndroidOptionController;
import xyz.wbsite.dbtool.javafx.ctrl.ConnectInfoController;
import xyz.wbsite.dbtool.javafx.ctrl.GenerateOptionController;
import xyz.wbsite.dbtool.javafx.ctrl.SdkInfoController;
@ -8,6 +9,7 @@ import xyz.wbsite.dbtool.javafx.enumeration.DataBase;
import xyz.wbsite.dbtool.javafx.listener.GenerateOptionListener;
import xyz.wbsite.dbtool.javafx.manger.ProjectManager;
import xyz.wbsite.dbtool.javafx.manger.ManagerFactory;
import xyz.wbsite.dbtool.javafx.po.AndroidOption;
import xyz.wbsite.dbtool.javafx.po.Api;
import xyz.wbsite.dbtool.javafx.po.Module;
import javafx.application.Platform;
@ -350,7 +352,7 @@ public class Dialog {
Stage stage = new Stage();
stage.initModality(Modality.APPLICATION_MODAL);
FXMLLoader dbdetailloader = new FXMLLoader(Application.class.getResource("../../../fxml/api.fxml"));
FXMLLoader dbdetailloader = new FXMLLoader(Application.class.getResource("../../../fxml/apiOption.fxml"));
try {
dbdetailloader.load();
Parent root = dbdetailloader.getRoot();
@ -379,7 +381,7 @@ public class Dialog {
File api = new File(sdkPath.getText());
sdkPath.setText(new File(api.getParentFile().getAbsolutePath(),file.getName()+"-api").getAbsolutePath());
sdkPath.setText(new File(api.getParentFile().getAbsolutePath(), file.getName() + "-api").getAbsolutePath());
System.out.println(file.getAbsolutePath());
@ -399,7 +401,7 @@ public class Dialog {
String text = modulePath.getText();
File moduleFile = new File(text);
sdkPath.setText(new File(file.getAbsolutePath(),moduleFile.getName()+"-api").getAbsolutePath());
sdkPath.setText(new File(file.getAbsolutePath(), moduleFile.getName() + "-api").getAbsolutePath());
System.out.println(file.getAbsolutePath());
}
});
@ -481,7 +483,7 @@ public class Dialog {
sdkPath.setText("");
} else {
modulePath.setText(modul.getAbsolutePath());
sdkPath.setText(new File(f.getParentFile().getAbsolutePath(),modul.getName() + "-api").getAbsolutePath());
sdkPath.setText(new File(f.getParentFile().getAbsolutePath(), modul.getName() + "-api").getAbsolutePath());
break s;
}
@ -497,7 +499,7 @@ public class Dialog {
if (new File(module).exists()) {
Dialog.showProgress("生成中...");
dBmanger.generateSDK(new File(module), new File(sdk), controller.getData());
dBmanger.generateApi(new File(module), new File(sdk), controller.getData());
Dialog.stopPopup();
Platform.runLater(new Runnable() {
@Override
@ -525,6 +527,75 @@ public class Dialog {
}
}
public static void showAndroid() {
FXMLLoader dbdetailloader = new FXMLLoader(Application.class.getResource("../../../fxml/androidOption.fxml"));
try {
dbdetailloader.load();
} catch (IOException e) {
e.printStackTrace();
return;
}
Parent root = dbdetailloader.getRoot();
AndroidOptionController controller = dbdetailloader.getController();
controller.getCancel().setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
stopPopup();
}
});
controller.getOk().setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
ProjectManager dBmanger = ManagerFactory.getdBManager();
DirectoryChooser directoryChooser = new DirectoryChooser();
directoryChooser.setInitialDirectory(new File(dBmanger.getPath()));
Stage stage = new Stage();
File file = directoryChooser.showDialog(stage);
System.out.println("生成目录:" + file.getAbsolutePath());
AndroidOption androidOption = new AndroidOption();
androidOption.projectName = controller.getName().getText();
androidOption.packages = controller.getPackages().getText();
androidOption.domain = controller.getDomain().getText();
dBmanger.generateAndroid(file.getAbsolutePath(), androidOption);
}
});
TextField path = controller.getPath();
controller.getSelectPath().setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
DirectoryChooser directoryChooser = new DirectoryChooser();
Stage stage = new Stage();
File file = directoryChooser.showDialog(stage);
if (file == null) {
return;
}
path.setText(file.getAbsolutePath());
System.out.println(file.getAbsolutePath());
}
});
ProjectManager dBmanger = ManagerFactory.getdBManager();
path.setText(dBmanger.getPath());
popup = new Stage();
popup.initModality(Modality.APPLICATION_MODAL);
Scene scene = new Scene(root);
popup.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
stopPopup();
}
});
popup.setScene(scene);
popup.setTitle("配置");
popup.show();
}
private static void check(SdkInfoController controller, boolean check, String key) {
for (Api api : controller.getData()) {
if (api.getMethod().endsWith(key) || (key.equals(".api.") && api.getMethod().contains(".api."))) {

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<BorderPane fx:controller="xyz.wbsite.dbtool.javafx.ctrl.AndroidOptionController" prefHeight="250.0" prefWidth="600.0"
xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1">
<center>
<GridPane prefHeight="210.0" prefWidth="600.0" BorderPane.alignment="CENTER">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="295.0" minWidth="10.0" prefWidth="90.0"/>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="496.0" minWidth="10.0" prefWidth="425.0"/>
<ColumnConstraints hgrow="SOMETIMES" maxWidth="496.0" minWidth="10.0" prefWidth="88.0"/>
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="40.0" minHeight="40.0" prefHeight="40.0" vgrow="SOMETIMES"/>
<RowConstraints maxHeight="40.0" minHeight="40.0" prefHeight="40.0" vgrow="SOMETIMES"/>
<RowConstraints maxHeight="40.0" minHeight="40.0" prefHeight="40.0" vgrow="SOMETIMES"/>
<RowConstraints maxHeight="40.0" minHeight="40.0" prefHeight="40.0" vgrow="SOMETIMES"/>
</rowConstraints>
<children>
<Label text="生成路径" GridPane.halignment="CENTER" GridPane.rowIndex="0" GridPane.valignment="CENTER"/>
<TextField GridPane.columnIndex="1" fx:id="path" GridPane.rowIndex="0"/>
<Button mnemonicParsing="false" fx:id="selectPath" text="选择路径" GridPane.columnIndex="2" GridPane.halignment="CENTER"
GridPane.rowIndex="0" GridPane.valignment="CENTER"/>
<Label text="项目名称" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="CENTER"/>
<TextField GridPane.columnIndex="1" fx:id="name" text="Example-android" GridPane.rowIndex="1"/>
<Label text="package" GridPane.halignment="CENTER" GridPane.rowIndex="2" GridPane.valignment="CENTER"/>
<TextField GridPane.columnIndex="1" fx:id="packages" text="com.example.android" GridPane.rowIndex="2"/>
<Label text="domain" GridPane.halignment="CENTER" GridPane.rowIndex="3" GridPane.valignment="CENTER"/>
<TextField GridPane.columnIndex="1" fx:id="domain" text="com.example" GridPane.rowIndex="3"/>
</children>
<opaqueInsets>
<Insets/>
</opaqueInsets>
</GridPane>
</center>
<bottom>
<Pane prefHeight="40.0" prefWidth="600.0" BorderPane.alignment="CENTER">
<children>
<Button layoutX="230.0" layoutY="9.0" mnemonicParsing="false" text="确认" fx:id="ok"/>
<Button layoutX="350.0" layoutY="9.0" mnemonicParsing="false" text="取消" fx:id="cancel"/>
</children>
</Pane>
</bottom>
</BorderPane>

@ -17,7 +17,8 @@
<MenuItem mnemonicParsing="false" onAction="#showFileChooser" text="打开"/>
<MenuItem mnemonicParsing="false" onAction="#showConnectInfo" text="数据库导入"/>
<MenuItem mnemonicParsing="false" onAction="#generate" text="生成代码"/>
<MenuItem mnemonicParsing="false" onAction="#generateApi" text="生成api"/>
<MenuItem mnemonicParsing="false" onAction="#generateApi" text="生成Api"/>
<MenuItem mnemonicParsing="false" onAction="#generateAndroid" text="生成Android"/>
</items>
</Menu>
<Menu mnemonicParsing="false" text="Help">

Loading…
Cancel
Save

Powered by TurnKey Linux.