package fr.utc.leapband.sma.user; import jade.core.AID; import jade.core.behaviours.Behaviour; import jade.lang.acl.ACLMessage; import jade.lang.acl.MessageTemplate; import jade.lang.acl.UnreadableException; import javax.swing.DefaultListModel; import fr.utc.leapband.utilities.Constance; @SuppressWarnings("serial") public class GetListGroupBehaviour extends Behaviour{ private UserAgent myAgent; private ACLMessage msg; private boolean first_run = true; private boolean done = false; public GetListGroupBehaviour(UserAgent myAgent) { super(); this.myAgent = myAgent; this.msg= new ACLMessage(ACLMessage.REQUEST); } @SuppressWarnings("unchecked") @Override public void action() { if (first_run) { AID server_name = myAgent.getServerName(); if(server_name !=null){ msg.addReceiver(server_name); msg.setContent("listGroup"); myAgent.send(msg); System.out.println("getlistgroupbehaviour envoie demande au multiAgent\n"); first_run = false; } else { System.out.println("server not found, retry..."); } } else { MessageTemplate mt = MessageTemplate.and(MessageTemplate.MatchPerformative(ACLMessage.INFORM), MessageTemplate.MatchConversationId(Constance.GROUP_CREATED)); ACLMessage message= myAgent.receive(mt); if(message!=null){ /*String[] list=message.getContent().split(","); DefaultListModel<String> dict=new DefaultListModel<String>(); for(String s:list){ dict.addElement(s); }*/ //myAgent.setDict(dict); System.out.println("userAgent recu et refresh list\n"); try { myAgent.setDict((DefaultListModel<String>)message.getContentObject()); //myAgent.getRoom_view().getList_room().setModel((DefaultListModel<String>) message.getContentObject()); done = true; } catch (UnreadableException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } @Override public boolean done() { return done; } }