diff --git a/pom.xml b/pom.xml
index 756d610..26abf17 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,11 +3,20 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
+ 1S Corrector
ru.dmitriymx
corrector-1s
+ jar
1.0-SNAPSHOT
+
+
+ DmitriyMX
+ dmiriymx@yandex.ru
+
+
+
UTF-8
1.8
@@ -45,7 +54,6 @@
poi-ooxml
3.17
-
@@ -70,13 +78,16 @@
+
maven-assembly-plugin
2.2-beta-5
+ ${project.artifactId}-${project.version}
+ false
- ru.dmitriymx.Main
+ ru.dmitriymx.corrector1s.Main
@@ -86,5 +97,4 @@
-
-
\ No newline at end of file
+
diff --git a/src/main/java/ru/dmitriymx/corrector1s/Main.java b/src/main/java/ru/dmitriymx/corrector1s/Main.java
index a564605..652446f 100644
--- a/src/main/java/ru/dmitriymx/corrector1s/Main.java
+++ b/src/main/java/ru/dmitriymx/corrector1s/Main.java
@@ -1,6 +1,7 @@
package ru.dmitriymx.corrector1s;
import lombok.extern.slf4j.Slf4j;
+import ru.dmitriymx.corrector1s.gui.MainApp;
import java.io.File;
import java.util.List;
@@ -8,14 +9,18 @@ import java.util.List;
@Slf4j
public class Main {
public static void main(String[] args) throws Exception {
- File file = new File(args[0]);
- File file1 = new File(args[1]);
+ if (args.length == 0) {
+ MainApp.main(args);
+ } else {
+ File file = new File(args[0]);
+ File file1 = new File(args[1]);
- ExcelReader excelReader = new ExcelReader(file);
- List data = excelReader.getData();
- excelReader.correctStyle();
- excelReader.correctData(data);
- excelReader.insertNewCols();
- excelReader.save(file1);
+ ExcelReader excelReader = new ExcelReader(file);
+ List data = excelReader.getData();
+ excelReader.correctStyle();
+ excelReader.correctData(data);
+ excelReader.insertNewCols();
+ excelReader.save(file1);
+ }
}
}
diff --git a/src/main/java/ru/dmitriymx/corrector1s/gui/MainApp.java b/src/main/java/ru/dmitriymx/corrector1s/gui/MainApp.java
new file mode 100644
index 0000000..2351197
--- /dev/null
+++ b/src/main/java/ru/dmitriymx/corrector1s/gui/MainApp.java
@@ -0,0 +1,33 @@
+package ru.dmitriymx.corrector1s.gui;
+
+import javafx.application.Application;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Scene;
+import javafx.scene.image.Image;
+import javafx.stage.Stage;
+
+import java.io.IOException;
+
+public class MainApp extends Application {
+
+ public static void main(String[] args) {
+ launch(args);
+ }
+
+ @Override
+ public void start(Stage primaryStage) throws Exception {
+ primaryStage.setTitle("1С корректор (v1.0)");
+ primaryStage.setResizable(false);
+ primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("excel.png")));
+ primaryStage.setScene(loadScene(primaryStage));
+ primaryStage.show();
+ }
+
+ private Scene loadScene(Stage stage) throws IOException {
+ FXMLLoader loader = new FXMLLoader(getClass().getResource("single_layout.fxml"));
+ Scene scene = new Scene(loader.load(), 350-10, 203-10);
+ MainController controller = loader.getController();
+ controller.setStage(stage);
+ return scene;
+ }
+}
diff --git a/src/main/java/ru/dmitriymx/corrector1s/gui/MainController.java b/src/main/java/ru/dmitriymx/corrector1s/gui/MainController.java
new file mode 100644
index 0000000..28c2cce
--- /dev/null
+++ b/src/main/java/ru/dmitriymx/corrector1s/gui/MainController.java
@@ -0,0 +1,107 @@
+package ru.dmitriymx.corrector1s.gui;
+
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
+import javafx.scene.control.*;
+import javafx.scene.layout.Pane;
+import javafx.stage.FileChooser;
+import javafx.stage.Stage;
+
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+public class MainController {
+ private Stage stage;
+ @FXML
+ private TextField sourceFilePath;
+ @FXML
+ private TextField saveAsFilePath;
+ @FXML
+ private CheckBox saveAsCheckBox;
+ @FXML
+ private Button btnSourceFilePath;
+ @FXML
+ private Button btnSaveAsFilePath;
+ @FXML
+ private Pane mainPane;
+ @FXML
+ private Pane waitPane;
+ @FXML
+ private ProgressIndicator progressBar;
+ @FXML
+ private Button btnStartCorrect;
+ @FXML
+ private Spinner gonorar;
+ private SpinnerValueFactory gonorarValueFactory = new SpinnerValueFactory.IntegerSpinnerValueFactory(1, 100, 9);
+
+ private FileChooser buildFileChooser(TextField textField) {
+ FileChooser fileChooser = new FileChooser();
+
+ if (!textField.getText().isEmpty() && Files.exists(Paths.get(textField.getText()))) {
+ File file = new File(textField.getText());
+ if (file.isDirectory()) {
+ fileChooser.setInitialDirectory(file);
+ } else {
+ fileChooser.setInitialDirectory(file.getParentFile());
+ }
+ }
+
+ fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter(
+ "Таблицы Excel (*.xls, *.xlsx)",
+ "*.xls", "*.xlsx"));
+
+ return fileChooser;
+ }
+
+ @FXML
+ public void initialize() {
+ gonorar.setValueFactory(gonorarValueFactory);
+
+ saveAsCheckBox.selectedProperty().addListener((observable, oldValue, newValue) -> {
+ saveAsFilePath.setDisable(!newValue);
+ btnSaveAsFilePath.setDisable(!newValue);
+ });
+
+ btnSourceFilePath.addEventHandler(ActionEvent.ACTION, event -> {
+ File file = buildFileChooser(sourceFilePath).showOpenDialog(stage);
+ if (file != null) {
+ sourceFilePath.setText(file.getAbsolutePath());
+ if (!saveAsCheckBox.selectedProperty().get()) {
+ saveAsFilePath.setText(file.getAbsolutePath());
+ }
+ }
+ });
+
+ btnSaveAsFilePath.addEventHandler(ActionEvent.ACTION,
+ event -> buildFileChooser(saveAsFilePath).showSaveDialog(stage));
+
+ btnStartCorrect.addEventHandler(ActionEvent.ACTION, event -> {
+ mainPane.setDisable(true);
+ mainPane.setOpacity(0.3d);
+ waitPane.setVisible(true);
+ progressBar.setProgress(0d);
+
+ Runnable runnable = () -> {
+ do {
+ try {
+ Thread.sleep(500);
+ } catch (InterruptedException e) {
+ break;
+ }
+ progressBar.setProgress(progressBar.getProgress() + 0.1d);
+ } while (progressBar.getProgress() <= 1.0d);
+
+ waitPane.setVisible(false);
+ mainPane.setOpacity(1.0d);
+ mainPane.setDisable(false);
+ };
+ Thread thread = new Thread(runnable);
+ thread.start();
+ });
+ }
+
+ void setStage(Stage stage) {
+ this.stage = stage;
+ }
+}
diff --git a/src/main/resources/ru/dmitriymx/corrector1s/gui/excel.png b/src/main/resources/ru/dmitriymx/corrector1s/gui/excel.png
new file mode 100644
index 0000000..3b8d353
Binary files /dev/null and b/src/main/resources/ru/dmitriymx/corrector1s/gui/excel.png differ
diff --git a/src/main/resources/ru/dmitriymx/corrector1s/gui/single_layout.fxml b/src/main/resources/ru/dmitriymx/corrector1s/gui/single_layout.fxml
new file mode 100644
index 0000000..734c1aa
--- /dev/null
+++ b/src/main/resources/ru/dmitriymx/corrector1s/gui/single_layout.fxml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+