Skip to content

Commit

Permalink
Merge pull request #6 from JSalmon11/dev
Browse files Browse the repository at this point in the history
dev version 1.1.0
  • Loading branch information
JSalmon11 authored Apr 10, 2022
2 parents 3fd04cb + d5f5d54 commit bc2c9cf
Show file tree
Hide file tree
Showing 29 changed files with 386 additions and 29 deletions.
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
# CHANGELOG

## [1.1.0] - 2022-04-10
### Added
- Added button to check available updates.
- Added internationalization support (es, en, ja).

### Fixed
- Handled error when length field is empty.


## [1.0.0] - 2022-04-08
- Initial release

[1.1.0]: https://github.com/JSalmon11/Generador-de-Contrasenias/compare/1.0.0...1.1.0
[1.0.0]: https://github.com/JSalmon11/Generador-de-Contrasenias/compare/b552912c04419d8d2ae5d9fd9bb7f315145f46d8...1.0.0
16 changes: 16 additions & 0 deletions CHANGELOG_es.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# CHANGELOG

## [1.1.0] - 2022-04-10
### Añadido
- Añadido botón para comprobar actualizaciones.
- Añadido soporte para intenacionalización (es, en, ja).

### Arreglado
- Controlado error cuando el campo longitud está vacío.


## [1.0.0] - 2022-04-08
- Lanzamineto inicial.

[1.1.0]: https://github.com/JSalmon11/Generador-de-Contrasenias/compare/1.0.0...1.1.0
[1.0.0]: https://github.com/JSalmon11/Generador-de-Contrasenias/compare/b552912c04419d8d2ae5d9fd9bb7f315145f46d8...1.0.0
26 changes: 13 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
# Generador de contraseñas
# Password generator

## Introducción
## Introduction

Esta es un aplicación sencilla que genera contraseñas seguras aleatorias.
This is a simple app that generates random strong passwords.

### Comenzando
### Starting

Puedes decargar el ejecutable de la versión que desees.
You can download the executable of the version you want.

### Pre-requisitos 📋
### Pre-requisites 📋

-Tener instalado el Java jre mínimo necesario, el [jre1.8.0_321](https://www.java.com/es/download/ie_manual.jsp).
-Have the minimum necessary Java jre installed, the [jre1.8.0_321](https://www.java.com/es/download/ie_manual.jsp).

### Instalación 🔧
### Installation 🔧

Con Java en tu ordenador solo tendrás que ejecutar el archivo .exe o .jar.
With Java on your computer you will only have to run the .exe or .jar file.

## Ejecución ⚙️
## Execution ⚙️

Al ejecutar el programa se pide la longitud deseada de la contraseña, una vez elegida pulsa el botón mostrar y aparecerá una contraseña segura, pulsa copiar para ponerla en el portapapeles y poder pegarla donde quieras.
When executing the program, the desired length of the password is requested, once chosen, press the show button and a secure password will appear, press copy to put it on the clipboard and be able to paste it wherever you want.

### Autor ✍️
### Author ✍️
https://github.com/JSalmon11

## Construido con 🛠️
## Built with 🛠️

* [Visual studio code](https://code.visualstudio.com/downloadl)
28 changes: 28 additions & 0 deletions README_es.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Generador de contraseñas

## Introducción

Esta es un aplicación sencilla que genera contraseñas seguras aleatorias.

### Comenzando

Puedes decargar el ejecutable de la versión que desees.

### Pre-requisitos 📋

-Tener instalado el Java jre mínimo necesario, el [jre1.8.0_321](https://www.java.com/es/download/ie_manual.jsp).

### Instalación 🔧

Con Java en tu ordenador solo tendrás que ejecutar el archivo .exe o .jar.

## Ejecución ⚙️

Al ejecutar el programa se pide la longitud deseada de la contraseña, una vez elegida pulsa el botón mostrar y aparecerá una contraseña segura, pulsa copiar para ponerla en el portapapeles y poder pegarla donde quieras.

### Autor ✍️
https://github.com/JSalmon11

## Construido con 🛠️

* [Visual studio code](https://code.visualstudio.com/downloadl)
Binary file removed bin/App$1.class
Binary file not shown.
Binary file removed bin/App.class
Binary file not shown.
Binary file added bin/Main/App$1.class
Binary file not shown.
Binary file renamed bin/App$2.class → bin/Main/App$2.class
Binary file not shown.
Binary file added bin/Main/App$3.class
Binary file not shown.
Binary file added bin/Main/App.class
Binary file not shown.
Binary file added bin/Utils/ComprobarActualizaciones.class
Binary file not shown.
Binary file added bin/Utils/FormActualizar$1.class
Binary file not shown.
Binary file added bin/Utils/FormActualizar$2.class
Binary file not shown.
Binary file added bin/Utils/FormActualizar.class
Binary file not shown.
Binary file modified bin/Utils/GeneratePass.class
Binary file not shown.
Binary file added bin/i18n/Idioma.class
Binary file not shown.
10 changes: 10 additions & 0 deletions bin/i18n/espanol.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
textLongitud=Longitud:
buttonMostrar=Mostrar
buttonCopiar=Copiar
mainTitulo=Generador de contraseñas
hoverButtonActualizar=Comprobar actualizaciones

actualizarTitulo=Actualizar
textActualizar=Ya tienes la última versión disponible.
buttonActualizar=Actualizar
buttonCancelar=Cancelar
10 changes: 10 additions & 0 deletions bin/i18n/ingles.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
textLongitud=Length:
buttonMostrar=Show
buttonCopiar=Copy
mainTitulo=Password Generator
hoverButtonActualizar=Check updates

actualizarTitulo=Update
textActualizar=You already have the latest version available.
buttonActualizar=Update
buttonCancelar=Cancel
10 changes: 10 additions & 0 deletions bin/i18n/japanese.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
textLongitud=長さ:
buttonMostrar=公演
buttonCopiar=コピー
mainTitulo=パスワードジェネレータ
hoverButtonActualizar=更新を確認する

actualizarTitulo=アップデート
textActualizar=すでに最新バージョンが利用可能です.
buttonActualizar=アップデート
buttonCancelar=キャンセル
Binary file added bin/img/buttons/update.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
55 changes: 48 additions & 7 deletions src/App.java → src/Main/App.java
Original file line number Diff line number Diff line change
@@ -1,26 +1,38 @@
package Main;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.control.Tooltip;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import java.awt.datatransfer.StringSelection;
import Utils.ComprobarActualizaciones;
import Utils.FormActualizar;
import Utils.GeneratePass;
import Utils.Windows;
import i18n.Idioma;

import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;

/**
* Crea y ejecuta una interfaz de usuario para generar contraseñas seguras.
* @author <a href="https://github.com/JSalmon11">Jorge Salmón</a>
*
* @author <a href="https://github.com/JSalmon11">Jorge Salmón</a>
*/
public class App extends Application {
private static String version = "1.1.0";
public static final Idioma idioma = new Idioma(System.getProperty("user.language"));

public static void main(String[] args) {
launch();
}
Expand All @@ -29,8 +41,9 @@ public static void main(String[] args) {
public void start(Stage stage) {
stage.getIcons().add(new Image(App.class.getResourceAsStream("/img/icon.png")));
stage.setResizable(false);
stage.setTitle("Generador de contraseñas");
Text textLongitud = new Text("Longitud:");
stage.setTitle(idioma.getProperty("mainTitulo"));

Text textLongitud = new Text(idioma.getProperty("textLongitud"));
textLongitud.setFont(new Font("Roboto", 20));
textLongitud.setLayoutX(14);
textLongitud.setLayoutY(38);
Expand All @@ -46,16 +59,23 @@ public void start(Stage stage) {
contraseñas.setLayoutX(14);
contraseñas.setLayoutY(290);

Button mostrar = new Button("Mostrar");
Button mostrar = new Button(idioma.getProperty("buttonMostrar"));
mostrar.setLayoutX(14);
mostrar.setLayoutY(340);

Button copiar = new Button("Copiar");
Button copiar = new Button(idioma.getProperty("buttonCopiar"));
copiar.setLayoutX(235);
copiar.setLayoutY(340);

Button actualizar = new Button();
actualizar.setLayoutX(270);
actualizar.setLayoutY(5);
actualizar.setPrefSize(10, 10);
actualizar.setGraphic(new ImageView(new Image(App.class.getResourceAsStream("/img/buttons/update.png"))));
actualizar.setTooltip(new Tooltip(idioma.getProperty("hoverButtonActualizar")));

Pane datos = new Pane();
datos.getChildren().addAll(longitud, mostrar, copiar, textLongitud, contraseñas);
datos.getChildren().addAll(longitud, mostrar, copiar, actualizar, textLongitud, contraseñas);

Scene scene = new Scene(new StackPane(datos), 300, 380);
if (Windows.isWindowsDarkMode()) {
Expand All @@ -68,7 +88,12 @@ public void start(Stage stage) {
mostrar.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
contraseñas.setText((GeneratePass.generarContraseñaSegura(Integer.parseInt(longitud.getText()))));
int intLongitud = -1;
try {
intLongitud = Integer.parseInt(longitud.getText());
} catch (NumberFormatException ex) {
}
contraseñas.setText((GeneratePass.generarContraseñaSegura(intLongitud)));
}
});

Expand All @@ -80,6 +105,22 @@ public void handle(ActionEvent e) {
}
});

actualizar.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
String versionUrl = ComprobarActualizaciones.checkUpdate(version);
if (!versionUrl.equals("-1")) {
String nuevaVersion;
nuevaVersion = "https://github.com/JSalmon11/Generador-de-Contrasenias/releases/tag/" + versionUrl;
Stage updateStage = new Stage();
FormActualizar.actualizar(nuevaVersion, updateStage);
} else {
Stage updateStage = new Stage();
FormActualizar.actualizar(versionUrl, updateStage);
}
}
});

}

}
48 changes: 48 additions & 0 deletions src/Utils/ComprobarActualizaciones.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package Utils;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class ComprobarActualizaciones {

/**
* Comprueba si hay una nueva versión disponible de la aplicación mediante
* GitHub.
*
* @author <a href="https://github.com/JSalmon11">Jorge Salmón</a>
* @param version Versión actual de la aplicación.
* @return
* <ul>
* <li>String de la nueva versión de la aplicación.</li>
* <li>String "-1" si no hay nueva versión disponible.</li>
* </ul>
*/
public static String checkUpdate(String version) {
String tagVersion = "-1";
try {
URL url = new URL("https://github.com/JSalmon11/Generador-de-Contrasenias/tags");
URLConnection urlConnection = url.openConnection();

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String tags;
boolean found = false;
while ((tags = bufferedReader.readLine()) != null && !found) {
if (tags.contains("<a href=\"/JSalmon11/Generador-de-Contrasenias/releases/tag/")) {
tagVersion = tags.replaceAll("<a href=\"/JSalmon11/Generador-de-Contrasenias/releases/tag/", "")
.replace(">", "").replace("\"", "").trim();
found = true;
}
}
bufferedReader.close();
} catch (Exception e) {
e.printStackTrace();
}
if (Integer.parseInt(version.replace(".", "")) >= Integer.parseInt(tagVersion.replace(".", ""))) {
tagVersion = "-1";
}
return tagVersion;
}

}
Loading

0 comments on commit bc2c9cf

Please sign in to comment.