Singleton juste (cette fois)

This commit is contained in:
basti 2020-12-07 10:51:52 +01:00
parent dbe687ea17
commit 1d6a632017
6 changed files with 217 additions and 73 deletions

View file

@ -0,0 +1,24 @@
package defaut;
import liste.GestionnaireListeUtilisateur;
import ui.Login_RegisterUI;
public class Main {
public static void main(String[] args) {
GestionnaireListeUtilisateur.instance().ecoute();
GestionnaireListeUtilisateur.instance().envoie("add$$$77$$$Moi$$$ip");
Thread t = new Thread(new Login_RegisterUI());//gestionnaireListeUtilisateur, gestionnaireNom));
t.start();
}
}

View file

@ -24,7 +24,6 @@ public class TraitementCmdListe implements Runnable{
public void run() {
try {
GestionnaireListeUtilisateur gestionnaireListeUtilisateur = new GestionnaireListeUtilisateur();
String ordre = cmd[0];
String id = cmd[1];
@ -39,7 +38,7 @@ public class TraitementCmdListe implements Runnable{
System.out.println("bloqué");
if (ordre.equals("delete")) {
gestionnaireListeUtilisateur.setListeUtilisateur(supprimeUtilisateur(gestionnaireListeUtilisateur.getListeUtilisateur(), id));
GestionnaireListeUtilisateur.instance().setListeUtilisateur(supprimeUtilisateur(GestionnaireListeUtilisateur.instance().getListeUtilisateur(), id));
}
if (ordre.equals("add")) {
@ -47,9 +46,10 @@ public class TraitementCmdListe implements Runnable{
//System.out.println("NULLLLLLLL");
//on ne fait rien (utilisateur non encore configuré)
} else {
gestionnaireListeUtilisateur.setListeUtilisateur(ajouteUtilisateur(gestionnaireListeUtilisateur.getListeUtilisateur(), id, nom, ip));
for(int i=0; i<gestionnaireListeUtilisateur.getListeUtilisateur().size(); i++) {
System.out.println("ici : " + gestionnaireListeUtilisateur.getListeUtilisateur().get(i).nom);
GestionnaireListeUtilisateur.instance().setListeUtilisateur(ajouteUtilisateur(GestionnaireListeUtilisateur.instance().getListeUtilisateur(), id, nom, ip));
for(int i=0; i<GestionnaireListeUtilisateur.instance().getListeUtilisateur().size(); i++) {
System.out.println("ici : " + GestionnaireListeUtilisateur.instance().getListeUtilisateur().get(i).nom + " "
+ GestionnaireListeUtilisateur.instance().getListeUtilisateur().get(i).id );
}
}
@ -70,9 +70,8 @@ public class TraitementCmdListe implements Runnable{
//envoie la liste courrante d'utilisateur
public void envoyerNom() { //localHost TODO (gerer IP, unhandle exception ...)
GestionnaireNom gestionnaireNom = new GestionnaireNom();
UdpBroadcastClient client = new UdpBroadcastClient(ConstanteListeUtilisateur.NUM_PORT_SERVER,
"add"+ "$$$" + gestionnaireNom.getId() + "$$$" + gestionnaireNom.getNom() + "$$$" + "LocalHost");
"add"+ "$$$" + GestionnaireNom.instance().getId() + "$$$" + GestionnaireNom.instance().getNom() + "$$$" + "LocalHost");
Thread t = new Thread(client);
t.start();
}

View file

@ -64,7 +64,7 @@ public class GestionnaireNom{
public String idFromNom(String nom) {
GestionnaireListeUtilisateur gestionnaireListeUtilisateur = new GestionnaireListeUtilisateur();
for (int i=0; i<gestionnaireListeUtilisateur.getListeUtilisateur().size(); i++) {
if (gestionnaireListeUtilisateur.getListeUtilisateur().get(i).nom.equals(nom)) {
if (gestionnaireListeUtilisateur.getListeUtilisateur().get(i).nom.toLowerCase().equals(nom.toLowerCase())) {
return gestionnaireListeUtilisateur.getListeUtilisateur().get(i).id;
}
}
@ -77,9 +77,8 @@ public class GestionnaireNom{
// renvoie 1 si le nom est disponible
private boolean verifierDisponibiliteNom(String nom) {
GestionnaireListeUtilisateur gestionnaireListeUtilisateur = new GestionnaireListeUtilisateur();
for (int i=0; i<gestionnaireListeUtilisateur.getListeUtilisateur().size(); i++) {
if (gestionnaireListeUtilisateur.getListeUtilisateur().get(i).nom.equals(nom)) {
for (int i=0; i<GestionnaireListeUtilisateur.instance().getListeUtilisateur().size(); i++) {
if (GestionnaireListeUtilisateur.instance().getListeUtilisateur().get(i).nom.toLowerCase().equals(nom.toLowerCase())) {
return false;
}
}

View file

@ -15,6 +15,7 @@ import nom.GestionnaireNom;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JScrollPane;
public class ListUI extends JFrame implements Runnable{
@ -40,7 +41,7 @@ public class ListUI extends JFrame implements Runnable{
}
public void add(DefaultTableModel dtm, String[] test) {
public void ajouterNomListe(DefaultTableModel dtm, String[] test) {
for (String t : test) {
dtm.addRow(new Object[] {t});
}
@ -52,6 +53,7 @@ public class ListUI extends JFrame implements Runnable{
* Create the frame.
*/
public ListUI() {
setTitle("List");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
@ -59,12 +61,6 @@ public class ListUI extends JFrame implements Runnable{
setContentPane(contentPane);
contentPane.setLayout(null);
table = new JTable();
table.setModel(dtm);
table.setBounds(120, 67, 203, 134);
contentPane.add(table);
JButton btnNewButton = new JButton("Connect");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
@ -73,7 +69,7 @@ public class ListUI extends JFrame implements Runnable{
try{
String nom = (String) table.getValueAt(row, col);
System.out.println(nom);
ajouterNomListe(dtm, test);
//String id = GestionnaireNom.idFromNom(nom);
}
@ -81,10 +77,18 @@ public class ListUI extends JFrame implements Runnable{
}
});
btnNewButton.setBounds(170, 22, 89, 23);
btnNewButton.setBounds(171, 206, 89, 23);
contentPane.add(btnNewButton);
add(dtm, test);
ajouterNomListe(dtm, test);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(67, 23, 303, 158);
contentPane.add(scrollPane);
table = new JTable();
scrollPane.setViewportView(table);
table.setModel(dtm);
}
}

View file

@ -1,6 +1,5 @@
package ui;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
@ -8,6 +7,8 @@ import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import liste.GestionnaireListeUtilisateur;
import liste.TypeListeUtilisateur;
import nom.GestionnaireNom;
import javax.swing.JLabel;
@ -25,13 +26,12 @@ import java.awt.event.MouseEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class Login_RegisterUI extends JFrame {
public class Login_RegisterUI extends JFrame implements Runnable{
private JPanel contentPane;
private JTextField idField;
private JTextField usernameField;
private JTextField passwordField;
/*
//Instance du gestionnaire de liste
static private Login_RegisterUI uniqueInstance = null;
@ -52,43 +52,54 @@ public class Login_RegisterUI extends JFrame {
*/
public void enter() {
if( usernameField.getText().equals("admin") || idField.getText().equals("0") ) { //remplaver || par && -> flemme debug
public void run() {
try {
//ListUI liste = new ListUI();
//liste.setLocationRelativeTo(null);
//liste.setVisible(true);
dispose();
Thread ts = new Thread(new ListUI()); //inutile avce le setVisible(true)
ts.start();
}
else {
JOptionPane.showMessageDialog(null, "Invalid Username / Password", "Login error", 2);
Login_RegisterUI frame = new Login_RegisterUI();
frame.setVisible(true);
//center the frame
frame.setLocationRelativeTo(null);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Login_RegisterUI frame = new Login_RegisterUI();
frame.setVisible(true);
//center the frame
frame.setLocationRelativeTo(null);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public void enter() {
String id = idField.getText();
String pwd = passwordField.getText();
if( pwd.equals("admin") || id.equals("0") ) { //remplaver || par && -> flemme debug
GestionnaireNom.instance().setId(id);
//NomUI nom = new NomUI();
//nom.setLocationRelativeTo(null);
//nom.setVisible(true);
dispose();
Thread t = new Thread(new NomUI());
t.start();
}
else {
JOptionPane.showMessageDialog(null, "Invalid Id / Password", "Login error", 2);
}
}
/**
* Create the frame.
*/
public Login_RegisterUI() {
public Login_RegisterUI(){
setTitle("Login");
@ -104,10 +115,10 @@ public class Login_RegisterUI extends JFrame {
idLabel.setBounds(39, 47, 79, 32);
contentPane.add(idLabel);
JLabel usernameLabel = new JLabel("Username");
usernameLabel.setHorizontalAlignment(SwingConstants.CENTER);
usernameLabel.setBounds(39, 93, 79, 25);
contentPane.add(usernameLabel);
JLabel passwordLabel = new JLabel("Password");
passwordLabel.setHorizontalAlignment(SwingConstants.CENTER);
passwordLabel.setBounds(39, 93, 79, 25);
contentPane.add(passwordLabel);
idField = new JTextField();
idField.addKeyListener(new KeyAdapter() {
@ -141,8 +152,8 @@ public class Login_RegisterUI extends JFrame {
contentPane.add(idField);
idField.setColumns(10);
usernameField = new JTextField();
usernameField.addKeyListener(new KeyAdapter() {
passwordField = new JTextField();
passwordField.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getExtendedKeyCode() == KeyEvent.VK_ENTER) {
@ -150,27 +161,27 @@ public class Login_RegisterUI extends JFrame {
}
}
});
// Username field
usernameField.addFocusListener(new FocusAdapter() {
// Password field
passwordField.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
String s = usernameField.getText();
if ( s.equals("Username") ) {
usernameField.setText("");
String s = passwordField.getText();
if ( s.equals("Password") ) {
passwordField.setText("");
}
}
@Override
public void focusLost(FocusEvent e) {
String s = usernameField.getText();
String s = passwordField.getText();
if ( s.equals("") ) {
usernameField.setText("Username");
passwordField.setText("Password");
}
}
});
usernameField.setText("Username");
usernameField.setColumns(10);
usernameField.setBounds(167, 95, 195, 20);
contentPane.add(usernameField);
passwordField.setText("Password");
passwordField.setColumns(10);
passwordField.setBounds(167, 95, 195, 20);
contentPane.add(passwordField);
//login Button
JButton loginButton = new JButton("Login");

View file

@ -0,0 +1,107 @@
package ui;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Toolkit;
import java.awt.Dimension;
import nom.GestionnaireNom;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JLabel;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class NomUI extends JFrame implements Runnable{
private JPanel contentPane;
private JTextField usernameField;
JLabel nameLabel;
/**
* Launch the application.
*/
public void run() {
try {
NomUI frame = new NomUI();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int hauteur = screenSize.height * 2/5;
int largeur = screenSize.width * 2/5;
frame.setSize(new Dimension(largeur, hauteur));
frame.setLocationRelativeTo(null);
frame.setVisible(true);
System.out.println( GestionnaireNom.instance().getId() );
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the frame.
*/
public NomUI() {
setAlwaysOnTop(true);
setTitle("Username");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
usernameField = new JTextField();
usernameField.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getExtendedKeyCode() == KeyEvent.VK_ENTER) {
String nom = usernameField.getText();
if (GestionnaireNom.instance().nommer(nom)) {
dispose();
Thread t = new Thread(new ListUI());
t.start();
}
else {
nameLabel.setText("Username already taken");
}
}
}
});
usernameField.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
String s = usernameField.getText();
if ( s.equals("Username") ) {
usernameField.setText("");
}
}
});
usernameField.setText("Username");
usernameField.setBounds(109, 90, 206, 54);
contentPane.add(usernameField);
usernameField.setColumns(10);
nameLabel = new JLabel("");
nameLabel.setBounds(109, 149, 206, 31);
contentPane.add(nameLabel);
}
}