Un poco de documentacion
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -109,3 +109,4 @@ buildNumber.properties
|
||||
|
||||
# cosas random que pasan
|
||||
nohup.out
|
||||
docs/
|
||||
|
||||
8
.idea/misc.xml
generated
8
.idea/misc.xml
generated
@@ -1,6 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="JavadocGenerationManager">
|
||||
<option name="OUTPUT_DIRECTORY" value="$PROJECT_DIR$/docs" />
|
||||
<option name="OPTION_SCOPE" value="private" />
|
||||
<option name="OPTION_DOCUMENT_TAG_USE" value="true" />
|
||||
<option name="OPTION_DOCUMENT_TAG_AUTHOR" value="true" />
|
||||
<option name="OPTION_DOCUMENT_TAG_VERSION" value="true" />
|
||||
<option name="OPEN_IN_BROWSER" value="false" />
|
||||
</component>
|
||||
<component name="MavenProjectsManager">
|
||||
<option name="originalFiles">
|
||||
<list>
|
||||
|
||||
@@ -8,8 +8,19 @@ import xyz.danielcortes.controllers.LaunchController;
|
||||
import xyz.danielcortes.login.LoginController;
|
||||
import xyz.danielcortes.login.LoginPanel;
|
||||
|
||||
/**
|
||||
* Punto de entrada de la aplicacion.
|
||||
*/
|
||||
public class App {
|
||||
|
||||
/**
|
||||
* Punto de entrada de ejecucion de la aplicacion
|
||||
* <p>
|
||||
* Ejecuta el <code>LoginController</code> y le entrega el <code>LoggedListener</code> que ejecutara <code>LaunchController</code> al cual se le
|
||||
* entrega el usuario obtenido en el proceso de login
|
||||
*
|
||||
* @see LoginController
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
setupLookAndFeel();
|
||||
LoginController loginController = new LoginController(new LoginPanel());
|
||||
@@ -19,6 +30,16 @@ public class App {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Configura el look and feel del programa.
|
||||
* <p>
|
||||
* Activa el antialiasing optimizado para lcd.
|
||||
* <p>
|
||||
* Configura directamente el lookAndFeel seleccionado uno desde una serie de strings
|
||||
* <p>
|
||||
* Finalmente configura la clase de la ventana java para que no tenga el nombre generico y pueda configurarlo como ventana flotante en un
|
||||
* WindowManager.
|
||||
*/
|
||||
private static void setupLookAndFeel() {
|
||||
System.setProperty("awt.useSystemAAFontSettings", "lcd");
|
||||
System.setProperty("swing.aatext", "true");
|
||||
|
||||
@@ -137,6 +137,11 @@ import xyz.danielcortes.views.usuario.UsuarioCreatePanel;
|
||||
import xyz.danielcortes.views.usuario.UsuarioUpdatePanel;
|
||||
import xyz.danielcortes.views.usuario.UsuarioViewPanel;
|
||||
|
||||
/**
|
||||
* Controlador principal de la aplicacion
|
||||
* <p>
|
||||
* Se encarga de crear todos los controladores con sus vistas que estaran contenidos en la ventana principal
|
||||
*/
|
||||
public class LaunchController {
|
||||
|
||||
private LaunchFrame frame;
|
||||
@@ -148,21 +153,42 @@ public class LaunchController {
|
||||
this.controllers = new HashMap<>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Entrega un <code>BaseController</code> dado su nombre
|
||||
*
|
||||
* @param name <code>PanelName</code> el cual esta relacionado con el controlador que se busca
|
||||
* @return Un <code>BaseController</code> correspondiente al nombre entregado
|
||||
*/
|
||||
public BaseController getCard(PanelName name) {
|
||||
return this.controllers.get(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Lanza la vista inicial
|
||||
*/
|
||||
public void run() {
|
||||
this.create();
|
||||
this.frame.setVisible(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Crea el frame y llama a crear las cartas del <code>CardLayout</code> y el <code>MenuBar</code>
|
||||
*/
|
||||
private void create() {
|
||||
this.frame = new LaunchFrame();
|
||||
this.createCards();
|
||||
this.createMenuBar();
|
||||
}
|
||||
|
||||
/**
|
||||
* Crea las cartas que estaran contenidas en la vista
|
||||
* <p>
|
||||
* Estan son agregadas a un <code>HashMap</code> que las almacenara relacionadas a su <code>PanelName</code>
|
||||
* <p>
|
||||
* A cada controlador se le entregara una referencia a esta clase
|
||||
* <p>
|
||||
* Luego de agregar todos los controladores al <code>HashMap</code> estos son agregados al <code>CardLayout</code> del JFrame
|
||||
*/
|
||||
private void createCards() {
|
||||
this.frame.addCard(new JPanel(), PanelName.EMPTY);
|
||||
|
||||
@@ -266,6 +292,9 @@ public class LaunchController {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Llama a crear los <code>Menu</code> que contendra el <code>MenuBar</code> y los añade a este
|
||||
*/
|
||||
private void createMenuBar() {
|
||||
JMenuBar menuBar = new JMenuBar();
|
||||
|
||||
@@ -275,6 +304,11 @@ public class LaunchController {
|
||||
this.frame.setJMenuBar(menuBar);
|
||||
}
|
||||
|
||||
/**
|
||||
* Crear todos los menus para acceder a las vistas de mantenedores con sus <code>ActionListener</code> creados.
|
||||
*
|
||||
* @return <code>JMenu</code> con los <code>MenuItem</code> para acceder a las vistas.
|
||||
*/
|
||||
private JMenu createMantenedoresMenu() {
|
||||
JMenu mantenedoresMenu = new JMenu("Mantenedores");
|
||||
|
||||
@@ -311,6 +345,11 @@ public class LaunchController {
|
||||
return mantenedoresMenu;
|
||||
}
|
||||
|
||||
/**
|
||||
* Crear todos los menus para acceder a las vistas de compras con sus <code>ActionListener</code> creados.
|
||||
*
|
||||
* @return <code>JMenu</code> con los <code>MenuItem</code> para acceder a las vistas.
|
||||
*/
|
||||
private JMenu createComprarMenu() {
|
||||
JMenu comprarMenu = new JMenu("Comprar");
|
||||
|
||||
@@ -323,6 +362,11 @@ public class LaunchController {
|
||||
return comprarMenu;
|
||||
}
|
||||
|
||||
/**
|
||||
* Muestra la Carta con el nombre entregado Llama al metodo show del controlador de la carta a mostrar
|
||||
*
|
||||
* @param name <code>PanelName</code> de la Carta que se quiere mostrar.
|
||||
*/
|
||||
public void showCard(PanelName name) {
|
||||
this.frame.showCard(name);
|
||||
this.controllers.get(name).show();
|
||||
|
||||
@@ -11,6 +11,9 @@ import xyz.danielcortes.framework.Passwords;
|
||||
import xyz.danielcortes.models.Usuario;
|
||||
import xyz.danielcortes.repository.UsuarioRepository;
|
||||
|
||||
/**
|
||||
* Controlador para el panel <code>LoginPanel</code>
|
||||
*/
|
||||
public class LoginController {
|
||||
|
||||
private JFrame frame;
|
||||
@@ -18,6 +21,11 @@ public class LoginController {
|
||||
private UsuarioRepository repository;
|
||||
private LoggedListener loggedListener;
|
||||
|
||||
/**
|
||||
* Crea la clase, almacena la vista, crea el listener y el frame que contiene la vista
|
||||
*
|
||||
* @param view LoginPanel.
|
||||
*/
|
||||
public LoginController(LoginPanel view) {
|
||||
this.view = view;
|
||||
this.repository = new UsuarioRepository();
|
||||
@@ -25,12 +33,30 @@ public class LoginController {
|
||||
this.createFrame();
|
||||
}
|
||||
|
||||
/**
|
||||
* Crea los listeners de la vista
|
||||
* <p>
|
||||
* El field de usuario, el field de contraseña y el boton de logeo ejecutaran <code>login()</code>
|
||||
*/
|
||||
private void setupListeners() {
|
||||
this.view.getUserField().addActionListener(e -> this.login());
|
||||
this.view.getPassField().addActionListener(e -> this.login());
|
||||
this.view.getLoginButton().addActionListener(e -> this.login());
|
||||
}
|
||||
|
||||
/**
|
||||
* Crea un frame que contendra el <code>LoginPanel</code>
|
||||
* <p>
|
||||
* Dimensiones de 400x400
|
||||
* <p>
|
||||
* Cierra el programa al cerrar la ventana
|
||||
* <p>
|
||||
* Relativo a nada, por lo tanto centrado
|
||||
* <p>
|
||||
* Titulo "Login"
|
||||
* <p>
|
||||
* El content panel siendo la vista entregada en el constructor.
|
||||
*/
|
||||
private void createFrame() {
|
||||
Dimension dimension = new Dimension(400, 400);
|
||||
this.frame = new JFrame();
|
||||
@@ -43,6 +69,20 @@ public class LoginController {
|
||||
this.frame.setVisible(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Intenta logear a un usuario con los datos entregados
|
||||
* <p>
|
||||
* Primero comprueba si el nombre de usuario existe en la base de datos
|
||||
* <p>
|
||||
* Luego comprueba que la contraseña entregada sea igual que la que esta guarda en la base de datos, para esto se utiliza la clase
|
||||
* <code>Passwords</code>
|
||||
* <p>
|
||||
* Si es que alguno de los 2 pasos falló se muestra el mismo mensaje de error.
|
||||
* <p>
|
||||
* Y en caso que no falle nada se ejecutara el <code>loggedListener</code> con un <code>LoggedEvent</code> que contiene el usuario obtenido
|
||||
*
|
||||
* @see Passwords
|
||||
*/
|
||||
private void login() {
|
||||
String name = this.view.getUserField().getText();
|
||||
Optional<Usuario> optionalUser = this.repository.getByName(name);
|
||||
@@ -71,6 +111,13 @@ public class LoginController {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Almacena un <code>LoggedListener</code>.
|
||||
* <p>
|
||||
* Este listener es ejecutado cuando se logea correctamente un usuario.
|
||||
*
|
||||
* @param listener Listener a ser ejecutado.
|
||||
*/
|
||||
public void setLoggedListener(LoggedListener listener) {
|
||||
this.loggedListener = listener;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user