diff --git a/POO/src/main/Communication.java b/POO/src/main/Communication.java new file mode 100644 index 0000000..b85351b --- /dev/null +++ b/POO/src/main/Communication.java @@ -0,0 +1,9 @@ +package main; + +import java.util.ArrayList; + +public class Communication { + protected static ArrayList users; + + +} diff --git a/POO/src/main/CommunicationUDP.java b/POO/src/main/CommunicationUDP.java new file mode 100644 index 0000000..7d0367f --- /dev/null +++ b/POO/src/main/CommunicationUDP.java @@ -0,0 +1,64 @@ +package main; + +import java.io.IOException; +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.InetAddress; +import java.net.SocketException; +import java.net.UnknownHostException; + +public class CommunicationUDP extends Thread { + + private int port; + private DatagramSocket sockUDP; + private byte[] buffer; + + public CommunicationUDP(int port) throws SocketException, UnknownHostException { + this.sockUDP = new DatagramSocket(port); + this.buffer = new byte[256]; + } + + @Override + public void run() { + while(true) { + DatagramPacket inPacket = new DatagramPacket(buffer, buffer.length); + try { + this.sockUDP.receive(inPacket); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + + private class ReponseUDP extends Thread{ + + private DatagramSocket sockUDP; + private DatagramPacket inPacket; + + public ReponseUDP(DatagramSocket sockUDP, DatagramPacket inPacket) { + this.sockUDP = sockUDP; + this.inPacket = inPacket; + } + + @Override + public void run() { + String msg = new String(this.inPacket.getData(),0,this.inPacket.getLength()); + if(msg == "Connecté") { + + Utilisateur self = Utilisateur.getSelf(); + String id = self.getId(); + String pseudo = self.getPseudo(); + InetAddress ip = self.getIp(); + + InetAddress clientAddress = this.inPacket.getAddress(); + int clientPort = this.inPacket.getPort(); + + + } + } + + } + +} diff --git a/POO/src/main/ControleurStandard.java b/POO/src/main/ControleurStandard.java new file mode 100644 index 0000000..97a6d45 --- /dev/null +++ b/POO/src/main/ControleurStandard.java @@ -0,0 +1,31 @@ +package main; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.JList; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; + +public class ControleurStandard implements ActionListener, ListSelectionListener { + + private VueStandard vue; + + public ControleurStandard(VueStandard vue) { + this.vue = vue; + } + + @Override + public void valueChanged(ListSelectionEvent e) { + if (!e.getValueIsAdjusting()) { + JList list = vue.getActiveUsersList(); + System.out.println(list.getSelectedValue()); + } + } + + @Override + public void actionPerformed(ActionEvent e) { + + } + +} diff --git a/POO/src/main/Main.java b/POO/src/main/Main.java index f3ec08e..13acf61 100644 --- a/POO/src/main/Main.java +++ b/POO/src/main/Main.java @@ -1,9 +1,35 @@ package main; +import java.net.UnknownHostException; + +import javax.swing.JFrame; + public class Main { public static void main(String[] args) { - // TODO Auto-generated method stub + JFrame frame = new JFrame("Application"); + VueStandard vueStd = new VueStandard(); + frame.add(vueStd); + + frame.setSize(300,300); + frame.setVisible(true); + + try { + Utilisateur.setSelf("Raijila", "Raijila", "localhost"); + } catch (UnknownHostException e1) { + System.out.println("hote inexistant"); + } + + VueStandard.userList.addElement("Mirasio"); + + try { + Thread.sleep(2000); + VueStandard.userList.addElement("Semtexx"); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } diff --git a/POO/src/main/Utilisateur.java b/POO/src/main/Utilisateur.java new file mode 100644 index 0000000..a056e46 --- /dev/null +++ b/POO/src/main/Utilisateur.java @@ -0,0 +1,51 @@ +package main; +import java.io.Serializable; +import java.net.*; + +public class Utilisateur implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = 1L; + + private String id; + private String pseudo; + private InetAddress ip; + + private static Utilisateur self; + + public Utilisateur(String id, String pseudo,String host) throws UnknownHostException { + this.id = id; + this.pseudo = pseudo; + this.ip = InetAddress.getByName(host); + } + + + public String getId() { + return id; + } + + public String getPseudo() { + return pseudo; + } + + public void setPseudo(String pseudo) { + this.pseudo = pseudo; + } + + public InetAddress getIp() { + return ip; + } + + public static void setSelf(String id, String pseudo,String host) throws UnknownHostException { + if(Utilisateur.self == null) { + Utilisateur.self = new Utilisateur(id, pseudo, host); + } + + } + + public static Utilisateur getSelf() { + return Utilisateur.self; + } +} diff --git a/POO/src/main/Vue.java b/POO/src/main/Vue.java new file mode 100644 index 0000000..a52d36d --- /dev/null +++ b/POO/src/main/Vue.java @@ -0,0 +1,15 @@ +package main; + +import javax.swing.JPanel; + +public class Vue extends JPanel{ + + public Vue() { + // TODO Auto-generated constructor stub + } + + public void reduireAgent() {} + + public void fermerAgent() {} + +} diff --git a/POO/src/main/VueStandard.java b/POO/src/main/VueStandard.java new file mode 100644 index 0000000..990c729 --- /dev/null +++ b/POO/src/main/VueStandard.java @@ -0,0 +1,56 @@ +package main; + +import java.awt.Dimension; +import java.awt.GridLayout; +import java.util.ArrayList; +import java.util.List; +import java.util.Vector; + +import javax.swing.BorderFactory; +import javax.swing.DefaultListModel; +import javax.swing.JList; +import javax.swing.JScrollPane; +import javax.swing.ListSelectionModel; +import javax.swing.ScrollPaneConstants; + +public class VueStandard extends Vue { + + /** + * + */ + private static final long serialVersionUID = 1L; + + private JList activeUsersList; + private ControleurStandard c; + public static DefaultListModel userList = new DefaultListModel(); + + + public VueStandard() { + super(); + + this.c = new ControleurStandard(this); + this.setLayout(new GridLayout(2, 1)); + + + this.activeUsersList = new JList(VueStandard.userList); + this.activeUsersList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + this.activeUsersList.setLayoutOrientation(JList.VERTICAL); + this.activeUsersList.addListSelectionListener(this.c); + + JScrollPane listScroller = new JScrollPane(this.activeUsersList); + listScroller.setPreferredSize(new Dimension(50,50)); + listScroller.setAlignmentX(LEFT_ALIGNMENT); + listScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); + listScroller.setBorder(BorderFactory.createCompoundBorder( + BorderFactory.createTitledBorder("Utilisateurs Actifs"), + BorderFactory.createEmptyBorder(5,2,2,2))); + + this.add(listScroller); + + } + + public JList getActiveUsersList(){ + return this.activeUsersList; + } + +}