1 package nl.tudelft.goal.ut2004.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 28 @Override 29 public void postAddEvent( 30 Collection<EnvironmentService> alreadyAdded, 31 Collection<EnvironmentService> whereWereAdded) { 32 SwingUtilities.invokeLater(new Runnable() { 33 34 @Override 35 public void run() { 36 updateText(); 37 } 38 39 }); 40 41 } 42 43 @Override 44 public void postRemoveEvent( 45 Collection<EnvironmentService> alreadyAdded, 46 Collection<EnvironmentService> whereWereRemoved) { 47 SwingUtilities.invokeLater(new Runnable() { 48 49 @Override 50 public void run() { 51 updateText(); 52 } 53 54 }); 55 } 56 }); 57 58 updateText(); 59 } 60 61 private void updateText() { 62 EnvironmentData environments = ServerController.getInstance() 63 .getEnvironmentData(); 64 ObservableSet<EnvironmentService> clients = environments.getEnvironments(); 65 66 removeAll(); 67 68 synchronized (clients) { 69 connected = new JList(clients.toArray()); 70 } 71 72 add(connected); 73 74 } 75 }