Untitled
unknown
plain_text
3 years ago
12 kB
12
Indexable
package cookbook.controller;
import javafx.animation.FadeTransition;
import javafx.animation.Interpolator;
import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.Parent;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.image.ImageView;
import javafx.scene.input.KeyCode;
import javafx.scene.layout.AnchorPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.util.Duration;
public class CardsModifyDeleteUserController {
@FXML
private Circle circlePicture;
@FXML
private ImageView imageProfile;
@FXML
private Label nameLabel;
@FXML
private Label emailLabel;
@FXML
private Label passwordLabel;
@FXML
private TextField nameField;
@FXML
private TextField emailField;
@FXML
private TextField passwordField;
@FXML
private Circle redCircle;
@FXML
private Circle hoverCircle;
@FXML
private ImageView deleteImage;
String nameT = "";
String emailT = "";
String passwordT = "";
public void initialize() {
//ImageView profilePicture = new ImageView(new Image("images/1619378021617.jpg"));
Circle cercle = new Circle(19, 22, 18, Color.RED);
imageProfile.setClip(cercle);
// Name label and textField
nameField.setEditable(false);
nameField.setVisible(false);
nameLabel.setVisible(true);
nameLabel.setText(nameT);
// Email label and textField
emailField.setEditable(false);
emailField.setVisible(false);
emailLabel.setVisible(true);
emailLabel.setText(emailT);
// Password label and textField
passwordField.setEditable(false);
passwordField.setVisible(false);
passwordLabel.setVisible(true);
passwordLabel.setText(passwordT);
// click name
String name = nameLabel.getText();
nameLabel.setOnMouseClicked(eName -> {
clickedName(null, name);
});
// click email
String email = emailLabel.getText();
emailLabel.setOnMouseClicked(eEmail -> {
clickedEmail(null, email);
});
// click password
String passwordFi = passwordLabel.getText();
StringBuilder hidden = new StringBuilder(passwordFi.length());
for (int i = 0; i < passwordFi.length(); i++) {
hidden.append("*");
}
passwordLabel.setText(hidden.toString());
passwordLabel.setOnMouseClicked(ePassword -> {
clickedPassword(null, hidden.toString());
});
// This is the hoover for when the mouse is on the round
Interpolator interpolator = Interpolator.SPLINE(0.25, 0.1, 0.25, 1);
hoverCircle.setOnMouseEntered(onmouse -> {
Timeline growDeleteImageX = new Timeline (
new KeyFrame(Duration.ZERO, new KeyValue(deleteImage.scaleXProperty(), 0)),
new KeyFrame(Duration.millis(200), new KeyValue(deleteImage.scaleXProperty(), 3, interpolator))
);
growDeleteImageX.play();
Timeline growDeleteImageY = new Timeline (
new KeyFrame(Duration.ZERO, new KeyValue(deleteImage.scaleYProperty(), 0)),
new KeyFrame(Duration.millis(200), new KeyValue(deleteImage.scaleYProperty(), 3, interpolator))
);
growDeleteImageY.play();
FadeTransition fadeSmallDot = new FadeTransition(Duration.millis(100), redCircle);
fadeSmallDot.setFromValue(1);
fadeSmallDot.setToValue(0);
fadeSmallDot.play();
});
// This is the animation for when the mouse exists the round
hoverCircle.setOnMouseExited(onmouse -> {
Timeline shrinkDeleteImageX = new Timeline (
new KeyFrame(Duration.ZERO, new KeyValue(deleteImage.scaleXProperty(), 3)),
new KeyFrame(Duration.millis(200), new KeyValue(deleteImage.scaleXProperty(), 0, interpolator))
);
shrinkDeleteImageX.play();
Timeline shrinkDeleteImageY = new Timeline (
new KeyFrame(Duration.ZERO, new KeyValue(deleteImage.scaleYProperty(), 3)),
new KeyFrame(Duration.millis(200), new KeyValue(deleteImage.scaleYProperty(), 0, interpolator))
);
shrinkDeleteImageY.play();
FadeTransition fadeSmallDot = new FadeTransition(Duration.millis(100), redCircle);
fadeSmallDot.setFromValue(0);
fadeSmallDot.setToValue(1);
fadeSmallDot.play();
});
}
public void clickedName(ActionEvent event, String aVoir){
//Kill focus
emailField.setEditable(false);
emailField.setVisible(false);
passwordField.setEditable(false);
passwordField.setVisible(false);
// Show Label
passwordLabel.setVisible(true);
emailLabel.setVisible(true);
nameField.setStyle("-fx-text-box-border: None ; -fx-focus-color: None ;");
nameField.setText(nameT);
nameField.setEditable(true);
nameField.setVisible(true);
nameLabel.setVisible(false);
nameField.setOnKeyPressed(e -> {
if (e.getCode() == KeyCode.ENTER) {
String enteredName = nameField.getText();
nameLabel.setText(enteredName);
nameField.setText(enteredName);
nameT = enteredName;
initialize();
}
});
// When someone clicks outside, the focus exists
Parent rootField = nameField.getScene().getRoot();
rootField.setOnMouseClicked(ev -> {
nameField.setText(nameT);
if (ev.getTarget() != nameField && nameField.isFocused() ) {
String enteredName = nameField.getText();
nameLabel.setText(enteredName);
nameField.setText(enteredName);
nameT = enteredName;
initialize();
}
});
}
public void clickedEmail(ActionEvent event, String aVoir){
// Kill focus
nameField.setEditable(false);
nameField.setVisible(false);
passwordField.setEditable(false);
passwordField.setVisible(false);
// Show Label
nameLabel.setVisible(true);
passwordLabel.setVisible(true);
emailField.setStyle("-fx-text-box-border: None ; -fx-focus-color: None ;");
emailField.setText(emailT);
emailField.setEditable(true);
emailField.setVisible(true);
emailLabel.setVisible(false);
emailField.setOnKeyPressed(e -> {
if (e.getCode() == KeyCode.ENTER) {
String enteredEmail = emailField.getText();
if (!enteredEmail.contains("@")) {
// set the style of the TextField to make it appear red
emailField.setStyle("-fx-text-box-border: None ; -fx-focus-color: red ;");
} else {
emailField.setStyle("");
emailLabel.setText(enteredEmail);
emailField.setText(enteredEmail);
emailT = enteredEmail;
initialize();
}
}
});
// When someone clicks outside, the focus exists
Parent rootField = emailField.getScene().getRoot();
rootField.setOnMouseClicked(ev -> {
emailField.setText(emailT);
if (ev.getTarget() != emailField && emailField.isFocused() ) {
String enteredEmail = emailField.getText();
System.out.println("La le texte c'est caaaa" + enteredEmail);
if (!enteredEmail.contains("@")) {
// set the style of the TextField to make it appear red
emailField.setStyle("-fx-text-box-border: None ; -fx-focus-color: red ;");
} else {
emailField.setStyle("");
emailLabel.setText(enteredEmail);
emailField.setText(enteredEmail);
emailT = enteredEmail;
initialize();
}
}
});
}
public void clickedPassword(ActionEvent event, String aVoir){
//Kill focus
nameField.setEditable(false);
nameField.setVisible(false);
emailField.setEditable(false);
emailField.setVisible(false);
// Show Label
nameLabel.setVisible(true);
emailLabel.setVisible(true);
passwordField.setStyle("-fx-text-box-border: None ; -fx-focus-color: None ;");
passwordField.setText(passwordT);
passwordField.setEditable(true);
passwordField.setVisible(true);
passwordLabel.setVisible(false);
passwordField.textProperty().addListener((observable, oldValue, newValue) -> {
// Get the last character in the text field
String lastChar = newValue.substring(newValue.length() - 1);
// Replace all characters except the last one with stars
String maskedText = newValue.substring(0, newValue.length() - 1).replaceAll(".", "*");
// Set the masked text with the last character appended
passwordField.setText(maskedText + lastChar);
});
passwordField.setOnKeyPressed(e -> {
if (e.getCode() == KeyCode.ENTER) {
String enteredPassword = passwordField.getText();
if (enteredPassword.length() < 6) {
// set the style of the TextField to make it appear red
passwordField.setStyle("-fx-text-box-border: red ; -fx-focus-color: red ;");
} else {
passwordField.setStyle("");
passwordLabel.setText(enteredPassword);
passwordField.setText(enteredPassword);
passwordT = enteredPassword;
initialize();
}
}
});
// When someone clicks outside, the focus exists
Parent rootField = passwordField.getScene().getRoot();
rootField.setOnMouseClicked(ev -> {
passwordField.setText(passwordT);
if (ev.getTarget() != passwordField && passwordField.isFocused() ) {
String enteredPassword = passwordField.getText();
if (enteredPassword.length() < 6) {
// set the style of the TextField to make it appear red
passwordField.setStyle("-fx-text-box-border: red ; -fx-focus-color: red ;");
} else {
passwordField.setStyle("");
passwordLabel.setText(enteredPassword);
passwordField.setText(enteredPassword);
passwordT = enteredPassword;
initialize();
}
}
});
}
public void setInformation(String name, String email, String password) {
nameT = name;
emailT = email;
passwordT = password;
nameLabel.setText(nameT);
emailLabel.setText(emailT);
passwordLabel.setText(passwordT);
nameField.setText(nameT);
emailField.setText(emailT);
passwordField.setText(passwordT);
}
}
Editor is loading...