add login and verify code dialogs
This commit is contained in:
@@ -0,0 +1,60 @@
|
|||||||
|
package ru.trader.controllers;
|
||||||
|
|
||||||
|
import javafx.application.Platform;
|
||||||
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.scene.Node;
|
||||||
|
import javafx.scene.Parent;
|
||||||
|
import javafx.scene.control.*;
|
||||||
|
import javafx.util.Pair;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import ru.trader.view.support.Localization;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
|
||||||
|
public class LoginController {
|
||||||
|
private final static Logger LOG = LoggerFactory.getLogger(LoginController.class);
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private TextField email;
|
||||||
|
@FXML
|
||||||
|
private PasswordField password;
|
||||||
|
|
||||||
|
private Dialog<Pair<String, String>> dialog;
|
||||||
|
|
||||||
|
private void createDialog(Parent owner, Parent content){
|
||||||
|
dialog = new Dialog<>();
|
||||||
|
if (owner != null) dialog.initOwner(owner.getScene().getWindow());
|
||||||
|
dialog.setTitle(Localization.getString("login.title"));
|
||||||
|
dialog.setHeaderText(Localization.getString("login.header"));
|
||||||
|
dialog.getDialogPane().setContent(content);
|
||||||
|
ButtonType loginButtonType = new ButtonType(Localization.getString("login.text.login"), ButtonBar.ButtonData.OK_DONE);
|
||||||
|
dialog.getDialogPane().getButtonTypes().addAll(loginButtonType, ButtonType.CANCEL);
|
||||||
|
Node loginButton = dialog.getDialogPane().lookupButton(loginButtonType);
|
||||||
|
loginButton.setDisable(true);
|
||||||
|
email.textProperty().addListener((observable, oldValue, newValue) -> {
|
||||||
|
loginButton.setDisable(newValue.trim().isEmpty());
|
||||||
|
});
|
||||||
|
dialog.setResultConverter(dialogButton -> {
|
||||||
|
if (dialogButton == loginButtonType) {
|
||||||
|
return new Pair<>(email.getText(), password.getText());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void clear(){
|
||||||
|
password.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Optional<Pair<String, String>> showDialog(Parent parent, Parent content){
|
||||||
|
if (dialog == null){
|
||||||
|
createDialog(parent, content);
|
||||||
|
}
|
||||||
|
Platform.runLater(email::requestFocus);
|
||||||
|
Optional<Pair<String, String>> result = dialog.showAndWait();
|
||||||
|
clear();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,7 +5,9 @@ import javafx.fxml.FXMLLoader;
|
|||||||
import javafx.scene.Node;
|
import javafx.scene.Node;
|
||||||
import javafx.scene.Parent;
|
import javafx.scene.Parent;
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
|
import javafx.scene.control.TextInputDialog;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
|
import javafx.util.Pair;
|
||||||
import org.controlsfx.control.action.Action;
|
import org.controlsfx.control.action.Action;
|
||||||
import org.controlsfx.dialog.Dialogs;
|
import org.controlsfx.dialog.Dialogs;
|
||||||
import ru.trader.EMDNUpdater;
|
import ru.trader.EMDNUpdater;
|
||||||
@@ -30,6 +32,7 @@ public class Screeners {
|
|||||||
private static Parent filterScreen;
|
private static Parent filterScreen;
|
||||||
private static Parent itemAddScreen;
|
private static Parent itemAddScreen;
|
||||||
private static Parent groupAddScreen;
|
private static Parent groupAddScreen;
|
||||||
|
private static Parent loginScreen;
|
||||||
|
|
||||||
private static MainController mainController;
|
private static MainController mainController;
|
||||||
private static ItemDescController itemDescController;
|
private static ItemDescController itemDescController;
|
||||||
@@ -41,6 +44,7 @@ public class Screeners {
|
|||||||
private static FilterController filterController;
|
private static FilterController filterController;
|
||||||
private static ItemAddController itemAddController;
|
private static ItemAddController itemAddController;
|
||||||
private static GroupAddController groupAddController;
|
private static GroupAddController groupAddController;
|
||||||
|
private static LoginController loginController;
|
||||||
|
|
||||||
private static FXMLLoader initLoader(URL url){
|
private static FXMLLoader initLoader(URL url){
|
||||||
FXMLLoader loader = new FXMLLoader(url, Localization.getResources());
|
FXMLLoader loader = new FXMLLoader(url, Localization.getResources());
|
||||||
@@ -132,6 +136,13 @@ public class Screeners {
|
|||||||
groupAddController = loader.getController();
|
groupAddController = loader.getController();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void loadLoginStage(URL fxml) throws IOException {
|
||||||
|
FXMLLoader loader = initLoader(fxml);
|
||||||
|
loginScreen = loader.load();
|
||||||
|
addStylesheet(loginScreen);
|
||||||
|
loginController = loader.getController();
|
||||||
|
}
|
||||||
|
|
||||||
public static void show(Node node){
|
public static void show(Node node){
|
||||||
mainController.getMainPane().setCenter(node);
|
mainController.getMainPane().setCenter(node);
|
||||||
}
|
}
|
||||||
@@ -158,7 +169,7 @@ public class Screeners {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void showAddStation(SystemModel system){
|
public static void showAddStation(SystemModel system){
|
||||||
vEditorController.showDialog(mainScreen, vEditorScreen, system, null);
|
vEditorController.showDialog(mainScreen, vEditorScreen, system);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void showEditStation(StationModel station){
|
public static void showEditStation(StationModel station){
|
||||||
@@ -209,6 +220,25 @@ public class Screeners {
|
|||||||
return filterController.showDialog(mainScreen, filterScreen, filter);
|
return filterController.showDialog(mainScreen, filterScreen, filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Optional<Pair<String, String>> showLogin() {
|
||||||
|
return loginController.showDialog(mainScreen, loginScreen);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Optional<String> showVerifyCodeDialog(){
|
||||||
|
return showTextDialog(Localization.getString("verify.title"),
|
||||||
|
Localization.getString("verify.header"),
|
||||||
|
Localization.getString("verify.content")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Optional<String> showTextDialog(String title, String header, String content){
|
||||||
|
TextInputDialog dialog = new TextInputDialog();
|
||||||
|
dialog.setTitle(title);
|
||||||
|
dialog.setHeaderText(header);
|
||||||
|
dialog.setContentText(content);
|
||||||
|
return dialog.showAndWait();
|
||||||
|
}
|
||||||
|
|
||||||
public static void reinitAll() {
|
public static void reinitAll() {
|
||||||
mainController.init();
|
mainController.init();
|
||||||
systemsEditorController.init();
|
systemsEditorController.init();
|
||||||
|
|||||||
@@ -153,4 +153,16 @@ analyzer.crawler.stage.search=Search routes from %s to %s
|
|||||||
search.text.from=From:
|
search.text.from=From:
|
||||||
search.text.item=Commodity:
|
search.text.item=Commodity:
|
||||||
search.text.distance=Distance \nto station(Ls):
|
search.text.distance=Distance \nto station(Ls):
|
||||||
search.button.find=Find
|
search.button.find=Find
|
||||||
|
|
||||||
|
# login.fxml
|
||||||
|
login.title=Login to Elite:Dangerous Companion
|
||||||
|
login.header=Enter your email and password for login to Elite:Dangerous companion
|
||||||
|
login.text.login=Login
|
||||||
|
login.text.email=Email:
|
||||||
|
login.text.password=Password:
|
||||||
|
|
||||||
|
#verify code dialog
|
||||||
|
verify.title=Check verification code
|
||||||
|
verify.header=The verification code has now been sent to the email address associated with your Elite account. Please enter the code into the box below.
|
||||||
|
verify.content=Confirmation code:
|
||||||
@@ -154,4 +154,16 @@ analyser.finish=\u0413\u043E\u0442\u043E\u0432\u043E
|
|||||||
search.text.from=\u041E\u0442:
|
search.text.from=\u041E\u0442:
|
||||||
search.text.item=\u0422\u043E\u0432\u0430\u0440:
|
search.text.item=\u0422\u043E\u0432\u0430\u0440:
|
||||||
search.text.distance=\u0414\u0438\u0441\u0442\u0430\u043D\u0446\u0438\u044F \n\u0434\u043E \u0441\u0442\u0430\u043D\u0446\u0438\u0438(Ls):
|
search.text.distance=\u0414\u0438\u0441\u0442\u0430\u043D\u0446\u0438\u044F \n\u0434\u043E \u0441\u0442\u0430\u043D\u0446\u0438\u0438(Ls):
|
||||||
search.button.find=\u041D\u0430\u0439\u0442\u0438
|
search.button.find=\u041D\u0430\u0439\u0442\u0438
|
||||||
|
|
||||||
|
# login.fxml
|
||||||
|
login.title=\u0412\u0445\u043E\u0434 \u0432 Elite:Dangerous Companion
|
||||||
|
login.header=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0430\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B \u0438 \u043F\u0430\u0440\u043E\u043B\u044C \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0430 \u0432 Elite:Dangerous Companion
|
||||||
|
login.text.login=\u0412\u043E\u0439\u0442\u0438
|
||||||
|
login.text.email=Email:
|
||||||
|
login.text.password=\u041F\u0430\u0440\u043E\u043B\u044C:
|
||||||
|
|
||||||
|
#verify code dialog
|
||||||
|
verify.title=\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043A\u043E\u0434\u0430 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u0438
|
||||||
|
verify.header=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0434 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u0438, \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0439 Frontier \u043D\u0430 \u0432\u0430\u0448\u0443 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0443\u044E \u043F\u043E\u0447\u0442\u0443
|
||||||
|
verify.content=\u041A\u043E\u0434 \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u0438:
|
||||||
12
client/src/main/resources/view/login.fxml
Normal file
12
client/src/main/resources/view/login.fxml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?import javafx.scene.control.Label?>
|
||||||
|
<?import javafx.scene.control.PasswordField?>
|
||||||
|
<?import javafx.scene.control.TextField?>
|
||||||
|
<?import javafx.scene.layout.*?>
|
||||||
|
<GridPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
|
||||||
|
fx:controller="ru.trader.controllers.LoginController">
|
||||||
|
<Label text="%login.text.email"/>
|
||||||
|
<TextField fx:id="email" GridPane.columnIndex="1" promptText="%login.text.email"/>
|
||||||
|
<Label text="%login.text.password" GridPane.rowIndex="1"/>
|
||||||
|
<PasswordField fx:id="password" GridPane.columnIndex="1" GridPane.rowIndex="1" promptText="%login.text.password"/>
|
||||||
|
</GridPane>
|
||||||
|
|
||||||
Reference in New Issue
Block a user