diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/ctrl/AndroidOptionController.java b/src/main/java/xyz/wbsite/dbtool/javafx/ctrl/AndroidOptionController.java index 24a7eaec..d2db54bd 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/ctrl/AndroidOptionController.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/ctrl/AndroidOptionController.java @@ -6,10 +6,6 @@ import javafx.scene.control.TextField; public class AndroidOptionController { - @FXML - private TextField path; - @FXML - private Button selectPath; @FXML private TextField name; @FXML @@ -37,22 +33,6 @@ public class AndroidOptionController { 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; } diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/manger/ProjectManager.java b/src/main/java/xyz/wbsite/dbtool/javafx/manger/ProjectManager.java index 1190a0a3..8db00b29 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/manger/ProjectManager.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/manger/ProjectManager.java @@ -1,6 +1,5 @@ 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; @@ -282,46 +281,59 @@ public class ProjectManager { }.start(); } - public void generateApi(File module, File sdk, List apis) { if (module.exists()) { - boolean mkdirs = sdk.mkdirs(); - File reqList = new File(module.getAbsolutePath() + File.separator + "req"); - File rspList = new File(module.getAbsolutePath() + File.separator + "rsp"); - File entList = new File(module.getAbsolutePath() + File.separator + "ent"); - File enumsList = new File(module.getAbsolutePath() + File.separator + "enums"); - SDKCallable sdkCallable = new SDKCallable(sdk, reqList, rspList, entList, enumsList, apis); - Future submit = service.submit(sdkCallable); - try { - Boolean b = (Boolean) submit.get(); - if (!b) { - Dialog.showError("请确认目录结构是否存在或正确!"); - } - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (ExecutionException e) { - e.printStackTrace(); - } + Dialog.showProgress("生成中..."); + new Thread() { + @Override + public void run() { + boolean mkdirs = sdk.mkdirs(); + File reqList = new File(module.getAbsolutePath() + File.separator + "req"); + File rspList = new File(module.getAbsolutePath() + File.separator + "rsp"); + File entList = new File(module.getAbsolutePath() + File.separator + "ent"); + File enumsList = new File(module.getAbsolutePath() + File.separator + "enums"); + SDKCallable sdkCallable = new SDKCallable(sdk, reqList, rspList, entList, enumsList, apis); + Future submit = service.submit(sdkCallable); + try { + Boolean b = (Boolean) submit.get(); + if (!b) { + Dialog.showError("请确认目录结构是否存在或正确!"); + } + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (ExecutionException e) { + e.printStackTrace(); + } - Dialog.showSuccess("Api生成完成."); + Dialog.stopPopup(); + Dialog.showSuccess("Api生成完成."); + } + }.start(); } } public void generateAndroid(final String path, AndroidOption option) { - AndroidCallable androidCallable = new AndroidCallable(path, option); - Future submit = service.submit(androidCallable); - try { - Boolean b = (Boolean) submit.get(); - if (!b) { - Dialog.showError("请确认目录结构是否存在或正确!"); - } - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (ExecutionException e) { - e.printStackTrace(); - } + Dialog.showProgress("生成中..."); + new Thread() { + @Override + public void run() { + AndroidCallable androidCallable = new AndroidCallable(path, option); + Future submit = service.submit(androidCallable); + try { + Boolean b = (Boolean) submit.get(); + if (!b) { + Dialog.showError("请确认目录结构是否存在或正确!"); + } + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (ExecutionException e) { + e.printStackTrace(); + } - Dialog.showSuccess("Android生成完成."); + Dialog.stopPopup(); + Dialog.showSuccess("Android生成完成."); + } + }.start(); } public void invalidate() { diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/AndroidCallable.java b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/AndroidCallable.java index a352824c..98b9c6bd 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/AndroidCallable.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/AndroidCallable.java @@ -50,7 +50,7 @@ public class AndroidCallable implements Callable { main.mkdirs(); File java = new File(main, "java"); java.mkdirs(); - File res = new File(src, "res"); + File res = new File(main, "res"); res.mkdirs(); File domain = new File(java.getAbsolutePath() + File.separator + option.domain.replaceAll("\\.", Matcher.quoteReplacement(File.separator))); domain.mkdirs(); @@ -64,6 +64,22 @@ public class AndroidCallable implements Callable { util.mkdirs(); File fragment = new File(domain, "fragment"); fragment.mkdirs(); + File drawable = new File(res, "drawable"); + drawable.mkdirs(); + File layout = new File(res, "layout"); + layout.mkdirs(); + File mipmap_hdpi = new File(res, "mipmap-hdpi"); + mipmap_hdpi.mkdirs(); + File mipmap_mdpi = new File(res, "mipmap-mdpi"); + mipmap_mdpi.mkdirs(); + File mipmap_xhdpi = new File(res, "mipmap-xhdpi"); + mipmap_xhdpi.mkdirs(); + File mipmap_xxhdpi = new File(res, "mipmap-xxhdpi"); + mipmap_xxhdpi.mkdirs(); + File mipmap_xxxhdpi = new File(res, "mipmap-xxxhdpi"); + mipmap_xxxhdpi.mkdirs(); + File values = new File(res, "values"); + values.mkdirs(); { Tool.outputResource("Android/.gitignore", new File(project, ".gitignore")); @@ -75,7 +91,7 @@ public class AndroidCallable implements Callable { HashMap ctx = new HashMap(); ctx.put("package", option.packages); freeMarkerManager.outputTemp(new File(app, "build.gradle"), "Android/app/build.gradles", ctx); - Tool.outputResource("Android/app/proguard-rules.pro", new File(app, "build.gradle")); + Tool.outputResource("Android/app/proguard-rules.pro", new File(app, "proguard-rules.pro")); } { @@ -85,7 +101,6 @@ public class AndroidCallable implements Callable { freeMarkerManager.outputTemp(new File(main, "AndroidManifest.xml"), "Android/app/src/main/AndroidManifest.xml", ctx); } - { HashMap ctx = new HashMap(); ctx.put("package", option.packages); @@ -139,10 +154,37 @@ public class AndroidCallable implements Callable { HashMap ctx = new HashMap(); ctx.put("package", option.packages); ctx.put("domain", option.domain); - freeMarkerManager.outputTemp(new File(fragment, "LoginFragment.java"), "Android/app/src/main/java/fragment/LoginFragment.java", ctx); freeMarkerManager.outputTemp(new File(fragment, "MainFragment.java"), "Android/app/src/main/java/fragment/MainFragment.java", ctx); } + { + Tool.outputResource("Android/app/src/main/res/drawable/background.xml", new File(drawable, "background.xml")); + Tool.outputResource("Android/app/src/main/res/drawable/icon_logo.png", new File(drawable, "icon_logo.png")); + Tool.outputResource("Android/app/src/main/res/drawable/icon_password.png", new File(drawable, "icon_password.png")); + Tool.outputResource("Android/app/src/main/res/drawable/icon_username.png", new File(drawable, "icon_username.png")); + + Tool.outputResource("Android/app/src/main/res/layout/activity_qrcode.xml", new File(layout, "activity_qrcode.xml")); + Tool.outputResource("Android/app/src/main/res/layout/fragment.xml", new File(layout, "fragment.xml")); + Tool.outputResource("Android/app/src/main/res/layout/fragment_main.xml", new File(layout, "fragment_main.xml")); + + Tool.outputResource("Android/app/src/main/res/mipmap-mdpi/ic_launcher.png", new File(mipmap_mdpi, "ic_launcher.png")); + Tool.outputResource("Android/app/src/main/res/mipmap-mdpi/ic_launcher.png", new File(mipmap_mdpi, "ic_launcher_round.png")); + Tool.outputResource("Android/app/src/main/res/mipmap-hdpi/ic_launcher.png", new File(mipmap_hdpi, "ic_launcher.png")); + Tool.outputResource("Android/app/src/main/res/mipmap-hdpi/ic_launcher.png", new File(mipmap_hdpi, "ic_launcher_round.png")); + Tool.outputResource("Android/app/src/main/res/mipmap-xhdpi/ic_launcher.png", new File(mipmap_xhdpi, "ic_launcher.png")); + Tool.outputResource("Android/app/src/main/res/mipmap-xhdpi/ic_launcher.png", new File(mipmap_xhdpi, "ic_launcher_round.png")); + Tool.outputResource("Android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png", new File(mipmap_xxhdpi, "ic_launcher.png")); + Tool.outputResource("Android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png", new File(mipmap_xxhdpi, "ic_launcher_round.png")); + Tool.outputResource("Android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png", new File(mipmap_xxxhdpi, "ic_launcher.png")); + Tool.outputResource("Android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png", new File(mipmap_xxxhdpi, "ic_launcher_round.png")); + + Tool.outputResource("Android/app/src/main/res/values/attrs.xml", new File(values, "attrs.xml")); + Tool.outputResource("Android/app/src/main/res/values/colors.xml", new File(values, "colors.xml")); + Tool.outputResource("Android/app/src/main/res/values/dimens.xml", new File(values, "dimens.xml")); + Tool.outputResource("Android/app/src/main/res/values/ids.xml", new File(values, "ids.xml")); + Tool.outputResource("Android/app/src/main/res/values/strings.xml", new File(values, "strings.xml")); + Tool.outputResource("Android/app/src/main/res/values/styles.xml", new File(values, "styles.xml")); + } System.out.println("finish"); return true; diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/tool/Dialog.java b/src/main/java/xyz/wbsite/dbtool/javafx/tool/Dialog.java index 1bc1b1cf..418fae16 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/tool/Dialog.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/tool/Dialog.java @@ -557,8 +557,8 @@ public class Dialog { androidOption.projectName = controller.getName().getText(); androidOption.packages = controller.getPackages().getText(); androidOption.domain = controller.getDomain().getText(); + dBmanger.generateAndroid(file.getAbsolutePath(), androidOption); - Dialog.stopPopup(); Platform.runLater(new Runnable() { @Override public void run() { @@ -567,25 +567,6 @@ public class Dialog { }); } }); - TextField path = controller.getPath(); - controller.getSelectPath().setOnAction(new EventHandler() { - @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); diff --git a/src/main/resources/fxml/androidOption.fxml b/src/main/resources/fxml/androidOption.fxml index e70580b8..89494455 100644 --- a/src/main/resources/fxml/androidOption.fxml +++ b/src/main/resources/fxml/androidOption.fxml @@ -2,35 +2,29 @@ -
- + - - - + + - -