1 package nl.tudelft.goal.visualizer.gui.panels; 2 3 import java.util.Collection; 4 5 import javax.swing.JList; 6 import javax.swing.JPanel; 7 import javax.swing.SwingUtilities; 8 9 import nl.tudelft.goal.ut2004.visualizer.connection.EnvironmentService; 10 import nl.tudelft.goal.ut2004.visualizer.controller.ServerController; 11 import nl.tudelft.goal.ut2004.visualizer.data.EnvironmentData; 12 import nl.tudelft.goal.ut2004.visualizer.util.CollectionEventAdaptor; 13 14 import cz.cuni.amis.utils.collections.ObservableSet; 15 16 public class EnvironmentPanel extends JPanel { 17 18 private JList connected; 19 20 public EnvironmentPanel() { 21 22 EnvironmentData data = ServerController.getInstance() 23 .getEnvironmentData(); 24 25 data.getEnvironments().addCollectionListener( 26 new CollectionEventAdaptor<EnvironmentService>() { 27 @Override 28 public void postAddEvent( 29 Collection<EnvironmentService> alreadyAdded, 30 Collection<EnvironmentService> whereWereAdded) { 31 SwingUtilities.invokeLater(new Runnable() { 32 @Override 33 public void run() { 34 updateText(); 35 } 36 }); 37 38 } 39 40 @Override 41 public void postRemoveEvent( 42 Collection<EnvironmentService> alreadyAdded, 43 Collection<EnvironmentService> whereWereRemoved) { 44 SwingUtilities.invokeLater(new Runnable() { 45 @Override 46 public void run() { 47 updateText(); 48 } 49 }); 50 } 51 }); 52 53 updateText(); 54 } 55 56 private void updateText() { 57 EnvironmentData environments = ServerController.getInstance() 58 .getEnvironmentData(); 59 ObservableSet<EnvironmentService> clients = environments.getEnvironments(); 60 61 removeAll(); 62 63 synchronized (clients) { 64 connected = new JList(clients.toArray()); 65 } 66 67 add(connected); 68 69 } 70 }